"use client"; import Link from "next/link"; import { useEffect, useState } from "react"; import { CharacterLayerPreview } from "@/components/character/character-layer-preview"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; import type { AvatarCustomization } from "@/lib/avatar-customization-storage"; import { defaultAvatarCondition, WELLNESS_SCALE_MAX, type AvatarCondition, } from "@/lib/avatar-state"; import { getAvatarConditionForToday, hasCompletedDailyQuizToday, } from "@/lib/daily-quiz-storage"; import { routes } from "@/lib/routes"; type AvatarStatusCardProps = { customization: AvatarCustomization; }; export function AvatarStatusCard({ customization }: AvatarStatusCardProps) { const [condition, setCondition] = useState( defaultAvatarCondition, ); const [hasCheckedInToday, setHasCheckedInToday] = useState(false); const [isReady, setIsReady] = useState(false); useEffect(() => { async function loadStatus() { const checkedIn = await hasCompletedDailyQuizToday(); setHasCheckedInToday(checkedIn); setCondition((await getAvatarConditionForToday()) ?? defaultAvatarCondition); setIsReady(true); } void loadStatus(); }, []); if (!isReady) { return (

Loading your pet...

); } return (

{customization.name}

{condition.mood}

Energy {condition.energy}/{WELLNESS_SCALE_MAX} Health {condition.health}/{WELLNESS_SCALE_MAX} {hasCheckedInToday ? "Checked in today" : "Quiz pending"}

{hasCheckedInToday ? "Your pet is reacting to today's wellness check-in and journal." : "Complete today's quiz to update your pet's mood, energy, and health."}

{!hasCheckedInToday ? ( ) : null}
); }