From 0b038f4deace0f904b39a3e018438bcaa2704fe5 Mon Sep 17 00:00:00 2001 From: June Date: Tue, 17 Feb 2026 11:22:38 +1300 Subject: [PATCH] okay working now, datevalue respects current page --- src/routes/+layout.svelte | 41 +++++++++++++--------------------- src/routes/+layout.ts | 21 ++++++++++++----- src/routes/[date]/+page.svelte | 2 +- src/routes/[date]/+page.ts | 2 +- 4 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index f2cb652..c870855 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -2,7 +2,11 @@ import "./layout.css"; import favicon from "$lib/assets/favicon.svg"; import { ModeWatcher } from "mode-watcher"; - import { CalendarDate, today, getLocalTimeZone } from "@internationalized/date"; + import { + CalendarDate, + today, + getLocalTimeZone, + } from "@internationalized/date"; import Header from "$lib/components/header.svelte"; import Calendar from "$lib/components/calendar.svelte"; @@ -11,27 +15,17 @@ let { children, data } = $props(); let dateValue = $derived(data.date); - let entries = $derived(data.entries) - - // async function fetchForMonth(d: CalendarDate) { - // const res = await fetch( - // `/api/entry?month=${d.year}-${dateValue.month}`, - // ); - - // return await res.json() - // } + let entries = $derived(data.entries); - // onMount(async () => { - // const res = await fetch( - // `/api/entry?month=${dateValue.year}-${dateValue.month}`, - // ); - - // entries = await res.json() - // }); - $effect(() => { - goto(`/${dateValue}`) - }) + // Navigate when dateValue changes + goto(`/${dateValue}`); + }); + + $effect(() => { + // Sync dateValue with data.date when it changes + dateValue = data.date; + }); @@ -52,11 +46,8 @@ - \ No newline at end of file + diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts index 76e7c10..f36ae19 100644 --- a/src/routes/+layout.ts +++ b/src/routes/+layout.ts @@ -1,13 +1,22 @@ -import { today, getLocalTimeZone } from "@internationalized/date"; +import { today, getLocalTimeZone, CalendarDate } from "@internationalized/date"; export async function load({ params, fetch }) { - const dateValue = today(getLocalTimeZone()); - - const res = await fetch(`/api/entry?month=${dateValue.year}-${dateValue.month}`) - const entries = await res.json() + let dateValue; + + if (params.date) { + const [year, month, day] = params.date.split("-").map(Number); + dateValue = new CalendarDate(year, month, day); + } else { + dateValue = today(getLocalTimeZone()); + } + + const res = await fetch( + `/api/entry?month=${dateValue.year}-${dateValue.month}`, + ); + const entries = await res.json(); return { entries: entries, - date: dateValue + date: dateValue, }; } diff --git a/src/routes/[date]/+page.svelte b/src/routes/[date]/+page.svelte index f216e42..25c06c8 100644 --- a/src/routes/[date]/+page.svelte +++ b/src/routes/[date]/+page.svelte @@ -8,7 +8,7 @@ -{#if data.entry.id} +{#if data.entry} {:else} No entry exists for {data.date} diff --git a/src/routes/[date]/+page.ts b/src/routes/[date]/+page.ts index 86518e7..ab1af8c 100644 --- a/src/routes/[date]/+page.ts +++ b/src/routes/[date]/+page.ts @@ -2,5 +2,5 @@ export async function load({ params, fetch }) { const res = await fetch(`/api/entry?date=${params.date}`); const entries = await res.json(); - return { entry: entries }; + return { entry: entries[0] }; }