second attempt
unknown
javascript
2 years ago
2.6 kB
11
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