diff --git a/susconecta/app/profissional/page.tsx b/susconecta/app/profissional/page.tsx index ab84d41..431d463 100644 --- a/susconecta/app/profissional/page.tsx +++ b/susconecta/app/profissional/page.tsx @@ -2841,7 +2841,9 @@ const ProfissionalPage = () => { // Filtrar apenas a primeira exceção de cada data const exceptionByDate = new Map(); (exceptions || []).forEach((ex) => { - const date = String(ex.exception_date ?? ex.date ?? ''); + // Alguns backends/versões usam nomes diferentes para a data da exceção. + // Fazemos cast para any ao verificar campos legados para satisfazer o tipo DoctorException. + const date = String(((ex as any).exception_date) ?? ((ex as any).exceptionDate) ?? ex.date ?? ''); if (!exceptionByDate.has(date)) { exceptionByDate.set(date, ex); } @@ -2928,7 +2930,7 @@ const ProfissionalPage = () => { {/* Exceções */}

Exceções (Bloqueios/Liberações)

- {exceptLoading ? ( + {exceptLoading ? (
Carregando exceções…
) : filteredExceptions && filteredExceptions.length > 0 ? (
@@ -2938,15 +2940,26 @@ const ProfissionalPage = () => {
{(() => { try { - const [y, m, d] = String(ex.exception_date ?? ex.date).split('-'); - return `${d}/${m}/${y}`; + // Normaliza possíveis nomes de campo (exception_date, exceptionDate, date) e formata com fallback + const dateRaw = (ex as any).exception_date ?? (ex as any).exceptionDate ?? ex.date ?? ''; + const parts = String(dateRaw).split('-'); + if (parts.length >= 3) { + const [y, m, d] = parts; + return `${d}/${m}/${y}`; + } + // fallback: tentar parse ISO/locale + const dt = new Date(String(dateRaw)); + if (!isNaN(dt.getTime())) { + return `${String(dt.getDate()).padStart(2, '0')}/${String(dt.getMonth() + 1).padStart(2, '0')}/${dt.getFullYear()}`; + } + return String(dateRaw); } catch (e) { - return ex.exception_date ?? ex.date; + return ((ex as any).exception_date ?? (ex as any).exceptionDate ?? ex.date) as any; } })()}
- Tipo: {ex.kind || 'bloqueio'} • Motivo: {ex.reason || '—'} + Tipo: {(ex as any).kind || 'bloqueio'} • Motivo: {(ex as any).reason || '—'}