import { useTranslation } from "next-i18next"; import { useCallback } from 'react'; import QueueEntry from "../../components/widgets/queue/queueEntry"; import Container from "components/services/widget/container"; import Block from "components/services/widget/block"; import useWidgetAPI from "utils/proxy/use-widget-api"; import BlockList from 'components/services/widget/block-list'; export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; const { data: wantedData, error: wantedError } = useWidgetAPI(widget, "wanted/missing"); const { data: queuedData, error: queuedError } = useWidgetAPI(widget, "queue"); const { data: seriesData, error: seriesError } = useWidgetAPI(widget, "series"); const { data: queueDetailsData, error: queueDetailsError } = useWidgetAPI(widget, "queue/details"); // information taken from the Sonarr docs: https://sonarr.tv/docs/api/ const formatDownloadState = useCallback((downloadState) => { switch (downloadState) { case "importPending": return "import pending"; case "failedPending": return "failed pending"; default: return downloadState; } }, []); if (wantedError || queuedError || seriesError || queueDetailsError) { const finalError = wantedError ?? queuedError ?? seriesError ?? queueDetailsError; return ; } const enableQueue = widget?.enableQueue; if (!wantedData || !queuedData || !seriesData || !queueDetailsData) { return ( <> { enableQueue && } ); } return ( <> { enableQueue && {Array.isArray(queueDetailsData) ? queueDetailsData.map((queueEntry) => ( entry.id === queueEntry.seriesId)?.title } • ${ queueEntry.episodeTitle}`} activity={formatDownloadState(queueEntry.trackedDownloadState)} key={queueEntry.episodeId} /> )) : undefined} } ); }