Auth context pattern:
1const AuthContext = createContext(null);23function AuthProvider({ children }) {4 const [user, setUser] = useState(null);5 const [loading, setLoading] = useState(true);67 useEffect(() => {8 checkAuthState().then(u => {9 setUser(u);10 setLoading(false);11 });12 }, []);1314 const login = async (credentials) => {15 const u = await api.login(credentials);16 await SecureStore.setItem("token", u.token);17 setUser(u);18 };1920 const logout = async () => {21 await SecureStore.deleteItem("token");22 setUser(null);23 };2425 return (26 <AuthContext.Provider value={{ user, login, logout, loading }}>27 {children}28 </AuthContext.Provider>29 );30}
Best practices: