'use client' import Link from 'next/link' import { trpc } from '@/lib/trpc/client' import { Card, CardContent } from '@/components/ui/card' import { Button } from '@/components/ui/button' import { FileText, Video, CheckCircle2, Circle, Clock, Upload } from 'lucide-react' export function FinalDocumentsBanner() { const { data: status } = trpc.applicant.getFinalDocumentStatus.useQuery() if (!status) return null const fmt = new Intl.DateTimeFormat(undefined, { dateStyle: 'long', timeStyle: 'short' }) const zone = new Intl.DateTimeFormat(undefined, { timeZoneName: 'short' }) .formatToParts(new Date()).find((p) => p.type === 'timeZoneName')?.value const uploadedCount = status.requirements.filter((r) => r.uploaded).length const total = status.requirements.length const done = status.allRequiredUploaded return (
{done ? : } {done ? 'Grand Final documents submitted' : 'Upload your Grand Final documents'} ({uploadedCount} of {total})
{status.deadline && ( {status.deadlinePassed ? 'Deadline passed' : 'Due'}: {fmt.format(new Date(status.deadline))} {zone ? ` (${zone})` : ''} )}
{status.requirements.map((r) => { const Icon = r.acceptedMimeTypes.some((m) => m.startsWith('video/')) ? Video : FileText return ( {r.uploaded ? : } {r.name} ) })}
{!done && ( )}
) }