import { Row, TablePropGetter, TableProps, TableBodyPropGetter, TableBodyProps, HeaderGroup, } from 'react-table'; import { SortableTableHeader, TableCell, TablePlaceholder, } from 'component/common/Table'; import { Box, Table, TableBody, TableRow, useMediaQuery } from '@mui/material'; import { SearchHighlightProvider } from 'component/common/Table/SearchHighlightContext/SearchHighlightContext'; import { ApiTokenDocs } from 'component/admin/apiToken/ApiTokenDocs/ApiTokenDocs'; import theme from 'themes/theme'; import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; import { useConditionallyHiddenColumns } from 'hooks/useConditionallyHiddenColumns'; const hiddenColumnsSmall = ['Icon', 'createdAt']; const hiddenColumnsCompact = ['Icon', 'project', 'seenAt']; interface IApiTokenTableProps { compact?: boolean; loading: boolean; setHiddenColumns: (param: any) => void; columns: any[]; rows: Row[]; prepareRow: (row: Row) => void; getTableProps: ( propGetter?: TablePropGetter | undefined ) => TableProps; getTableBodyProps: ( propGetter?: TableBodyPropGetter | undefined ) => TableBodyProps; headerGroups: HeaderGroup[]; globalFilter: any; } export const ApiTokenTable = ({ compact = false, setHiddenColumns, columns, loading, rows, getTableProps, getTableBodyProps, headerGroups, globalFilter, prepareRow, }: IApiTokenTableProps) => { const isSmallScreen = useMediaQuery(theme.breakpoints.down('md')); useConditionallyHiddenColumns( [ { condition: isSmallScreen, columns: hiddenColumnsSmall, }, { condition: compact, columns: hiddenColumnsCompact, }, ], setHiddenColumns, columns ); return ( <> 0} show={ } /> {rows.map(row => { prepareRow(row); return ( {row.cells.map(cell => ( {cell.render('Cell')} ))} ); })}
0} show={ No tokens found matching “ {globalFilter} ” } elseShow={ {'No tokens available. Read '} API How-to guides {' '} {' to learn more.'} } /> } /> ); };