import Link from "next/link"; import { sinceUnixDate } from "#/api/utils"; import { Chip } from "#/components/Chip/Chip"; import Image from "next/image"; const profile_lists = { // 0: "Не смотрю", 1: { name: "Смотрю", bg_color: "bg-green-500" }, 2: { name: "В планах", bg_color: "bg-purple-500" }, 3: { name: "Просмотрено", bg_color: "bg-blue-500" }, 4: { name: "Отложено", bg_color: "bg-yellow-500" }, 5: { name: "Брошено", bg_color: "bg-red-500" }, }; const YearSeason = ["_", "Зима", "Весна", "Лето", "Осень"]; export const ReleaseLink169Related = (props: any) => { const grade = props.grade.toFixed(1); const profile_list_status = props.profile_list_status; let user_list = null; if (profile_list_status != null || profile_list_status != 0) { user_list = profile_lists[profile_list_status]; } return ( <Link href={`/release/${props.id}`} className={`${ props.isLinkDisabled ? "pointer-events-none" : "" } flex gap-4 items-center justify-between mx-auto w-full max-w-[1024px]`} aria-disabled={props.isLinkDisabled} tabIndex={props.isLinkDisabled ? -1 : undefined} > <div className="items-center justify-center flex-1 hidden lg:flex"> <h1 className="inline-block text-6xl font-bold text-center text-transparent bg-gradient-to-r from-blue-600 via-purple-500 to-indigo-500 dark:from-blue-500 dark:via-purple-400 dark:to-indigo-300 bg-clip-text "> {props.season ? YearSeason[props.season] : ""} <br/> {props.year ? props.year : ""} </h1> </div> <div className="w-full max-w-[768px] h-auto p-2 bg-gray-100 rounded-lg dark:bg-slate-800"> <div className="flex w-full h-full gap-2 overflow-hidden"> <div className="flex-shrink-0"> <Image src={props.image} height={250} width={250} alt={props.title || ""} className="object-cover aspect-[9/16] lg:aspect-[12/16] h-auto w-24 md:w-32 lg:w-48 rounded-md" /> </div> <div className="flex flex-col flex-1 w-full h-full"> <div> {props.genres && ( <p className="text-xs font-light text-black dark:text-white md:text-sm lg:text-base xl:text-lg"> {props.genres} </p> )} <p className="block text-sm font-bold text-black dark:text-white md:text-base lg:text-lg xl:text-xl md:hidden"> {`${props.title_ru.slice(0, 47)}${ props.title_ru.length > 47 ? "..." : "" }`} </p> <p className="block text-xs font-light text-black dark:text-white md:text-sm lg:text-base xl:text-lg md:hidden"> {`${props.description.slice(0, 97)}${ props.description.length > 97 ? "..." : "" }`} </p> <p className="hidden text-sm font-bold text-black dark:text-white md:text-base lg:text-lg xl:text-xl md:block max-w-[512px]"> {props.title_ru} </p> <p className="hidden text-xs font-light text-black dark:text-white md:text-sm:text-base xl:text-lg md:block max-w-[512px]"> {props.description} </p> </div> <div className="flex flex-wrap gap-1 mt-1"> <Chip bg_color={ grade == 0 ? "hidden" : grade < 2 ? "bg-red-500" : grade < 3 ? "bg-orange-500" : grade < 4 ? "bg-yellow-500" : "bg-green-500" } name={grade} /> {user_list && ( <Chip bg_color={user_list.bg_color} name={user_list.name} /> )} {props.status ? ( <Chip name={props.status.name} /> ) : ( props.status_id != 0 && ( <Chip name={ props.status_id == 1 ? "Завершено" : props.status_id == 2 ? "Онгоинг" : props.status_id == 3 && "Анонс" } /> ) )} <Chip name={props.episodes_released && props.episodes_released} name_2={ props.episodes_total ? props.episodes_total + " эп." : "? эп." } devider="/" /> {props.category && <Chip name={props.category.name} />} {props.season || props.year ? ( <Chip bg_color="lg:hidden bg-gray-500" name={props.season ? YearSeason[props.season] : ""} name_2={props.year ? `${props.year} год` : ""} devider=" " /> ) : ( "" )} {props.is_favorite && ( <div className="flex items-center justify-center bg-pink-500 rounded-sm"> <span className="w-3 px-4 py-2.5 text-white sm:px-4 sm:py-3 xl:px-6 xl:py-4 iconify mdi--heart"></span> </div> )} </div> </div> </div> </div> </Link> ); };