import Link from "next/link"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Progress } from "@/components/ui/progress"; import { getAberturaBriefing } from "@/lib/briefing-service"; import { CabecalhoBriefingForm } from "./cabecalho-briefing-form"; function asStringArray(value: unknown) { return Array.isArray(value) ? value.filter((item) => typeof item === "string") : []; } export default async function AberturaBriefingPage({ params }: { params: { id: string } }) { const { briefing, progresso, comoPreencher, avisoSenhas } = await getAberturaBriefing(params.id); const totalPerguntas = progresso.reduce((sum, secao) => sum + secao.total, 0); const totalRespondidas = progresso.reduce((sum, secao) => sum + secao.respondidas, 0); const percentual = totalPerguntas > 0 ? Math.round((totalRespondidas / totalPerguntas) * 100) : 0; const primeiraPendente = progresso.find((secao) => secao.respondidas < secao.total) ?? progresso[0]; return (
{briefing.status.replace("_", " ")}

{briefing.titulo}

Revise as orientacoes e continue pela secao indicada.

{primeiraPendente ? ( ) : null}
Progresso geral {totalRespondidas}/{totalPerguntas}
Cabecalho do briefing {avisoSenhas ? ( Aviso importante {String(avisoSenhas)} ) : null}
Como preencher
    {asStringArray(comoPreencher).map((item) => (
  • {item}
  • ))}
{progresso.map((secao) => { const secaoPercentual = secao.total > 0 ? Math.round((secao.respondidas / secao.total) * 100) : 0; return (

{secao.ordem}. {secao.titulo}

{secao.descricao ?

{secao.descricao}

: null}
{secao.respondidas}/{secao.total}
); })}
); }