From e96af43990baeff60d86c6b3246833526dc397f2 Mon Sep 17 00:00:00 2001 From: Alexis Date: Fri, 27 Mar 2026 14:27:50 +0100 Subject: [PATCH] add: authContext implementado --- frontend/src/context/AuthContext.js | 7 ++++++ frontend/src/context/AuthProvider.jsx | 32 +++++++++++++++++++++++++++ frontend/src/main.jsx | 7 ++++-- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 frontend/src/context/AuthContext.js create mode 100644 frontend/src/context/AuthProvider.jsx diff --git a/frontend/src/context/AuthContext.js b/frontend/src/context/AuthContext.js new file mode 100644 index 0000000..ac7e88c --- /dev/null +++ b/frontend/src/context/AuthContext.js @@ -0,0 +1,7 @@ +import { createContext, useContext } from 'react'; + +export const AuthContext = createContext(); + +export const useAuth = () => { + return useContext(AuthContext); +}; \ No newline at end of file diff --git a/frontend/src/context/AuthProvider.jsx b/frontend/src/context/AuthProvider.jsx new file mode 100644 index 0000000..5180fb6 --- /dev/null +++ b/frontend/src/context/AuthProvider.jsx @@ -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 ( + + {children} + + ); +}; \ No newline at end of file diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx index b9a1a6d..33c21e7 100644 --- a/frontend/src/main.jsx +++ b/frontend/src/main.jsx @@ -2,9 +2,12 @@ import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' import './index.css' import App from './App.jsx' +import { AuthProvider } from './context/AuthProvider.jsx' createRoot(document.getElementById('root')).render( - + + + , -) +) \ No newline at end of file