'use client'; import { ApolloClient, ApolloProvider, HttpLink, InMemoryCache } from '@apollo/client'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { SessionProvider } from 'next-auth/react'; import { useState } from 'react'; function createApolloClient() { const uri = process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT || 'http://localhost:4000/graphql'; return new ApolloClient({ cache: new InMemoryCache(), link: new HttpLink({ uri, credentials: 'include' }), defaultOptions: { watchQuery: { fetchPolicy: 'cache-and-network' }, }, }); } export function Providers({ children }: { children: React.ReactNode }) { const [queryClient] = useState( () => new QueryClient({ defaultOptions: { queries: { staleTime: 60 * 1000, // 1 minute refetchOnWindowFocus: false, }, }, }) ); const [apolloClient] = useState(createApolloClient); return ( {children} ); }