37 lines
752 B
JavaScript
37 lines
752 B
JavaScript
import React, { createContext, useState, useContext } from 'react';
|
|
|
|
const AuthContext = createContext();
|
|
|
|
export const useAuth = () => {
|
|
const context = useContext(AuthContext);
|
|
if (!context) {
|
|
throw new Error('useAuth must be used within an AuthProvider');
|
|
}
|
|
return context;
|
|
};
|
|
|
|
export const AuthProvider = ({ children }) => {
|
|
const [user, setUser] = useState(null);
|
|
|
|
const login = (userData) => {
|
|
setUser(userData);
|
|
localStorage.setItem('user', JSON.stringify(userData));
|
|
};
|
|
|
|
const logout = () => {
|
|
setUser(null);
|
|
localStorage.removeItem('user');
|
|
};
|
|
|
|
const value = {
|
|
user,
|
|
login,
|
|
logout
|
|
};
|
|
|
|
return (
|
|
<AuthContext.Provider value={value}>
|
|
{children}
|
|
</AuthContext.Provider>
|
|
);
|
|
}; |