From 0a67f95eafddb1f241803a026641ff17325fbf8d Mon Sep 17 00:00:00 2001 From: "Rodrigo B. de Sousa Martins" Date: Tue, 15 Jul 2025 21:38:51 -0300 Subject: [PATCH] dashboard: reimaginacao Signed-off-by: Rodrigo B. de Sousa Martins --- .../dashboard/CalendarioAtendimentos.tsx | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/components/dashboard/CalendarioAtendimentos.tsx b/src/components/dashboard/CalendarioAtendimentos.tsx index f1a6ea3..7abf9e4 100644 --- a/src/components/dashboard/CalendarioAtendimentos.tsx +++ b/src/components/dashboard/CalendarioAtendimentos.tsx @@ -5,15 +5,22 @@ import { CalendarIcon, UserIcon, PresentationChartBarIcon } from '@heroicons/rea export const CalendarioAtendimentos: React.FC = () => { const { data: eventos = [], isLoading, error } = useCalendarioAtendimentos(); - // Simulação de calendário mensal - const diasMes = Array.from({ length: 30 }, (_, i) => i + 1); - const mes = '06'; - const ano = '2024'; - + // Estado para mês e ano selecionados const hoje = new Date(); - const hojeStr = `${ano}-${mes}-${hoje.getDate().toString().padStart(2, '0')}`; + const [mesSelecionado, setMesSelecionado] = React.useState(hoje.getMonth() + 1); + const [anoSelecionado, setAnoSelecionado] = React.useState(hoje.getFullYear()); + const diasMes = Array.from({ length: new Date(anoSelecionado, mesSelecionado, 0).getDate() }, (_, i) => i + 1); + const mesStr = mesSelecionado.toString().padStart(2, '0'); + const anoStr = anoSelecionado.toString(); - // Separar eventos futuros/próximos e passados + // Atualiza data selecionada ao trocar mês/ano + const [dataSelecionada, setDataSelecionada] = React.useState(`${anoStr}-${mesStr}-${hoje.getDate().toString().padStart(2, '0')}`); + React.useEffect(() => { + setDataSelecionada(`${anoStr}-${mesStr}-${hoje.getDate().toString().padStart(2, '0')}`); + }, [mesSelecionado, anoSelecionado]); + + // Separar eventos futuros/próximos e passados considerando ano/mês + const hojeStr = `${anoStr}-${mesStr}-${hoje.getDate().toString().padStart(2, '0')}`; const eventosProximos = eventos .filter(ev => ev.data >= hojeStr) .sort((a, b) => a.data.localeCompare(b.data)) @@ -23,7 +30,6 @@ export const CalendarioAtendimentos: React.FC = () => { .sort((a, b) => b.data.localeCompare(a.data)) .slice(0, 10); - const [dataSelecionada, setDataSelecionada] = React.useState(hojeStr); const eventosDoDia = eventos.filter(e => e.data === dataSelecionada); if (isLoading) return
Carregando calendário...
; @@ -34,9 +40,16 @@ export const CalendarioAtendimentos: React.FC = () => {

Calendário de Atendimentos e Audiências

+
+ + {mesStr}/{anoStr} + + + +
{diasMes.map((dia) => { - const dataStr = `${ano}-${mes}-${dia.toString().padStart(2, '0')}`; + const dataStr = `${anoStr}-${mesStr}-${dia.toString().padStart(2, '0')}`; const eventosDia = eventos.filter(e => e.data === dataStr); const selecionado = dataStr === dataSelecionada; return (