import React from 'react'; import SearchBar from './SearchBar'; import RefreshButton from './RefreshButton'; import ListHeader from './ListHeader'; import DataTable, { Column } from './DataTable'; import Pagination from './Pagination'; import TableActions from './TableActions'; import { EnderecoDocument } from '@/types/legacyEntities'; interface EnderecoListProps { enderecos: EnderecoDocument[]; loading: boolean; isChangingPage?: boolean; error: string | null; totalEnderecos: number; currentPage: number; pageSize: number; onEdit: (endereco: EnderecoDocument) => void; onDelete: (id: string) => Promise; onRefresh: () => void; onPrevPage: () => void; onNextPage: () => void; onSearch: (termo: string) => void; } const columns: Column[] = [ { key: 'titulo', header: 'Titulo' }, { key: 'cep', header: 'CEP' }, { key: 'cidade', header: 'Cidade' }, { key: 'estado', header: 'Estado' }, { key: 'pais', header: 'Pais' }, ]; const EnderecoList: React.FC = ({ enderecos, loading, isChangingPage = false, error, totalEnderecos, currentPage, pageSize, onEdit, onDelete, onRefresh, onPrevPage, onNextPage, onSearch, }) => { const totalPages = Math.ceil(totalEnderecos / pageSize); const startItem = (currentPage - 1) * pageSize + 1; const endItem = Math.min(currentPage * pageSize, totalEnderecos); const [search, setSearch] = React.useState(''); const handleSearch = () => { onSearch(search); }; const handleDelete = async (id: string) => { if (confirm('Tem certeza que deseja deletar este endereco?')) { await onDelete(id); } }; return (
{error && (
{error}
)} {isChangingPage && (
Carregando pagina...
)} {loading ? (
Carregando enderecos...
) : ( <> ( onEdit(endereco)} onDelete={() => handleDelete(endereco.$id)} /> )} />
{totalEnderecos > 0 ? ( <>Mostrando {startItem} - {endItem} de {totalEnderecos} enderecos ) : ( 'Total de enderecos: 0' )}
)}
); }; export default EnderecoList;