import Typography from "@/shared/ui/components/Typography/Typography"; import "./NewsDetails.scss"; import { apiInstance } from "@/shared/config/apiConfig"; import { INews } from "@/shared/types/news-type"; import Image from "next/image"; import message from "./icons/message.svg"; import calendar from "./icons/calendar.svg"; import ReviewSection from "@/widgets/ReviewSection/ReviewSection"; import BreadCrumbs from "@/features/BreadCrumbs/BreadCrumbs"; import { Metadata } from "next"; export async function generateMetadata({ params, }: { params: { id: string }; }): Promise<Metadata> { const response = await apiInstance.get<INews>( `/news/${params.id}/` ); return { title: response.data.title, description: response.data.description, openGraph: { images: [response.data.image], type: "article", publishedTime: response.data.created_at, }, keywords: ["Новости КР", "Кыргызстан"], }; } const NewsDetails = async ({ params, }: { params: { id: string; новость: string }; }) => { const getNewsById = async () => { const response = await apiInstance.get<INews>( `/news/${params.id}/` ); return response.data; }; const data = await getNewsById(); const months: Record<string, string> = { "01": "Январь", "02": "Февраль", "03": "Март", "04": "Апрель", "05": "Май", "06": "Июнь", "07": "Июль", "08": "Август", "09": "Сентябрь", "10": "Октябрь", "11": "Ноябрь", "12": "Декабрь", }; return ( <div className="news-details page-padding"> <BreadCrumbs /> <Typography element="h2">{data.title}</Typography> <div className="news-details__img"> <img id="news-img" src={data.image} alt="News Image" /> <div className="news-details__date-and-reviews"> <div className="news-details__date"> <Image src={calendar} alt="Calendar Icon" /> <p> {months[data.created_at.slice(5, 7)]}{" "} {data.created_at.slice(5, 7).slice(0, 1) === "0" ? data.created_at.slice(6, 7) : data.created_at.slice(5, 7)} , {data.created_at.slice(0, 4)} </p> </div> <div className="news-details__reviews"> <Image src={message} alt="Message Icon" /> <p>Комментарии: {data.count_reviews}</p> </div> </div> </div> <div className="news-details__text"> <h3>{data.title}</h3> <p>{data.description}</p> </div> <ReviewSection endpoint="news" id={data.id} /> </div> ); }; export default NewsDetails;