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:
@@ -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}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user