18 lines
521 B
JavaScript
18 lines
521 B
JavaScript
import { createContext, useReducer, useEffect } from 'react';
|
|
import { loadUser, saveUser, userReducer } from './reducers/UserReduser.jsx';
|
|
|
|
export const UserContext = createContext(null);
|
|
|
|
// eslint-disable-next-line react/prop-types
|
|
export const UserProvider = ({ children }) => {
|
|
const [user, dispatch] = useReducer(userReducer, null, loadUser);
|
|
|
|
useEffect(() => {
|
|
saveUser(user || null);
|
|
}, [user]);
|
|
|
|
return <UserContext.Provider value = {{ user, dispatch }}>
|
|
{children}
|
|
</UserContext.Provider>;
|
|
};
|