"use server"; import { cookies } from "next/headers"; import { revalidatePath } from "next/cache"; const WEEK_COOKIE = "tcWeek"; const MAX_AGE = 60 * 60 * 24 * 30; // 30 days /** * Persist the selected week start (YYYY-MM-DD) in a server-readable cookie * and revalidate the home page so the new week renders. */ export async function setWeek(weekStart: string): Promise { if (!/^\d{4}-\d{2}-\d{2}$/.test(weekStart)) return; const cookieStore = await cookies(); cookieStore.set(WEEK_COOKIE, weekStart, { path: "/", maxAge: MAX_AGE, sameSite: "lax", }); revalidatePath("/"); } /** Clear the saved week — used by the "Today" button to jump back to current. */ export async function clearWeek(): Promise { const cookieStore = await cookies(); cookieStore.delete(WEEK_COOKIE); revalidatePath("/"); }