import { Queries } from '@/api/queries'; import PageTitle from '@/components/PageTitle'; import MainNews from '@/components/news/MainNews'; import NewsGrid from '@/components/news/NewsGrid'; import Item from '@/components/news/NewsItem'; import Hydrate from '@/utils/HydrateClient'; import getQueryClient from '@/utils/getQueryClient'; import { dehydrate } from '@tanstack/react-query'; export async function generateStaticParams() { const news = await Queries.getNews(1, { perPage: 20 }); return news.data.map((item) => ({ slug: item.id.toString(), })); } interface IParams { params: { slug: string; }; } const NewsItem = async ({ params }: IParams) => { const queryClient = getQueryClient(); await queryClient.prefetchQuery({ queryKey: ['news_item', params.slug], queryFn: () => Queries.getNewsItem(params.slug), }); await queryClient.prefetchInfiniteQuery({ queryKey: ['news', 'infinite'], queryFn: ({ pageParam = 1 }) => Queries.getNews(pageParam, {}), }); const dehydratedState = dehydrate(queryClient); return (
); }; export default NewsItem;