diff --git a/src/widgets/immich/component.jsx b/src/widgets/immich/component.jsx
index f5b9e674..0f9b104c 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 85867aeb..230f8ab2 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;