start: show the normal site header on /start (with the owner dashboard button, highlighted there); no footer on the new-tab page
All checks were successful
Deploy production / deploy (push) Successful in 2m36s

/start is no longer immersive, so it loads the lazily imported SiteChrome like other pages.
Only the book reader still skips the chrome. hidesFooter() keeps the footer off /start.
This commit is contained in:
2026-10-24 16:03:06 +00:00
parent b757269151
commit bc58e97776
5 changed files with 60 additions and 46 deletions

View File

@@ -5,7 +5,7 @@
import { getSeo } from '#lib/seo.js';
// The header/footer are in #lib/components/SiteChrome.svelte, which +layout.ts loads only
// for pages that show them, so the /start new-tab page stays small.
// for pages that show them (not the full-screen book reader).
let { data, children } = $props();
const seo = $derived(getSeo(page.url.pathname, page.data, data.environment));
const Chrome = $derived(data.Chrome);

View File

@@ -2,8 +2,8 @@ import { isImmersive } from '#lib/chrome.js';
import type { LayoutLoad } from './$types';
// The site header/footer (icon libraries, dropdowns, the bits-ui Sheet) live in SiteChrome,
// imported only for pages that show them. Immersive pages such as the /start new-tab
// dashboard never download that code. Universal loads may return components.
// imported only for pages that show them. Immersive pages (the book reader) never
// download that code. Universal loads may return components.
export const load: LayoutLoad = async ({ data, url }) => ({
...data,
Chrome: isImmersive(url.pathname)