mirror of
https://github.com/Radiquum/AniX.git
synced 2025-04-06 16:24:40 +00:00
82 lines
2.5 KiB
JavaScript
82 lines
2.5 KiB
JavaScript
"use client";
|
|
|
|
import { useEffect, useState } from "react";
|
|
import { getData } from "@/app/api/api-utils";
|
|
import { endpoints } from "@/app/api/config";
|
|
import { ReleaseCard } from "../ReleaseCard/ReleaseCard";
|
|
|
|
export const ReleaseInfo = (props) => {
|
|
const [releaseInfo, setReleaseInfo] = useState();
|
|
|
|
useEffect(() => {
|
|
async function _fetchInfo() {
|
|
const release = await getData(`${endpoints.release}/${props.id}`);
|
|
setReleaseInfo(release);
|
|
}
|
|
if (props.id) {
|
|
_fetchInfo();
|
|
}
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
}, []);
|
|
|
|
return (
|
|
<>
|
|
{releaseInfo ? (
|
|
<>
|
|
<article className="no-padding fill">
|
|
<div className="grid no-space">
|
|
<div className="s3">
|
|
<img className="responsive" src={releaseInfo.release.image} />
|
|
</div>
|
|
<div className="s9">
|
|
<div className="padding">
|
|
<h5>{releaseInfo.release.title_ru}</h5>
|
|
<h6 className="small no-margin">
|
|
{releaseInfo.release.title_original}
|
|
</h6>
|
|
<p className="small no-margin">
|
|
{releaseInfo.release.country} •{" "}
|
|
{releaseInfo.release.status.name} •{" "}
|
|
{releaseInfo.release.episodes_released}/
|
|
{releaseInfo.release.episodes_total
|
|
? releaseInfo.release.episodes_total
|
|
: "?"}
|
|
</p>
|
|
<p>{releaseInfo.release.description}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</article>
|
|
<article className="grid">
|
|
<div className="row s12">
|
|
<i>hub</i>
|
|
<h5>Связанные релизы</h5>
|
|
</div>
|
|
<nav className="s12 scroll">
|
|
{releaseInfo.release.related_releases.map((item) => {
|
|
if (item.id == props.id) {
|
|
return "";
|
|
}
|
|
return (
|
|
<ReleaseCard
|
|
className={"s1"}
|
|
key={item.id}
|
|
id={item.id}
|
|
title={item.title_ru}
|
|
poster={item.image}
|
|
description={""}
|
|
height={400}
|
|
/>
|
|
);
|
|
})}
|
|
</nav>
|
|
</article>
|
|
</>
|
|
) : (
|
|
<div className="center-align">
|
|
<progress className="circle" />
|
|
</div>
|
|
)}
|
|
</>
|
|
);
|
|
};
|