feat(ui): installable offline PWA (F5) #31

Merged
developer merged 2 commits from feature/ui-finalize-f5-pwa into development 2026-05-22 14:02:40 +00:00
2 changed files with 13 additions and 0 deletions
Showing only changes of commit 11f51944df - Show all commits
+7
View File
@@ -4,6 +4,7 @@
import { onMount } from "svelte"; import { onMount } from "svelte";
import { goto } from "$app/navigation"; import { goto } from "$app/navigation";
import { page } from "$app/state"; import { page } from "$app/state";
import { dev } from "$app/environment";
import { i18n } from "$lib/i18n/index.svelte"; import { i18n } from "$lib/i18n/index.svelte";
import { session } from "$lib/session-store.svelte"; import { session } from "$lib/session-store.svelte";
import { eventStream } from "../api/events.svelte"; import { eventStream } from "../api/events.svelte";
@@ -21,6 +22,12 @@
onMount(() => { onMount(() => {
void session.init(); void session.init();
// Production-only service-worker registration (auto-register is off
// in svelte.config.js) so `vite dev` and the dev-server e2e suite
// run without the worker intercepting requests.
if (!dev && "serviceWorker" in navigator) {
void navigator.serviceWorker.register("/service-worker.js");
}
return () => { return () => {
eventStream.stop(); eventStream.stop();
streamSessionId = null; streamSessionId = null;
+6
View File
@@ -11,5 +11,11 @@ export default {
fallback: "index.html", fallback: "index.html",
strict: true, strict: true,
}), }),
serviceWorker: {
// Registered manually in the root layout for production only.
// SvelteKit's auto-registration also runs under `vite dev`, where
// the worker would intercept and cache the dev-server e2e suite.
register: false,
},
}, },
}; };