import Card from '@/components/card/Card'; import { Box, Button, Checkbox, Flex, Table, Tbody, Td, Text, Th, Thead, Tr, useColorModeValue, } from '@chakra-ui/react'; import { PaginationState, createColumnHelper, useReactTable, ColumnFiltersState, getCoreRowModel, getFilteredRowModel, getFacetedRowModel, getFacetedUniqueValues, getFacetedMinMaxValues, getPaginationRowModel, getSortedRowModel, flexRender, } from '@tanstack/react-table'; import React from 'react'; import { MdChevronRight, MdChevronLeft } from 'react-icons/md'; type RowObj = { checked?: string; email: string; provider: string; created: string; lastsigned: string; uuid: string; menu?: string; }; function CheckTable(props: { tableData: any }) { const { tableData } = props; const textColor = useColorModeValue('#120F43', 'white'); const textColorSecondary = useColorModeValue('gray.700', 'white'); const borderColor = useColorModeValue('gray.200', 'gray.200'); const grayLight = useColorModeValue('gray.200', 'white'); const [columnFilters, setColumnFilters] = React.useState( [], ); let defaultData = tableData; const [globalFilter, setGlobalFilter] = React.useState(''); // const createPages = (count: number) => { // let arrPageCount = []; // for (let i = 1; i <= count; i++) { // arrPageCount.push(i); // } // return arrPageCount; // }; const columns = [ columnHelper.accessor('checked', { id: 'checked', header: () => ( ), cell: (info: any) => ( ), }), columnHelper.accessor('email', { id: 'email', header: () => ( EMAIL ADDRESS ), cell: (info) => ( {info.getValue()} ), }), columnHelper.accessor('created', { id: 'created', header: () => ( CREATED ), cell: (info: any) => ( {info.getValue()} ), }), columnHelper.accessor('provider', { id: 'provider', header: () => ( PROVIDER ), cell: (info: any) => ( {info.getValue()} ), }), columnHelper.accessor('lastsigned', { id: 'lastsigned', header: () => ( LAST SIGN IN ), cell: (info) => ( {info.getValue()} ), }), columnHelper.accessor('uuid', { id: 'uuid', header: () => ( USER UID ), cell: (info) => ( {info.getValue()} ), }), ]; // eslint-disable-next-line const [data, setData] = React.useState(() => [...defaultData]); const [{ pageIndex, pageSize }, setPagination] = React.useState({ pageIndex: 0, pageSize: 11, }); const pagination = React.useMemo( () => ({ pageIndex, pageSize, }), [pageIndex, pageSize], ); const table = useReactTable({ data, columns, state: { columnFilters, globalFilter, pagination, }, onPaginationChange: setPagination, onColumnFiltersChange: setColumnFilters, onGlobalFilterChange: setGlobalFilter, getCoreRowModel: getCoreRowModel(), getFilteredRowModel: getFilteredRowModel(), getSortedRowModel: getSortedRowModel(), getPaginationRowModel: getPaginationRowModel(), getFacetedRowModel: getFacetedRowModel(), getFacetedUniqueValues: getFacetedUniqueValues(), getFacetedMinMaxValues: getFacetedMinMaxValues(), debugTable: true, debugHeaders: true, debugColumns: false, }); return ( {table.getHeaderGroups().map((headerGroup) => ( {headerGroup.headers.map((header) => { return ( ); })} ))} {table .getRowModel() .rows.slice(0, 7) .map((row) => { return ( {row.getVisibleCells().map((cell) => { return ( ); })} ); })}
{flexRender( header.column.columnDef.header, header.getContext(), )} {{ asc: '', desc: '', }[header.column.getIsSorted() as string] ?? null}
{flexRender( cell.column.columnDef.cell, cell.getContext(), )}
{/* pagination */} {/* left side */} Showing 6 rows per page {/* right side */}
); } export default CheckTable; const columnHelper = createColumnHelper();