A React Native app for the ultimate thinking partner.
at sdk-v1-upgrade 38 lines 1.1 kB view raw
1import { useEffect } from 'react'; 2import { useAuthStore } from '../stores/authStore'; 3import { useAgentStore } from '../stores/agentStore'; 4import { useChatStore } from '../stores/chatStore'; 5 6/** 7 * Hook to manage authentication state and actions 8 */ 9export function useAuth() { 10 const authStore = useAuthStore(); 11 const clearAgent = useAgentStore((state) => state.clearAgent); 12 const clearMessages = useChatStore((state) => state.clearMessages); 13 14 // Load stored token on mount 15 useEffect(() => { 16 authStore.loadStoredToken(); 17 }, []); 18 19 // Enhanced logout that clears all related state 20 const logout = async () => { 21 await authStore.logout(); 22 clearAgent(); 23 clearMessages(); 24 }; 25 26 return { 27 apiToken: authStore.apiToken, 28 isConnected: authStore.isConnected, 29 isConnecting: authStore.isConnecting, 30 isLoadingToken: authStore.isLoadingToken, 31 connectionError: authStore.connectionError, 32 33 setToken: authStore.setToken, 34 connectWithToken: authStore.connectWithToken, 35 logout, 36 clearError: authStore.clearError, 37 }; 38}