fix: inclusão do input de busca do filtro

This commit is contained in:
Alessandro Gonçaalves 2025-10-31 09:56:24 -03:00
parent 61ebdb4411
commit 2e2cfa9ab0
1 changed files with 34 additions and 2 deletions

View File

@ -209,6 +209,10 @@ export default function Teste() {
const [opcoesSubgrupos, setOpcoesSubgrupos] = useState<string[]>([]); const [opcoesSubgrupos, setOpcoesSubgrupos] = useState<string[]>([]);
const [opcoesCentrosCusto, setOpcoesCentrosCusto] = useState<string[]>([]); const [opcoesCentrosCusto, setOpcoesCentrosCusto] = useState<string[]>([]);
const [opcoesContas, setOpcoesContas] = useState<string[]>([]); const [opcoesContas, setOpcoesContas] = useState<string[]>([]);
// Estados para filtros de busca nos campos de seleção
const [filtroCentroCusto, setFiltroCentroCusto] = useState<string>("");
const [filtroConta, setFiltroConta] = useState<string>("");
// Estados para analítico // Estados para analítico
const [analiticoFiltros, setAnaliticoFiltros] = useState({ const [analiticoFiltros, setAnaliticoFiltros] = useState({
@ -1968,8 +1972,22 @@ export default function Teste() {
</Button> </Button>
</div> </div>
</div> </div>
{/* Input de filtro para Centro de Custo */}
<Input
placeholder="Filtrar centros de custo..."
value={filtroCentroCusto}
onChange={(e) => setFiltroCentroCusto(e.target.value)}
className="h-8 text-sm"
/>
<div className="max-h-32 overflow-y-auto border rounded-md p-1 space-y-1"> <div className="max-h-32 overflow-y-auto border rounded-md p-1 space-y-1">
{opcoesCentrosCusto.map(centro => ( {opcoesCentrosCusto
.filter(centro => {
if (!filtroCentroCusto) return true;
const termo = filtroCentroCusto.toLowerCase();
const nomeCompleto = `${centro}${codigosCentrosCusto[centro] ? ` - ${codigosCentrosCusto[centro]}` : ''}`;
return nomeCompleto.toLowerCase().includes(termo);
})
.map(centro => (
<div key={centro} className="flex items-center space-x-1"> <div key={centro} className="flex items-center space-x-1">
<Checkbox <Checkbox
id={`centro-${centro}`} id={`centro-${centro}`}
@ -2017,8 +2035,22 @@ export default function Teste() {
</Button> </Button>
</div> </div>
</div> </div>
{/* Input de filtro para Conta */}
<Input
placeholder="Filtrar contas..."
value={filtroConta}
onChange={(e) => setFiltroConta(e.target.value)}
className="h-8 text-sm"
/>
<div className="max-h-32 overflow-y-auto border rounded-md p-1 space-y-1"> <div className="max-h-32 overflow-y-auto border rounded-md p-1 space-y-1">
{opcoesContas.map(conta => ( {opcoesContas
.filter(conta => {
if (!filtroConta) return true;
const termo = filtroConta.toLowerCase();
const nomeCompleto = `${conta}${codigosContas[conta] ? ` - ${codigosContas[conta]}` : ''}`;
return nomeCompleto.toLowerCase().includes(termo);
})
.map(conta => (
<div key={conta} className="flex items-center space-x-1"> <div key={conta} className="flex items-center space-x-1">
<Checkbox <Checkbox
id={`conta-${conta}`} id={`conta-${conta}`}