synops/frontend/src/routes/+layout.svelte
vegard a91d358263 STDB WebSocket-klient med reaktive Svelte-stores (oppgave 3.3)
Frontend kobler til SpacetimeDB via WebSocket og abonnerer på
node- og edge-tabellene. Data eksponeres som reaktive Svelte 5-stores
(runes) som oppdateres automatisk ved insert/update/delete.

Implementering:
- spacetimedb SDK (npm) + genererte TypeScript-bindings
- connection.svelte.ts: tilkoblingsmanager med reaktiv state
- stores.svelte.ts: nodeStore og edgeStore med sekundærindekser
  (bySource, byTarget, byKind, byType osv.)
- Layout initialiserer tilkobling ved autentisering
- Hjemmesiden viser tilkoblingsstatus og antall noder/edges
- .env.example med VITE_SPACETIMEDB_URL og VITE_SPACETIMEDB_MODULE

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 13:55:37 +01:00

20 lines
435 B
Svelte

<script lang="ts">
import '../app.css';
import { page } from '$app/stores';
import { stdb } from '$lib/spacetime';
import { browser } from '$app/environment';
let { children } = $props();
// Connect to SpacetimeDB when authenticated and in browser
$effect(() => {
if (browser && $page.data.session?.user) {
stdb.connect();
}
return () => {
if (browser) stdb.disconnect();
};
});
</script>
{@render children()}