suna/providers/AppProviders.tsx

40 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-06-20 05:23:50 +08:00
import { AuthProvider } from '@/hooks/useAuth';
2025-06-20 06:09:25 +08:00
import { ChatProvider } from '@/hooks/useChatContext';
2025-06-17 04:21:36 +08:00
import { cleanupAppState, initializeAppState, initializePersistence, queryClient } from '@/stores/query-client';
import { QueryClientProvider } from '@tanstack/react-query';
import React, { useEffect } from 'react';
interface AppProvidersProps {
children: React.ReactNode;
}
export const AppProviders: React.FC<AppProvidersProps> = ({ children }) => {
useEffect(() => {
// Initialize persistence and app state management
const initialize = async () => {
try {
await initializePersistence();
initializeAppState();
} catch (error) {
console.error('Failed to initialize app providers:', error);
}
};
initialize();
// Cleanup on unmount
return () => {
cleanupAppState();
};
}, []);
return (
<QueryClientProvider client={queryClient}>
2025-06-20 05:23:50 +08:00
<AuthProvider>
2025-06-20 06:09:25 +08:00
<ChatProvider>
{children}
</ChatProvider>
2025-06-20 05:23:50 +08:00
</AuthProvider>
2025-06-17 04:21:36 +08:00
</QueryClientProvider>
);
};