diff --git a/apps/web/src/lib/components/FuncionarioMatriculaAutocomplete.svelte b/apps/web/src/lib/components/FuncionarioMatriculaAutocomplete.svelte index 90b97e3..41c2a12 100644 --- a/apps/web/src/lib/components/FuncionarioMatriculaAutocomplete.svelte +++ b/apps/web/src/lib/components/FuncionarioMatriculaAutocomplete.svelte @@ -14,7 +14,7 @@ disabled = false }: Props = $props(); - let busca = $state(''); + // Usar value diretamente como busca para evitar conflitos de sincronização let mostrarDropdown = $state(false); // Buscar funcionários @@ -24,9 +24,9 @@ // Filtrar funcionários baseado na busca (por matrícula ou nome) const funcionariosFiltrados = $derived.by(() => { - if (!busca.trim()) return funcionarios.slice(0, 10); // Limitar a 10 quando vazio + if (!value || !value.trim()) return funcionarios.slice(0, 10); // Limitar a 10 quando vazio - const termo = busca.toLowerCase().trim(); + const termo = value.toLowerCase().trim(); return funcionarios.filter((f) => { const matriculaMatch = f.matricula?.toLowerCase().includes(termo); const nomeMatch = f.nome?.toLowerCase().includes(termo); @@ -34,15 +34,7 @@ }).slice(0, 20); // Limitar resultados }); - // Sincronizar busca com value externo - $effect(() => { - if (value !== undefined && value !== busca) { - busca = value; - } - }); - function selecionarFuncionario(matricula: string) { - busca = matricula; value = matricula; mostrarDropdown = false; } @@ -62,16 +54,13 @@ function handleInput() { mostrarDropdown = true; - if (busca !== value) { - value = busca; - } }