import React from 'react'; import { useNavigate } from 'react-router-dom'; import { YStack, XStack } from '@tamagui/stacks'; import { SizableText as Text } from '@tamagui/text'; import { Pressable } from '@tamagui/react-native-web-lite'; import { CheckCircle2, Circle, ChevronDown, ChevronUp } from 'lucide-react'; import { useAdminTheme } from '../theme'; import { ReadinessStep } from '../hooks/useEventReadiness'; import { adminPath } from '../../constants'; export function SetupChecklist({ steps, title }: { steps: ReadinessStep[]; title: string }) { const theme = useAdminTheme(); const navigate = useNavigate(); const isAllComplete = steps.every(s => s.isComplete); const [collapsed, setCollapsed] = React.useState(isAllComplete); const completedCount = steps.filter(s => s.isComplete).length; return ( setCollapsed(!collapsed)}> {title} {isAllComplete && ( )} {completedCount}/{steps.length} {collapsed ? : } {!collapsed && ( {steps.map((step, index) => { const isNext = !step.isComplete && steps.slice(0, index).every(s => s.isComplete); return ( navigate(adminPath(step.targetPath))} style={{ backgroundColor: isNext ? theme.surface : 'transparent', }} > {step.isComplete ? ( ) : isNext ? ( ) : ( )} {step.label} {step.description && !step.isComplete && ( {step.description} )} {isNext && ( Start )} ); })} )} ); }