fix: "← Calendar" returns to the previously viewed week
All checks were successful
Build and Deploy / Build & Push (push) Successful in 1m3s

HomePageClient writes the current weekStart to localStorage("lastWeek")
whenever it changes. BackToCalendarLink (new client component) reads
that value on mount and builds the href — falling back to "/" if nothing
is stored (e.g. direct link to a park page).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Josh Wright
2026-04-05 08:59:14 -04:00
parent 5b575f962e
commit 090f4d876d
3 changed files with 38 additions and 13 deletions

View File

@@ -1,4 +1,5 @@
import Link from "next/link";
import { BackToCalendarLink } from "@/components/BackToCalendarLink";
import { notFound } from "next/navigation";
import { PARK_MAP } from "@/lib/parks";
import { openDb, getParkMonthData, getApiId } from "@/lib/db";
@@ -93,19 +94,7 @@ export default async function ParkPage({ params, searchParams }: PageProps) {
alignItems: "center",
gap: 16,
}}>
<Link href="/" style={{
display: "flex",
alignItems: "center",
gap: 6,
fontSize: "0.8rem",
color: "var(--color-text-muted)",
textDecoration: "none",
transition: "color 120ms ease",
}}
className="park-name-link"
>
Calendar
</Link>
<BackToCalendarLink />
<div style={{ width: 1, height: 16, background: "var(--color-border)" }} />
<span style={{ fontSize: "0.9rem", fontWeight: 600, color: "var(--color-text)", letterSpacing: "-0.01em" }}>
{park.name}

View File

@@ -0,0 +1,31 @@
"use client";
import { useState, useEffect } from "react";
import Link from "next/link";
export function BackToCalendarLink() {
const [href, setHref] = useState("/");
useEffect(() => {
const saved = localStorage.getItem("lastWeek");
if (saved) setHref(`/?week=${saved}`);
}, []);
return (
<Link
href={href}
className="park-name-link"
style={{
display: "flex",
alignItems: "center",
gap: 6,
fontSize: "0.8rem",
color: "var(--color-text-muted)",
textDecoration: "none",
transition: "color 120ms ease",
}}
>
Calendar
</Link>
);
}

View File

@@ -41,6 +41,11 @@ export function HomePageClient({
setCoastersOnly(localStorage.getItem(COASTER_MODE_KEY) === "true");
}, []);
// Remember the current week so the park page back button returns here.
useEffect(() => {
localStorage.setItem("lastWeek", weekStart);
}, [weekStart]);
const toggle = () => {
const next = !coastersOnly;
setCoastersOnly(next);