From 2fb7df8849bc846676937528f4c38475bc5d38ca Mon Sep 17 00:00:00 2001 From: deyvisonwanderley Date: Sun, 30 Nov 2025 16:00:31 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20implement=20reactive=20event=20query=20?= =?UTF-8?q?for=20calendar=20in=20Atestados=20Licen=C3=A7as=20page,=20enhan?= =?UTF-8?q?cing=20filtering=20capabilities=20based=20on=20user=20input=20f?= =?UTF-8?q?or=20improved=20data=20presentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../atestados-licencas/+page.svelte | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte b/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte index d9e4470..8f255b8 100644 --- a/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte +++ b/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte @@ -32,9 +32,6 @@ const graficosQuery = useQuery(api.atestadosLicencas.obterDadosGraficos, { periodo: 30 }); - const eventosQuery = useQuery(api.atestadosLicencas.obterEventosCalendario, { - tipoFiltro: 'todos' - }); // Estados dos formulários // Atestado Médico @@ -82,6 +79,13 @@ let filtroDataInicio = $state(''); let filtroDataFim = $state(''); + // Query reativa para eventos do calendário - deve ser definida após os filtros + const eventosQuery = useQuery(api.atestadosLicencas.obterEventosCalendario, () => ({ + tipoFiltro: filtroTipo === 'todos' ? undefined : filtroTipo, + dataInicio: filtroDataInicio || undefined, + dataFim: filtroDataFim || undefined + })); + // Estados de loading let salvandoAtestado = $state(false); let salvandoDeclaracao = $state(false); @@ -1485,8 +1489,13 @@ {#if eventosQuery?.data} + {@const eventosFiltradosPorFuncionario = filtroFuncionario + ? eventosQuery.data.filter(e => + e.funcionarioNome.toLowerCase().includes(filtroFuncionario.toLowerCase()) + ) + : eventosQuery.data}
- +
{/if}