diff --git a/immichFrame.Web/src/lib/components/elements/error-element.svelte b/immichFrame.Web/src/lib/components/elements/error-element.svelte index 887aa37a..23c374cb 100644 --- a/immichFrame.Web/src/lib/components/elements/error-element.svelte +++ b/immichFrame.Web/src/lib/components/elements/error-element.svelte @@ -13,6 +13,11 @@ } let { message = '', authError: authError = false }: Props = $props(); + let retryMessage = $derived( + !authError + ? 'The page will automatically refresh every 30 seconds until a connection is re-established.' + : '' + );
{:else}

- Looks like your immich-server is offline or you misconfigured immichFrame, check the - container logs + {message || + 'Looks like your immich-server is offline or you misconfigured immichFrame. Check the container logs.'} +

+ +

+ {retryMessage}

{/if}
diff --git a/immichFrame.Web/src/lib/components/home-page/home-page.svelte b/immichFrame.Web/src/lib/components/home-page/home-page.svelte index da7379d1..fa183550 100644 --- a/immichFrame.Web/src/lib/components/home-page/home-page.svelte +++ b/immichFrame.Web/src/lib/components/home-page/home-page.svelte @@ -60,6 +60,7 @@ let unsubscribeRestart: () => void; let unsubscribeStop: () => void; + let refreshInterval: number; let cursorVisible = $state(true); let timeoutId: number; @@ -387,6 +388,12 @@ onMount(() => { window.addEventListener('mousemove', showCursor); window.addEventListener('click', showCursor); + + // 30 second reload on error + refreshInterval = window.setInterval(() => { + if (error) window.location.reload(); + }, 30000); + if ($configStore.primaryColor) { document.documentElement.style.setProperty('--primary-color', $configStore.primaryColor); } @@ -418,6 +425,7 @@ return () => { window.removeEventListener('mousemove', showCursor); window.removeEventListener('click', showCursor); + window.clearInterval(refreshInterval); }; });