|
@@ -1,7 +1,8 @@
|
|
import { useTranslation } from "next-i18next";
|
|
import { useTranslation } from "next-i18next";
|
|
-import classNames from 'classnames';
|
|
|
|
import { useCallback } from 'react';
|
|
import { useCallback } from 'react';
|
|
|
|
|
|
|
|
+import QueueEntry from "../../components/widgets/queue/queueEntry";
|
|
|
|
+
|
|
import Container from "components/services/widget/container";
|
|
import Container from "components/services/widget/container";
|
|
import Block from "components/services/widget/block";
|
|
import Block from "components/services/widget/block";
|
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
|
import useWidgetAPI from "utils/proxy/use-widget-api";
|
|
@@ -33,6 +34,8 @@ export default function Component({ service }) {
|
|
return <Container service={service} error={finalError} />;
|
|
return <Container service={service} error={finalError} />;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ const enableQueue = widget?.enableQueue;
|
|
|
|
+
|
|
if (!wantedData || !queuedData || !seriesData || !queueDetailsData) {
|
|
if (!wantedData || !queuedData || !seriesData || !queueDetailsData) {
|
|
return (
|
|
return (
|
|
<>
|
|
<>
|
|
@@ -41,9 +44,11 @@ export default function Component({ service }) {
|
|
<Block label="sonarr.queued" />
|
|
<Block label="sonarr.queued" />
|
|
<Block label="sonarr.series" />
|
|
<Block label="sonarr.series" />
|
|
</Container>
|
|
</Container>
|
|
- <Container service={service}>
|
|
|
|
- <BlockList label="sonarr.queued" />
|
|
|
|
- </Container>
|
|
|
|
|
|
+ { enableQueue &&
|
|
|
|
+ <Container service={service}>
|
|
|
|
+ <BlockList label="sonarr.queued" />
|
|
|
|
+ </Container>
|
|
|
|
+ }
|
|
</>
|
|
</>
|
|
);
|
|
);
|
|
}
|
|
}
|
|
@@ -55,34 +60,22 @@ export default function Component({ service }) {
|
|
<Block label="sonarr.queued" value={t("common.number", { value: queuedData.totalRecords })} />
|
|
<Block label="sonarr.queued" value={t("common.number", { value: queuedData.totalRecords })} />
|
|
<Block label="sonarr.series" value={t("common.number", { value: seriesData.length })} />
|
|
<Block label="sonarr.series" value={t("common.number", { value: seriesData.length })} />
|
|
</Container>
|
|
</Container>
|
|
- <Container service={service}>
|
|
|
|
- <BlockList label="sonarr.queued" childHeight={52}>
|
|
|
|
- {Array.isArray(queueDetailsData) ? queueDetailsData.map((queueEntry) => (
|
|
|
|
- <div className="my-0.5 w-full flex flex-col justify-between items-center" key={queueEntry.episodeId}>
|
|
|
|
- <div className="h-6 w-full flex flex-row justify-between items-center">
|
|
|
|
- <div className="w-full mr-5 overflow-hidden">
|
|
|
|
- <div className="whitespace-nowrap text-left w-0">{seriesData.find((entry) => entry.id === queueEntry.seriesId).title} • {queueEntry.episodeTitle}</div>
|
|
|
|
- </div>
|
|
|
|
- <div>{formatDownloadState(queueEntry.trackedDownloadState)}</div>
|
|
|
|
- </div>
|
|
|
|
- <div className="h-6 w-full flex flex-row justify-between items-center">
|
|
|
|
- <div className="mr-5 w-full bg-theme-800/30 rounded-full h-full dark:bg-theme-200/20">
|
|
|
|
- <div
|
|
|
|
- className={classNames(
|
|
|
|
- "h-full rounded-full transition-all duration-1000",
|
|
|
|
- queueEntry.trackedDownloadStatus === "ok" ? "bg-blue-500/80" : "bg-orange-500/80"
|
|
|
|
- )}
|
|
|
|
- style={{
|
|
|
|
- width: `${(1 - queueEntry.sizeLeft / queueEntry.size) * 100}%`,
|
|
|
|
- }}
|
|
|
|
- />
|
|
|
|
- </div>
|
|
|
|
- <div className="w-24 text-right">{queueEntry.timeLeft}</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- )) : undefined}
|
|
|
|
- </BlockList>
|
|
|
|
- </Container>
|
|
|
|
|
|
+ { enableQueue &&
|
|
|
|
+ <Container service={service}>
|
|
|
|
+ <BlockList label="sonarr.queue" childHeight={24}>
|
|
|
|
+ {Array.isArray(queueDetailsData) ? queueDetailsData.map((queueEntry) => (
|
|
|
|
+ <QueueEntry
|
|
|
|
+ progress={(1 - queueEntry.sizeLeft / queueEntry.size) * 100}
|
|
|
|
+ status={queueEntry.status}
|
|
|
|
+ timeLeft={queueEntry.timeLeft}
|
|
|
|
+ title={`${seriesData.find((entry) => entry.id === queueEntry.seriesId)?.title } • ${ queueEntry.episodeTitle}`}
|
|
|
|
+ activity={formatDownloadState(queueEntry.trackedDownloadState)}
|
|
|
|
+ key={queueEntry.episodeId}
|
|
|
|
+ />
|
|
|
|
+ )) : undefined}
|
|
|
|
+ </BlockList>
|
|
|
|
+ </Container>
|
|
|
|
+ }
|
|
</>
|
|
</>
|
|
);
|
|
);
|
|
}
|
|
}
|