|
import React, { createContext, useContext, useState } from 'react'; |
|
|
|
const AuthContext = createContext(null); |
|
|
|
export const AuthProvider = ({ children }) => { |
|
const [token, setToken] = useState(localStorage.getItem('token')); |
|
|
|
const login = (newToken) => { |
|
setToken(newToken); |
|
localStorage.setItem('token', newToken); |
|
}; |
|
|
|
const logout = () => { |
|
setToken(null); |
|
localStorage.removeItem('token'); |
|
}; |
|
|
|
return ( |
|
<AuthContext.Provider value={{ token, login, logout }}> |
|
{children} |
|
</AuthContext.Provider> |
|
); |
|
}; |
|
|
|
export const useAuth = () => { |
|
const context = useContext(AuthContext); |
|
if (!context) { |
|
throw new Error('useAuth must be used within an AuthProvider'); |
|
} |
|
return context; |
|
}; |