feat: implement reactive event query for calendar in Atestados Licenças page, enhancing filtering capabilities based on user input for improved data presentation

This commit is contained in:
2025-11-30 16:00:31 -03:00
parent 268510bbf2
commit 2fb7df8849

View File

@@ -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<string>('');
let filtroDataFim = $state<string>('');
// 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 @@
<!-- Calendário Interativo -->
{#if eventosQuery?.data}
{@const eventosFiltradosPorFuncionario = filtroFuncionario
? eventosQuery.data.filter(e =>
e.funcionarioNome.toLowerCase().includes(filtroFuncionario.toLowerCase())
)
: eventosQuery.data}
<div class="mb-6">
<CalendarioAfastamentos eventos={eventosQuery.data} tipoFiltro={filtroTipo} />
<CalendarioAfastamentos eventos={eventosFiltradosPorFuncionario} tipoFiltro={filtroTipo} />
</div>
{/if}