From 15fa053b4dc312bf9d8c333246a975a5edc7bfc4 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 11 Dec 2025 06:22:03 -0800 Subject: [PATCH] Enhancement: support completed field for jellyseer widget --- docs/widgets/services/jellyseerr.md | 4 ++-- src/widgets/jellyseerr/component.jsx | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/widgets/services/jellyseerr.md b/docs/widgets/services/jellyseerr.md index 8ffe5fbdf..d6e436e1a 100644 --- a/docs/widgets/services/jellyseerr.md +++ b/docs/widgets/services/jellyseerr.md @@ -7,8 +7,8 @@ Learn more about [Jellyseerr](https://github.com/Fallenbagel/jellyseerr). Find your API key under `Settings > General > API Key`. -Allowed fields: `["pending", "approved", "available", "issues"]`. -Default fields: `["pending", "approved", "available"]`. +Allowed fields: `["pending", "approved", "available", "completed", "issues"]`. +Default fields: `["pending", "approved", "completed"]`. ```yaml widget: diff --git a/src/widgets/jellyseerr/component.jsx b/src/widgets/jellyseerr/component.jsx index d405cbf62..dd065b7cd 100644 --- a/src/widgets/jellyseerr/component.jsx +++ b/src/widgets/jellyseerr/component.jsx @@ -3,12 +3,13 @@ import Container from "components/services/widget/container"; import useWidgetAPI from "utils/proxy/use-widget-api"; -export const jellyseerrDefaultFields = ["pending", "approved", "available"]; +export const jellyseerrDefaultFields = ["pending", "approved", "completed"]; +const MAX_ALLOWED_FIELDS = 4; export default function Component({ service }) { const { widget } = service; - widget.fields = widget?.fields?.length ? widget.fields : jellyseerrDefaultFields; + widget.fields = widget?.fields?.length ? widget.fields.slice(0, MAX_ALLOWED_FIELDS) : jellyseerrDefaultFields; const isIssueEnabled = widget.fields.includes("issues"); const { data: statsData, error: statsError } = useWidgetAPI(widget, "request/count"); @@ -23,16 +24,24 @@ export default function Component({ service }) { + ); } + if (statsData.completed === undefined) { + // Newer versions added "completed", fallback to available + widget.fields = widget.fields.filter((field) => field !== "completed"); + widget.fields.push("available"); + } + return ( + );