blob: a2be3828195f77463e050d6b3b92d9d5e2f57aa4 [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
Krishya75e43c02025-04-05 21:16:30 +08009 useEffect(() => {
10 const storedUser = localStorage.getItem('user');
11 if (storedUser) {
12 setUser(JSON.parse(storedUser));
22301009237217b2025-04-20 15:15:25 +080013 } else {
14 // 设置默认用户(id: 1)
15 const defaultUser = { id: 1, name: '测试用户' };
16 localStorage.setItem('user', JSON.stringify(defaultUser));
17 setUser(defaultUser);
Krishya75e43c02025-04-05 21:16:30 +080018 }
19 setLoading(false);
20 }, []);
21
Krishya75e43c02025-04-05 21:16:30 +080022 const saveUser = (userData) => {
23 localStorage.setItem('user', JSON.stringify(userData));
24 setUser(userData);
25 };
26
Krishya75e43c02025-04-05 21:16:30 +080027 const logout = () => {
28 localStorage.removeItem('user');
29 setUser(null);
30 };
31
32 return (
33 <UserContext.Provider value={{ user, loading, saveUser, logout }}>
34 {children}
35 </UserContext.Provider>
36 );
37};
38
22301009237217b2025-04-20 15:15:25 +080039export const useUser = () => useContext(UserContext);