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 (
+
);