diff --git a/src/components/ItemTable/ItemTable.js b/src/components/ItemTable/ItemTable.js index 98fc7c8..5e53c90 100644 --- a/src/components/ItemTable/ItemTable.js +++ b/src/components/ItemTable/ItemTable.js @@ -1,9 +1,10 @@ import React from "react"; import PropTypes from "prop-types"; -import { useTable, useFilters, useFlexLayout, useSortBy } from "react-table"; -import {makeStyles, Table, TableBody, TableCell, TableHead, TableRow, TableContainer, TableSortLabel , Paper, Grid, useTheme, ButtonGroup} from "@material-ui/core"; +import { useTable, useFilters, useFlexLayout, useSortBy, useRowSelect } from "react-table"; +import { makeStyles, Table, TableBody, TableCell, TableHead, TableRow, TableContainer, Paper, Grid, useTheme, ButtonGroup, IconButton } from "@material-ui/core"; import { useHistory } from "react-router-dom"; import ItemTableFilter from "../ItemTableFilter/" +import { ArrowDownward, ArrowUpward } from "@material-ui/icons"; export default function ItemTable({ data }) { @@ -17,6 +18,11 @@ export default function ItemTable({ data }) { inactiveSortIcon: { opacity: 0.2, }, + selectedItem: { + '.Mui-selected': { + backgroundColor: theme.palette.type === 'light' ? theme.palette.primary[50] : theme.palette.primary[700], + } + }, bandedRows: { '&:nth-of-type(even)': { backgroundColor: theme.palette.type === 'light' ? theme.palette.grey[50] : theme.palette.grey[700], @@ -35,7 +41,7 @@ export default function ItemTable({ data }) { { Header: 'Subject', accessor: 'subject' }, { Header: 'Status', accessor: 'status', }, { Header: 'Priority', accessor: 'priority' }, - { Header: 'Last Updated', accessor: 'lastUpdated' }, + { Header: 'Last Updated', accessor: 'lastUpdated',}, { Header: 'Department', accessor: 'department' }, { Header: 'Building', accessor: 'building' }, { Header: 'Date Received', accessor: 'dateReceived' }, @@ -54,11 +60,11 @@ export default function ItemTable({ data }) { /> ); } - } + }, }, - useFilters, useFlexLayout, useSortBy + useFilters, useFlexLayout, useSortBy, useRowSelect ); - const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = tableInstance; + const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow, } = tableInstance; return ( @@ -75,22 +81,32 @@ export default function ItemTable({ data }) { - - - + { + const isSortedAsc = column.isSorted && !column.isSortedDesc; + + isSortedAsc ? column.clearSortBy() : column.toggleSortBy(false) + })} + > + + + { + const isSortedDesc = column.isSorted && column.isSortedDesc; + + isSortedDesc ? column.clearSortBy() : column.toggleSortBy(true) + })} + > + + @@ -106,8 +122,9 @@ export default function ItemTable({ data }) { prepareRow(row); return ( history.push(`/${row.original.queue}/${row.original.number}`)} - className={classes.bandedRows} {...row.getRowProps()}> + onClick={() => {history.push(`/${row.original.queue}/${row.original.number}`);}} + className={classes.bandedRows} + {...row.getRowProps()} > {row.cells.map(cell => ( {cell.render("Cell")}