diff --git a/src/widgets/immich/component.jsx b/src/widgets/immich/component.jsx index f5b9e6744..0f9b104c2 100644 --- a/src/widgets/immich/component.jsx +++ b/src/widgets/immich/component.jsx @@ -8,10 +8,13 @@ export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; - const { data: immichData, error: immichError } = useWidgetAPI(widget); + const { data: versionData, error: versionError } = useWidgetAPI(widget, "version"); + // see https://github.com/gethomepage/homepage/issues/2282 + const endpoint = versionData?.major >= 1 && versionData?.minor > 84 ? "statistics" : "stats"; + const { data: immichData, error: immichError } = useWidgetAPI(widget, endpoint); - if (immichError || immichData?.statusCode === 401) { - return ; + if (immichError || versionError || immichData?.statusCode === 401) { + return ; } if (!immichData) { diff --git a/src/widgets/immich/widget.js b/src/widgets/immich/widget.js index 85867aeb3..230f8ab27 100644 --- a/src/widgets/immich/widget.js +++ b/src/widgets/immich/widget.js @@ -1,8 +1,20 @@ import credentialedProxyHandler from "utils/proxy/handlers/credentialed"; const widget = { - api: "{url}/api/server-info/stats", + api: "{url}/api/server-info/{endpoint}", proxyHandler: credentialedProxyHandler, + + mappings: { + version: { + endpoint: "version", + }, + statistics: { + endpoint: "statistics", + }, + stats: { + endpoint: "stats", + }, + }, }; export default widget;