fix(filtros): corrigir extração de selos e melhorar UX do filtro

- Corrigir lógica de extração de selos para usar códigos exatos
- Filtro agora exige todos os selos selecionados (AND em vez de OR)
- Botão Aplicar volta: seleção não dispara filtro automaticamente
- Layout dos controles unificado em barra com fundo
This commit is contained in:
Frederico Castro
2025-12-15 13:04:06 -03:00
parent c294d4cc77
commit 3254374486
4 changed files with 89 additions and 49 deletions

View File

@@ -182,16 +182,16 @@ function App() {
<Header total={total} />
<div className="controls">
<label>
Limite de consultores:
<div className="control-group">
<span className="control-group-label">Exibir:</span>
<select value={pageSize} onChange={(e) => { setPageSize(Number(e.target.value)); setPage(1); }}>
<option value={10}>Top 10</option>
<option value={50}>Top 50</option>
<option value={100}>Top 100</option>
<option value={200}>Top 200</option>
<option value={500}>Top 500</option>
<option value={10}>10</option>
<option value={50}>50</option>
<option value={100}>100</option>
<option value={200}>200</option>
<option value={500}>500</option>
</select>
</label>
</div>
<FiltroSelos
selecionados={filtroSelos}
@@ -201,23 +201,21 @@ function App() {
<form className="search-box" onSubmit={handleSubmitBuscar}>
<input
type="text"
placeholder="Digite o nome para localizar"
placeholder="Buscar por nome..."
value={busca}
onChange={(e) => setBusca(e.target.value)}
/>
<button type="submit" disabled={buscando || busca.length < 3}>
{buscando ? 'Buscando...' : 'Buscar'}
{buscando ? '...' : 'Buscar'}
</button>
</form>
<div className="pagination">
<button onClick={() => setPage(1)} disabled={page <= 1}>« Primeira</button>
<button onClick={() => setPage((p) => Math.max(1, p - 1))} disabled={page <= 1}> Anterior</button>
<span className="page-info">
Página {page} de {totalPages || '?'}
</span>
<button onClick={() => setPage((p) => (totalPages ? Math.min(totalPages, p + 1) : p + 1))} disabled={totalPages && page >= totalPages}>Próxima </button>
<button onClick={() => totalPages && setPage(totalPages)} disabled={totalPages && page >= totalPages}>Última »</button>
<button onClick={() => setPage(1)} disabled={page <= 1}>«</button>
<button onClick={() => setPage((p) => Math.max(1, p - 1))} disabled={page <= 1}></button>
<span className="page-info">{page} / {totalPages || '?'}</span>
<button onClick={() => setPage((p) => (totalPages ? Math.min(totalPages, p + 1) : p + 1))} disabled={totalPages && page >= totalPages}></button>
<button onClick={() => totalPages && setPage(totalPages)} disabled={totalPages && page >= totalPages}>»</button>
</div>
</div>