add tanstack/react-query

This commit is contained in:
smanylov
2025-12-02 17:11:53 +07:00
parent d89cc35fca
commit 6d47fa7fbb
15 changed files with 209 additions and 94 deletions
+14 -9
View File
@@ -1,18 +1,23 @@
import NavLinks from '@/app/ui/nav-links'
import styles from '@/app/page.module.scss'
import HeaderPanel from '../ui/header/headerPanel';
import { DataProvider } from '@/app/context/data-context';
import { fetchFruit } from '@/app/lib/action';
import { getSessionToken } from '@/app/lib/session';
import { getQueryClient } from '@/app/providers/getQueryClient';
import { HydrationBoundary, dehydrate } from '@tanstack/react-query';
import { getUserData } from '@/app/lib/action';
export default async function Layout({ children }: { children: React.ReactNode }) {
const queryClient = getQueryClient();
const fruitsData = await fetchFruit(100);
const token = await getSessionToken();
await Promise.all([
queryClient.prefetchQuery({
queryKey: ['userData'],
queryFn: () => getUserData()
})
])
return (
<DataProvider dataContext={fruitsData}>
<div className="flex">
<div className="flex">
<HydrationBoundary state={dehydrate(queryClient)}>
<NavLinks />
<div className={`${styles.mainContainter}`}>
<HeaderPanel />
@@ -20,7 +25,7 @@ export default async function Layout({ children }: { children: React.ReactNode }
{children}
</main>
</div>
</div>
</DataProvider>
</HydrationBoundary>
</div>
);
}