second attempt
unknown
javascript
a year ago
2.6 kB
9
Indexable
import { useMemo } from 'react'; import { MaterialReactTable, useMaterialReactTable, type MRT_ColumnDef, } from 'material-react-table'; import { data, type Person } from './makeData'; import { darken, lighten, useTheme } from '@mui/material'; const Example = () => { const theme = useTheme(); //light or dark green const baseBackgroundColor = theme.palette.mode === 'dark' ? 'rgba(3, 44, 43, 1)' : 'rgba(244, 255, 233, 1)'; const columns = useMemo<MRT_ColumnDef<Person>[]>( //column definitions... () => [ { accessorKey: 'id', header: 'ID', size: 100, enableColumnFilter: false, }, { accessorKey: 'firstName', header: 'First Name', }, { accessorKey: 'middleName', header: 'Middle Name', }, { accessorKey: 'lastName', header: 'Last Name', }, { accessorKey: 'address', header: 'Address', size: 300, }, { accessorKey: 'city', header: 'City', }, { accessorKey: 'state', header: 'State', }, ], [], //end ); const table = useMaterialReactTable({ columns, data, enableColumnResizing: true, enableRowPinning: true, enableRowSelection: true, muiTablePaperProps: { elevation: 0, sx: { borderRadius: '0', }, }, muiTableBodyProps: { sx: (theme) => ({ '& tr:nth-of-type(odd):not([data-selected="true"]):not([data-pinned="true"]) > td': { backgroundColor: darken(baseBackgroundColor, 0.1), }, '& tr:nth-of-type(odd):not([data-selected="true"]):not([data-pinned="true"]):hover > td': { backgroundColor: darken(baseBackgroundColor, 0.2), }, '& tr:nth-of-type(even):not([data-selected="true"]):not([data-pinned="true"]) > td': { backgroundColor: lighten(baseBackgroundColor, 0.1), }, '& tr:nth-of-type(even):not([data-selected="true"]):not([data-pinned="true"]):hover > td': { backgroundColor: darken(baseBackgroundColor, 0.2), }, }), }, mrtTheme: (theme) => ({ baseBackgroundColor: baseBackgroundColor, draggingBorderColor: theme.palette.secondary.main, }), }); return <MaterialReactTable table={table} />; }; export default Example;
Editor is loading...
Leave a Comment