feat(nav): Settings as a page module (Design B)

Move Settings out of the right-side overlay into a left-nav page (page='settings'),
so it opens where you're already looking — no cross-screen mouse travel. The Settings
rail item now sets the page (with active highlight) instead of opening a dialog; the
panel is refactored to an in-flow .glass card (keeps the frosted look over the ambient
backdrop), with the page title shown in the header. Removed the overlay + Esc/backdrop
close path.
This commit is contained in:
npeter83 2026-06-16 01:05:05 +02:00
parent b82016c818
commit c5330e02f5
5 changed files with 71 additions and 102 deletions

View file

@ -78,11 +78,13 @@ export function hasFilterParams(params: URLSearchParams): boolean {
return KEYS.some((k) => params.has(k));
}
export type Page = "feed" | "channels" | "stats" | "playlists";
export type Page = "feed" | "channels" | "stats" | "playlists" | "settings";
export function readPage(): Page {
const p = new URLSearchParams(window.location.search).get("page");
return p === "channels" || p === "stats" || p === "playlists" ? p : "feed";
return p === "channels" || p === "stats" || p === "playlists" || p === "settings"
? p
: "feed";
}
/** Build a shareable absolute URL that reproduces the current filters (+ page). Used by the