add: authContext implementado

This commit is contained in:
Alexis
2026-03-27 14:27:50 +01:00
parent 75e099b444
commit e96af43990
3 changed files with 44 additions and 2 deletions
+7
View File
@@ -0,0 +1,7 @@
import { createContext, useContext } from 'react';
export const AuthContext = createContext();
export const useAuth = () => {
return useContext(AuthContext);
};
+32
View File
@@ -0,0 +1,32 @@
import { useState } from 'react';
import { AuthContext } from './AuthContext';
export const AuthProvider = ({ children }) => {
const [user, setUser] = useState(() => {
const storedUser = localStorage.getItem('user');
return storedUser ? JSON.parse(storedUser) : null;
});
const login = (userData, token) => {
setUser(userData);
localStorage.setItem('user', JSON.stringify(userData));
localStorage.setItem('token', token);
};
const logout = () => {
setUser(null);
localStorage.removeItem('user');
localStorage.removeItem('token');
};
return (
<AuthContext.Provider value={{
user,
isAuthenticated: !!user,
login,
logout
}}>
{children}
</AuthContext.Provider>
);
};
+4 -1
View File
@@ -2,9 +2,12 @@ import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client' import { createRoot } from 'react-dom/client'
import './index.css' import './index.css'
import App from './App.jsx' import App from './App.jsx'
import { AuthProvider } from './context/AuthProvider.jsx'
createRoot(document.getElementById('root')).render( createRoot(document.getElementById('root')).render(
<StrictMode> <StrictMode>
<App /> <AuthProvider>
<App />
</AuthProvider>
</StrictMode>, </StrictMode>,
) )