import { useTranslation } from "next-i18next"; import { useCallback } from 'react'; import classNames from 'classnames'; import Container from "components/services/widget/container"; import Block from "components/services/widget/block"; import BlockList from "components/services/widget/block-list"; import useWidgetAPI from "utils/proxy/use-widget-api"; export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; const { data: moviesData, error: moviesError } = useWidgetAPI(widget, "movie"); const { data: queuedData, error: queuedError } = useWidgetAPI(widget, "queue/status"); const { data: queueDetailsData, error: queueDetailsError } = useWidgetAPI(widget, "queue/details"); // information taken from the Radarr docs: https://radarr.video/docs/api/ const formatDownloadState = useCallback((downloadState) => { switch (downloadState) { case "importPending": return "import pending"; case "failedPending": return "failed pending"; default: return downloadState; } }, []); if (moviesError || queuedError || queueDetailsError) { const finalError = moviesError ?? queuedError ?? queueDetailsError; return ; } if (!moviesData || !queuedData || !queueDetailsData) { return ( <> ); } return ( <> {Array.isArray(queueDetailsData) ? queueDetailsData.map((queueEntry) => (
{moviesData.all.find((entry) => entry.id === queueEntry.movieId)?.title}
{formatDownloadState(queueEntry.trackedDownloadState)}
{queueEntry.timeLeft}
)) : undefined} ); }