From 3eed7336a50bc3346266c478ca2fc3897ade2d78 Mon Sep 17 00:00:00 2001 From: "Kayashov.SM" Date: Mon, 29 Sep 2025 17:57:25 +0400 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=BD=D0=B0=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BA=D0=B0=D1=80=D1=82=D0=BE=D1=87=D0=B5=D0=BA=20?= =?UTF-8?q?=D1=84=D0=B8=D0=BB=D1=8C=D0=BC=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/CardCompact.js | 18 +++++++++--------- src/components/CardExtend.js | 7 ++++--- src/components/contentCard.js | 30 ++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 src/components/contentCard.js diff --git a/src/components/CardCompact.js b/src/components/CardCompact.js index f55c3f8..71f5ccf 100644 --- a/src/components/CardCompact.js +++ b/src/components/CardCompact.js @@ -1,22 +1,22 @@ import React from 'react'; import {Card} from 'react-bootstrap'; +import {getCardContent} from "./contentCard"; const CardCompact = ({item}) => { - const image = item?.images?.length > 0 ? item.images[0]?.remoteUrl : null; - const rating = item.ratings?.imdb?.value ?? null; - const status = (item.monitored || item.hasFile) ? ( - item.hasFile ? "Статус: Загружен" : "Статус: Загружается" - ) : null; + const cc = getCardContent(item); + return ( - + {item.title}
Год: {item.year}
-
Рейтинг: {rating}
- {status ?
{status}
: null} - {item.sizeOnDisk ?
Размер: {(item.sizeOnDisk / 1000000000).toFixed(2)} Gb
: null} +
Рейтинг: {cc.rating}
+ {cc.status ?
{cc.status}
: null} + {cc.size ?
Размер: {cc.size} Gb
: null} + {(item?.statistics?.seasonCount ?
Сезоны: {item.statistics.seasonCount}
: null)} + {cc.series ?
Серии: {cc.series}
: null}
diff --git a/src/components/CardExtend.js b/src/components/CardExtend.js index 9a8014d..78e0c63 100644 --- a/src/components/CardExtend.js +++ b/src/components/CardExtend.js @@ -1,20 +1,21 @@ import React from 'react'; import {Button, Card, Col, Row} from 'react-bootstrap'; +import {getCardContent} from "./contentCard"; const CardExtended = ({item, selectHandle}) => { - const rating = item.ratings?.imdb?.value ?? null; + const cc = getCardContent(item); return ( selectHandle(item)}> - + {item.title} Год: {item.year}
- Рейтинг: {rating}
+ Рейтинг: {cc.rating}
{item.overview}
diff --git a/src/components/contentCard.js b/src/components/contentCard.js new file mode 100644 index 0000000..6c07656 --- /dev/null +++ b/src/components/contentCard.js @@ -0,0 +1,30 @@ +export const getCardContent = (item) => { + let result = { + image: item?.images?.length > 0 ? item.images[0]?.remoteUrl : null, + rating: item.ratings?.imdb?.value ?? null, + status: null, + size: null, + series: null, + }; + + if (item.sizeOnDisk) { + result.size = item.sizeOnDisk / 1000000000; + } + + if (item.monitored || item.hasFile) { + result.status = item.hasFile ? "Статус: Загружен" : "Статус: Загружается" + } + + if (item.statistics) { + const stat = item.statistics + result.status = stat.percentOfEpisodes === 100 ? "Статус: Загружен" : "Статус: Загружается" + + result.series = `${stat.episodeFileCount}/${stat.totalEpisodeCount}` + + if (stat.sizeOnDisk) { + result.size = (stat.sizeOnDisk / 1000000000).toFixed(2); + } + } + + return result; +} \ No newline at end of file