"use client"; import type { DailyAdventureItemData, DailyTodoData, DayMode } from "@adventureos/shared"; import { DAY_MODES } from "@adventureos/shared"; import { useState } from "react"; import Link from "next/link"; import { useAdventureMutations } from "@/hooks/useAdventureMutations"; import { AdventureItemRow } from "@/components/features/adventure-item-row"; import { ChecklistItem } from "@/components/features/checklist-item"; interface TodaysAdventureProps { date: string; chapter: string; journeyDay: number; isRestDay: boolean; isCustomized: boolean; workHoursTarget: number | null; dayMode: DayMode; isBackfilled: boolean; items: DailyAdventureItemData[]; todos: DailyTodoData[]; } export function TodaysAdventure({ date, chapter, journeyDay, isRestDay, isCustomized, workHoursTarget, dayMode, isBackfilled, items, todos, }: TodaysAdventureProps) { const [customize, setCustomize] = useState(false); const [newTodo, setNewTodo] = useState(""); const [newItemLabel, setNewItemLabel] = useState(""); const [workTarget, setWorkTarget] = useState( workHoursTarget ?? items.find((i) => i.type === "duration")?.config?.targetHours ?? 7.5 ); const { updateItem, addItem, removeItem, todoMut, restDay, updateWorkHours, updateDayMode } = useAdventureMutations(date, items); const checklists = items.filter((i) => i.type === "checklist"); const main = items.filter((i) => i.type !== "checklist"); return (
Editing today only — templates unchanged {isCustomized && " · This day has custom overrides"}
)} {isRestDay && (Rest day — your adventure pauses gently today.
)}Checklists
Today's Todos