feat: enhance RegistroPonto and WebcamCapture components for improved data handling and user experience

- Added a refresh mechanism in the RegistroPonto component to ensure queries are updated after point registration, improving data accuracy.
- Expanded the WebcamCapture component to prevent multiple simultaneous play calls, enhancing video playback reliability.
- Updated the registro-pontos page to default the date range to the last 30 days for better visibility and user convenience.
- Introduced debug logging for queries and data handling to assist in development and troubleshooting.
This commit is contained in:
2025-11-22 23:57:05 -03:00
parent 90e81e4667
commit 467e04b605
5 changed files with 269 additions and 58 deletions

View File

@@ -20,8 +20,13 @@
const client = useConvexClient();
// Estados
let dataInicio = $state(new Date().toISOString().split('T')[0]!);
let dataFim = $state(new Date().toISOString().split('T')[0]!);
// Expandir período padrão para últimos 30 dias para facilitar visualização
const hoje = new Date();
const trintaDiasAtras = new Date(hoje);
trintaDiasAtras.setDate(hoje.getDate() - 30);
let dataInicio = $state(trintaDiasAtras.toISOString().split('T')[0]!);
let dataFim = $state(hoje.toISOString().split('T')[0]!);
let funcionarioIdFiltro = $state<Id<'funcionarios'> | ''>('');
let statusFiltro = $state<'todos' | 'dentro' | 'fora'>('todos');
let localizacaoFiltro = $state<'todos' | 'dentro' | 'fora'>('todos');
@@ -56,6 +61,21 @@
const estatisticas = $derived(estatisticasQuery?.data);
const config = $derived(configQuery?.data);
// Debug: Log dos dados recebidos
$effect(() => {
if (registrosQuery !== undefined) {
console.log('[Frontend] registrosQuery:', {
isLoading: registrosQuery?.isLoading,
error: registrosQuery?.error,
dataLength: registrosQuery?.data?.length ?? 0,
params: registrosParams
});
}
if (registros && registros.length > 0) {
console.log('[Frontend] Primeiros registros:', registros.slice(0, 3));
}
});
// Dados do gráfico baseados nas estatísticas
const chartData = $derived.by(() => {
@@ -514,8 +534,12 @@
// Função para limpar todos os filtros
function limparFiltros() {
dataInicio = new Date().toISOString().split('T')[0]!;
dataFim = new Date().toISOString().split('T')[0]!;
const hoje = new Date();
const trintaDiasAtras = new Date(hoje);
trintaDiasAtras.setDate(hoje.getDate() - 30);
dataInicio = trintaDiasAtras.toISOString().split('T')[0]!;
dataFim = hoje.toISOString().split('T')[0]!;
funcionarioIdFiltro = '';
statusFiltro = 'todos';
localizacaoFiltro = 'todos';