diff --git a/src/app/[locale]/providers.tsx b/src/app/[locale]/providers.tsx
index 5e85838..c465d47 100644
--- a/src/app/[locale]/providers.tsx
+++ b/src/app/[locale]/providers.tsx
@@ -3,6 +3,7 @@
import { ActiveThemeProvider } from '@/components/layout/active-theme-provider';
import { CreditsProvider } from '@/components/layout/credits-provider';
import { PaymentProvider } from '@/components/layout/payment-provider';
+import { QueryProvider } from '@/components/providers/query-provider';
import { TooltipProvider } from '@/components/ui/tooltip';
import { websiteConfig } from '@/config/website';
import type { Translations } from 'fumadocs-ui/i18n';
@@ -54,21 +55,23 @@ export function Providers({ children, locale }: ProvidersProps) {
};
return (
-
-
-
-
-
- {children}
-
-
-
-
-
+
+
+
+
+
+
+ {children}
+
+
+
+
+
+
);
}
diff --git a/src/components/providers/query-provider.tsx b/src/components/providers/query-provider.tsx
new file mode 100644
index 0000000..c8e15c4
--- /dev/null
+++ b/src/components/providers/query-provider.tsx
@@ -0,0 +1,36 @@
+'use client';
+
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
+import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
+import type { ReactNode } from 'react';
+import { useState } from 'react';
+
+interface QueryProviderProps {
+ children: ReactNode;
+}
+
+export function QueryProvider({ children }: QueryProviderProps) {
+ const [queryClient] = useState(
+ () =>
+ new QueryClient({
+ defaultOptions: {
+ queries: {
+ staleTime: 5 * 60 * 1000, // 5 minutes
+ gcTime: 10 * 60 * 1000, // 10 minutes (formerly cacheTime)
+ retry: 1,
+ refetchOnWindowFocus: false,
+ },
+ mutations: {
+ retry: 1,
+ },
+ },
+ })
+ );
+
+ return (
+
+ {children}
+
+
+ );
+}