From 7c5b8098021d9c39e93d40f67112048e5ad87a12 Mon Sep 17 00:00:00 2001 From: vegard Date: Sun, 15 Mar 2026 02:36:32 +0100 Subject: [PATCH] =?UTF-8?q?Redirect=20/=20til=20f=C3=B8rste=20workspace-si?= =?UTF-8?q?de=20automatisk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Både workspace-switch og direkte navigering til rot-URL lander nå på første konfigurerte side i stedet for tom oversikt. Co-Authored-By: Claude Opus 4.6 --- web/src/routes/+page.server.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/web/src/routes/+page.server.ts b/web/src/routes/+page.server.ts index 1a7f690..ef32df7 100644 --- a/web/src/routes/+page.server.ts +++ b/web/src/routes/+page.server.ts @@ -1,8 +1,15 @@ import type { PageServerLoad } from './$types'; +import type { PageConfig } from '$lib/types/pages'; import { redirect } from '@sveltejs/kit'; const WORKSPACE_COOKIE = 'sidelinja_workspace'; +function getFirstPageSlug(workspace: { settings?: unknown } | null): string | null { + const settings = workspace?.settings as Record | undefined; + const pages = (settings?.pages as PageConfig[]) ?? []; + return pages[0]?.slug ?? null; +} + export const load: PageServerLoad = async ({ url, cookies, locals }) => { const switchTo = url.searchParams.get('switch_workspace'); @@ -16,7 +23,13 @@ export const load: PageServerLoad = async ({ url, cookies, locals }) => { sameSite: 'lax', maxAge: 60 * 60 * 24 * 365 }); + const firstPage = getFirstPageSlug(ws); + if (firstPage) redirect(303, `/p/${firstPage}`); } redirect(303, '/'); } + + // Vanlig landing på / — redirect til første side + const firstPage = getFirstPageSlug(locals.workspace); + if (firstPage) redirect(303, `/p/${firstPage}`); };