blob: 64c1b9a750c2883d1aa192140c782dc3c6e0196d [file] [log] [blame]
Krishya75e43c02025-04-05 21:16:30 +08001import React, { createContext, useContext, useState, useEffect } from 'react';
2
3const UserContext = createContext();
4
5export const UserProvider = ({ children }) => {
6 const [user, setUser] = useState(null);
7 const [loading, setLoading] = useState(true);
8
9 // 加载本地存储的用户信息
10 useEffect(() => {
11 const storedUser = localStorage.getItem('user');
12 if (storedUser) {
13 setUser(JSON.parse(storedUser));
14 }
15 setLoading(false);
16 }, []);
17
18 // 保存用户信息到本地存储
19 const saveUser = (userData) => {
20 localStorage.setItem('user', JSON.stringify(userData));
21 setUser(userData);
22 };
23
24 // 退出登录
25 const logout = () => {
26 localStorage.removeItem('user');
27 setUser(null);
28 };
29
30 return (
31 <UserContext.Provider value={{ user, loading, saveUser, logout }}>
32 {children}
33 </UserContext.Provider>
34 );
35};
36
37export const useUser = () => useContext(UserContext);