Enhancement: support completed field for jellyseer widget

This commit is contained in:
shamoon
2025-12-11 06:22:03 -08:00
parent 1ed2f16cbf
commit 15fa053b4d
2 changed files with 13 additions and 4 deletions

View File

@@ -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:

View File

@@ -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 }) {
<Block label="jellyseerr.pending" />
<Block label="jellyseerr.approved" />
<Block label="jellyseerr.available" />
<Block label="jellyseerr.completed" />
<Block label="jellyseerr.issues" />
</Container>
);
}
if (statsData.completed === undefined) {
// Newer versions added "completed", fallback to available
widget.fields = widget.fields.filter((field) => field !== "completed");
widget.fields.push("available");
}
return (
<Container service={service}>
<Block label="jellyseerr.pending" value={statsData.pending} />
<Block label="jellyseerr.approved" value={statsData.approved} />
<Block label="jellyseerr.available" value={statsData.available} />
<Block label="jellyseerr.completed" value={statsData.completed} />
<Block label="jellyseerr.issues" value={`${issueData?.open} / ${issueData?.total}`} />
</Container>
);