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;