import { flexRender, getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table'; import { Fragment, useState } from 'react'; import { Table, Button, Form, InputGroup } from 'react-bootstrap'; import { useTranslation } from 'react-i18next'; import Filter from './Filter'; const GroupTable = ({ data, columns}) => { const { t } = useTranslation(); const [sorting, setSorting] = useState([]); const [filtering, setFiltering] = useState(''); const [columnFilters, setColumnFilters] = useState([]); const table = useReactTable({ data: data || [], columns: columns, getCoreRowModel: getCoreRowModel(), getPaginationRowModel: getPaginationRowModel(), getSortedRowModel: getSortedRowModel(), getFilteredRowModel: getFilteredRowModel(), state: { sorting: sorting, globalFilter: filtering, columnFilters: columnFilters, }, onSortingChange: setSorting, onGlobalFilterChange: setFiltering, onColumnFiltersChange: setColumnFilters, columnResizeMode: 'onChange', autoResetPageIndex: false, }); return ( <>
{t('Search')}  setFiltering(e.target.value)} />
{t('RowsPerPage')}  { table.setPageSize(Number(e.target.value)) }}> {[10, 30, 40, 50, 100].map(pageSize => ( ))}
{table.getHeaderGroups().map(headerGroup => ( {headerGroup.headers.map(header => ( ))} ))} {table.getRowModel().rows.map(row => ( {row.original.station.map((station, stationIndex) => ( {station.step.map((step, stepIndex) => ( {stationIndex === 0 && stepIndex === 0 && ( {flexRender(columns.find(column => column.accessorKey === 'action')?.cell, { row })} {flexRender(columns.find(column => column.accessorKey === 'wi_number')?.cell, { row })} {flexRender(columns.find(column => column.accessorKey === 'status')?.cell, { row })} {flexRender(columns.find(column => column.accessorKey === 'version')?.cell, { row })} )} {stepIndex === 0 && ( {flexRender(columns.find(column => column.accessorKey === 'station_number')?.cell, { row: { original: station } })} )} {flexRender(columns.find(column => column.accessorKey === 'step_id')?.cell, { row: { original: step } })} {flexRender(columns.find(column => column.accessorKey === 'description')?.cell, { row: { original: step } })} {flexRender(columns.find(column => column.accessorKey === 'before_image')?.cell, { row: { original: step } })} ))} ))} ))} {/* {table.getFooterGroups().map(footerGroup => ( {footerGroup.headers.map(header => ( ))} ))} */}
{header.isPlaceholder ? null : ( <>
{flexRender( header.column.columnDef.header, header.getContext() )} { { asc: , desc: } [header.column.getIsSorted() ?? null] }
{header.column.getCanFilter() ? (
) : null} )}
{header.isPlaceholder ? null : flexRender( header.column.columnDef.header, header.getContext() )}
{t('Page')}:  {table.getState().pagination.pageIndex + 1} of{' '} {table.getPageCount()}
 | {t('GoToPage')} 
{ const page = e.target.value ? Number(e.target.value) - 1 : 0 table.setPageIndex(page) }} />
) }; export default GroupTable;