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, {
|
const graficosQuery = useQuery(api.atestadosLicencas.obterDadosGraficos, {
|
||||||
periodo: 30
|
periodo: 30
|
||||||
});
|
});
|
||||||
const eventosQuery = useQuery(api.atestadosLicencas.obterEventosCalendario, {
|
|
||||||
tipoFiltro: 'todos'
|
|
||||||
});
|
|
||||||
|
|
||||||
// Estados dos formulários
|
// Estados dos formulários
|
||||||
// Atestado Médico
|
// Atestado Médico
|
||||||
@@ -82,6 +79,13 @@
|
|||||||
let filtroDataInicio = $state<string>('');
|
let filtroDataInicio = $state<string>('');
|
||||||
let filtroDataFim = $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
|
// Estados de loading
|
||||||
let salvandoAtestado = $state(false);
|
let salvandoAtestado = $state(false);
|
||||||
let salvandoDeclaracao = $state(false);
|
let salvandoDeclaracao = $state(false);
|
||||||
@@ -1485,8 +1489,13 @@
|
|||||||
|
|
||||||
<!-- Calendário Interativo -->
|
<!-- Calendário Interativo -->
|
||||||
{#if eventosQuery?.data}
|
{#if eventosQuery?.data}
|
||||||
|
{@const eventosFiltradosPorFuncionario = filtroFuncionario
|
||||||
|
? eventosQuery.data.filter(e =>
|
||||||
|
e.funcionarioNome.toLowerCase().includes(filtroFuncionario.toLowerCase())
|
||||||
|
)
|
||||||
|
: eventosQuery.data}
|
||||||
<div class="mb-6">
|
<div class="mb-6">
|
||||||
<CalendarioAfastamentos eventos={eventosQuery.data} tipoFiltro={filtroTipo} />
|
<CalendarioAfastamentos eventos={eventosFiltradosPorFuncionario} tipoFiltro={filtroTipo} />
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user