From fef8b840e14cfc935c59fea29957c78ff13d3312 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 6 Nov 2024 23:10:14 -0800 Subject: theme cookie --- src/routes/(app)/+layout.server.ts | 3 ++- src/routes/(app)/+layout.svelte | 11 +++++++---- src/routes/(app)/invoice/[id]/+layout.server.ts | 5 +++-- src/routes/(app)/invoice/[id]/+layout@.svelte | 11 +++++++---- src/routes/(static)/+layout.svelte | 6 ++++-- src/routes/+layout.server.ts | 2 ++ src/routes/+layout.svelte | 9 ++++++--- src/routes/+layout.ts | 2 -- 8 files changed, 31 insertions(+), 18 deletions(-) (limited to 'src/routes') diff --git a/src/routes/(app)/+layout.server.ts b/src/routes/(app)/+layout.server.ts index b5a279f2..96bde919 100644 --- a/src/routes/(app)/+layout.server.ts +++ b/src/routes/(app)/+layout.server.ts @@ -55,5 +55,6 @@ export async function load({ cookies, request, url, params }) { console.log(e); } - return { user, token, rate, rates, subject }; + const theme = cookies.get("theme"); + return { user, token, rate, rates, subject, theme }; } diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index 301b838b..095e597d 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -10,7 +10,7 @@ passwordPrompt, password, pin, - theme, + theme as themeStore, } from "$lib/store"; import { page } from "$app/stores"; import { browser } from "$app/environment"; @@ -24,13 +24,16 @@ export let data; - let { generate, rate, user, subject, token, rates } = data; + let { generate, rate, user, subject, token, rates, theme } = data; + $: theme = $themeStore; $: update(data); let update = (data) => { - ({ rate, user, subject, token, rates } = data); + ({ rate, user, subject, token, rates, theme } = data); }; + $themeStore = theme; + afterNavigate(() => { if (user) { preloadData(`/${user.username}`); @@ -113,7 +116,7 @@ -
+
{#if !$loading} diff --git a/src/routes/(app)/invoice/[id]/+layout.server.ts b/src/routes/(app)/invoice/[id]/+layout.server.ts index a844b928..e428d9fe 100644 --- a/src/routes/(app)/invoice/[id]/+layout.server.ts +++ b/src/routes/(app)/invoice/[id]/+layout.server.ts @@ -1,6 +1,6 @@ -import * as Qr from "qrcode-base64"; import { get } from "$lib/utils"; import { redirect } from "@sveltejs/kit"; +import * as Qr from "qrcode-base64"; export async function load({ cookies, depends, params, url, parent }) { depends("app:invoice"); @@ -36,5 +36,6 @@ export async function load({ cookies, depends, params, url, parent }) { } const src = Qr.drawImg(invoice?.text || "", { size: 500 }); - return { id, invoice, subject, src, user, token }; + const theme = cookies.get("theme"); + return { id, invoice, subject, src, user, token, theme }; } diff --git a/src/routes/(app)/invoice/[id]/+layout@.svelte b/src/routes/(app)/invoice/[id]/+layout@.svelte index da801750..62c05db1 100644 --- a/src/routes/(app)/invoice/[id]/+layout@.svelte +++ b/src/routes/(app)/invoice/[id]/+layout@.svelte @@ -10,7 +10,7 @@ passwordPrompt, password, pin, - theme, + theme as themeStore, } from "$lib/store"; import { page } from "$app/stores"; import { browser } from "$app/environment"; @@ -24,13 +24,16 @@ export let data; - let { generate, rate, user, subject, token, rates } = data; + let { generate, rate, user, subject, token, rates, theme } = data; $: update(data); let update = (data) => { - ({ rate, user, subject, token, rates } = data); + ({ rate, user, subject, token, rates, theme } = data); }; + $: theme = $themeStore; + $themeStore = theme; + onMount(async () => { if (browser) { checkSocket(); @@ -104,7 +107,7 @@ -
+
{#if !$loading} diff --git a/src/routes/(static)/+layout.svelte b/src/routes/(static)/+layout.svelte index f09852fb..c9bdc091 100644 --- a/src/routes/(static)/+layout.svelte +++ b/src/routes/(static)/+layout.svelte @@ -1,18 +1,20 @@
diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts index b4022e69..78a4d012 100644 --- a/src/routes/+layout.server.ts +++ b/src/routes/+layout.server.ts @@ -37,8 +37,10 @@ export const load = async ({ cookies, request, url }) => { } await loadTranslations(locale, pathname); // keep this just before the `return` + const theme = cookies.get("theme"); return { + theme, host, pathname, i18n: { locale, route: pathname }, diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 78ce0fd9..e5aeb206 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -4,15 +4,18 @@ import "../app.css"; import { loading, t } from "$lib/translations"; import { onMount } from "svelte"; - import { installPrompt, theme } from "$lib/store"; + import { installPrompt, theme as themeStore } from "$lib/store"; export let data; - let { pathname } = data; + let { pathname, theme } = data; + $themeStore = theme; let host = PUBLIC_DOMAIN.includes("localhost") ? `http://${PUBLIC_DOMAIN}` : `https://${PUBLIC_DOMAIN}`; + $: theme = $themeStore + onMount(() => { if (!browser) return; window.addEventListener("beforeinstallprompt", (event) => { @@ -44,7 +47,7 @@ {#if !$loading} -
+
{/if} diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts index fac22b19..ee0ed70c 100644 --- a/src/routes/+layout.ts +++ b/src/routes/+layout.ts @@ -10,8 +10,6 @@ export const load = async ({ data }) => { await setRoute(route); await setLocale(locale); - - return i18n; }; addIcon("coinos:logo", { -- cgit v1.2.3