"use client"; import { useEffect, useState } from "react"; import { PixelAvatar } from "@/components/avatar/pixel-avatar"; import { WellnessSlider } from "@/components/daily-quiz/wellness-slider"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Label } from "@/components/ui/label"; import { defaultDailyQuizAnswers, WELLNESS_SCALE_MAX, type DailyQuizAnswers, type DailyQuizSubmission, } from "@/lib/avatar-state"; import { getDailyQuizSubmission, getTodayDateKey, saveDailyQuizSubmission, } from "@/lib/daily-quiz-storage"; export function DailyQuizForm() { const [answers, setAnswers] = useState( defaultDailyQuizAnswers, ); const [submission, setSubmission] = useState( null, ); const [isReady, setIsReady] = useState(false); useEffect(() => { const existingSubmission = getDailyQuizSubmission(); if (existingSubmission?.date === getTodayDateKey()) { setSubmission(existingSubmission); setAnswers(existingSubmission.answers); } setIsReady(true); }, []); const isCompleted = submission !== null; const canSubmit = !isCompleted; const updateAnswer = ( key: K, value: DailyQuizAnswers[K], ) => { setAnswers((current) => ({ ...current, [key]: value, })); }; const handleSubmit = () => { if (!canSubmit) { return; } const savedSubmission = saveDailyQuizSubmission(answers); setSubmission(savedSubmission); }; if (!isReady) { return (

Loading today's quiz...

); } return (
Today's check-in {isCompleted ? "Completed" : "Not completed"}
Wellness Sliders from 1 to 5 for how you're doing today. updateAnswer("feeling", value)} /> updateAnswer("stress", value)} /> updateAnswer("energy", value)} /> updateAnswer("sleepLength", value)} /> updateAnswer("sleepQuality", value)} /> Daily journal Write about your day.