Busca (SearchInput)

· Padrão Frontend
Juan Kalleo
Juan Kalleo
Senior Fullstack
This page hasn't been translated to English yet — showing the original Portuguese content.

Campo de busca padrão das listas admin, em shared/ui/filtros/search-input.tsx. Cliente ("use client"), com debounce de 350ms embutido para não disparar uma request por tecla.

import { SearchInput } from "@/shared/ui/filtros/search-input";

const [termo, setTermo] = useState("");

<SearchInput valor={termo} onChange={setTermo} placeholder="Buscar usuários..." />

Props

PropTipoPadrãoDescrição
valorstringTermo "assentado" (pós-debounce), vindo do estado pai.
onChange(valor: string) => voidChamado após 350ms de inatividade.
placeholderstring"Buscar..."Texto do placeholder.

Como funciona

  • O componente guarda o rascunho localmente (rascunho) enquanto o usuário digita, e só chama onChange após 350ms sem digitar. Assim a listagem (filtrada via React Query) não refaz fetch a cada tecla.
  • valor é a fonte da verdade externa: ao mudar de fora (ex.: limpar o filtro), o rascunho é sincronizado de volta.
  • Visual: input input-sm w-full max-w-xs, com ícone Search de @/theme/icons.

Uso típico

Combine com a listagem paginada (useAdminList) passando o termo como parâmetro de busca no params — ver Filtros e Tabelas.

Leitura de apoio