'use client'; import { useState, useEffect } from 'react'; import Link from 'next/link'; import { useRoutineStore } from '@/lib/routine-store'; import { RoutineEditor } from '@/components/RoutineEditor'; import { RoutineRunner } from '@/components/RoutineRunner'; import type { TransitionType } from '@/lib/routines'; import { ArrowLeft, Plus, Play, Trash2, ListChecks, Clock, Copy } from 'lucide-react'; export default function RoutinesPage() { const { routines, templates, addRoutine, addTemplate, removeRoutine, removeTemplate, start, startFromTemplate } = useRoutineStore(); const [mounted, setMounted] = useState(false); const [showEditor, setShowEditor] = useState(false); useEffect(() => { setMounted(true); }, []); if (!mounted) return null; const activeRoutine = routines.find((r) => r.status === 'active' || r.status === 'paused'); const readyRoutines = routines.filter((r) => r.status === 'ready'); const pastRoutines = routines.filter((r) => r.status === 'completed' || r.status === 'cancelled').slice(-10).reverse(); const handleSave = (name: string, description: string, steps: { label: string; durationMinutes: number; transition: TransitionType; customTransitionMinutes: number; notes: string }[], asTemplate: boolean) => { const params = { name, description: description || undefined, steps: steps.map((s) => ({ label: s.label, durationMinutes: s.durationMinutes, transition: s.transition as TransitionType, customTransitionMinutes: s.transition === 'custom' ? s.customTransitionMinutes : undefined, notes: s.notes || undefined, })), isTemplate: asTemplate, }; if (asTemplate) { addTemplate(params); } else { addRoutine(params); } }; return (
No templates yet. Create one above.
)}