diff --git a/implementacao-front/src/components/Tabela.module.css b/implementacao-front/src/components/Tabela.module.css index e69de29b..e51ee194 100644 --- a/implementacao-front/src/components/Tabela.module.css +++ b/implementacao-front/src/components/Tabela.module.css @@ -0,0 +1,22 @@ +* { + margin: 0; + padding: 0; +} + +.container { + width: 100%; + display: flex; + flex-direction: column; + gap: 35px; +} + +.inputs { + display: flex; + gap: 15px; +} + +.tabela { + display: flex; + flex-direction: column; + gap: 20px; +} \ No newline at end of file diff --git a/implementacao-front/src/components/Tabela.tsx b/implementacao-front/src/components/Tabela.tsx index 437660e9..85c1e7b4 100644 --- a/implementacao-front/src/components/Tabela.tsx +++ b/implementacao-front/src/components/Tabela.tsx @@ -5,55 +5,107 @@ import { MDBTable, MDBTableBody, MDBTableHead, + MDBBtn, } from "mdb-react-ui-kit"; -import { useState } from "react"; -import { Pessoas } from "../data/db"; +import { useState, useEffect } from "react"; +import { data2 } from "../data/nomesLimpos2"; + +// Interface para a estrutura dos dados a serem exibidos na tabela +interface TabelaData { + data: string; + nome: string; + cargo: string; + acao: string; +} function Tabela() { - const [data] = useState(Pessoas); + const [data, setData] = useState([]); + const [searchTerm, setSearchTerm] = useState(""); + + useEffect(() => { + // A tabela deve estar vazia inicialmente + setData([]); + }, []); + + const handleSearch = () => { + const formattedData: TabelaData[] = []; + + for (const [dia, valores] of Object.entries(data2)) { + const nomeados = valores.nomes_nomeados + .filter((nome) => nome.toLowerCase().includes(searchTerm.toLowerCase())) + .map((nome) => ({ + data: dia, + nome: nome.split(" - ")[0], + cargo: nome.includes("-") ? nome.split(" - ")[1] : "não especificado", + acao: "nomeação", + })); + + const exonerados = valores.nomes_exonerados + .filter((nome) => nome.toLowerCase().includes(searchTerm.toLowerCase())) + .map((nome) => ({ + data: dia, + nome: nome.split(" - ")[0], + cargo: nome.includes("-") ? nome.split(" - ")[1] : "não especificado", + acao: "exoneração", + })); + + formattedData.push(...nomeados, ...exonerados); + } + + setData(formattedData); + }; return ( - -
- - - - + + + + setSearchTerm(e.target.value)} + /> + + + + Pesquisar + + + + + + + + + Nome + Cargo + Ação + Data + + + + {data.length === 0 ? ( - nome - cpf - cargo - acao - dia + + Nenhum dado encontrado + - - {data.length === 0 ? ( - - - - No Data Found - - - ) : ( - data.map((item) => ( - - - {item.nome} - {item.cpf} - {item.cargo} - {item.acao} - {item.dia} - - + data.map((item, index) => ( + + {item.nome} + {item.cargo} + {item.acao} + {item.data} + )) )} - - - -
+ + + +
); } -export default Tabela; +export default Tabela; \ No newline at end of file