saleor-dashboard/src/components/SortableTable/SortableTableBody.tsx

46 lines
1.1 KiB
TypeScript
Raw Normal View History

2019-10-28 16:16:49 +00:00
import makeStyles from "@material-ui/core/styles/makeStyles";
2019-08-09 10:17:04 +00:00
import TableBody, { TableBodyProps } from "@material-ui/core/TableBody";
import React from "react";
import { SortableContainer } from "react-sortable-hoc";
import { ReorderAction } from "@saleor/types";
const InnerSortableTableBody = SortableContainer<TableBodyProps>(
({ children, ...props }) => <TableBody {...props}>{children}</TableBody>
);
export interface SortableTableBodyProps {
onSortEnd: ReorderAction;
}
2019-10-28 16:16:49 +00:00
const useStyles = makeStyles(theme => ({
2019-08-09 10:17:04 +00:00
ghost: {
"& td": {
borderBottom: "none"
},
background: theme.palette.background.paper,
fontFamily: theme.typography.fontFamily,
2019-10-30 14:34:24 +00:00
// FIXME: you damn know what
// fontSize: theme.overrides.MuiTableCell.root.fontSize,
2019-08-09 10:17:04 +00:00
opacity: 0.5
}
}));
const SortableTableBody: React.FC<
2019-10-30 14:34:24 +00:00
Omit<TableBodyProps & SortableTableBodyProps, "ref">
2019-08-09 10:17:04 +00:00
> = props => {
const classes = useStyles({});
return (
<InnerSortableTableBody
helperClass={classes.ghost}
axis="y"
lockAxis="y"
useDragHandle
{...props}
/>
);
};
export default SortableTableBody;