import Button from "@material-ui/core/Button"; import Card from "@material-ui/core/Card"; import IconButton from "@material-ui/core/IconButton"; import { createStyles, Theme, withStyles, WithStyles } from "@material-ui/core/styles"; import Table from "@material-ui/core/Table"; import TableBody from "@material-ui/core/TableBody"; import TableCell from "@material-ui/core/TableCell"; import TableFooter from "@material-ui/core/TableFooter"; import TableRow from "@material-ui/core/TableRow"; import DeleteIcon from "@material-ui/icons/Delete"; import React from "react"; import CardTitle from "@saleor/components/CardTitle"; import Checkbox from "@saleor/components/Checkbox"; import Skeleton from "@saleor/components/Skeleton"; import TableHead from "@saleor/components/TableHead"; import TablePagination from "@saleor/components/TablePagination"; import i18n from "../../../i18n"; import { maybe, renderCollection } from "../../../misc"; import { ListActions, ListProps } from "../../../types"; import { SaleDetails_sale } from "../../types/SaleDetails"; import { VoucherDetails_voucher } from "../../types/VoucherDetails"; export interface DiscountCollectionsProps extends ListProps, ListActions { discount: SaleDetails_sale | VoucherDetails_voucher; onCollectionAssign: () => void; onCollectionUnassign: (id: string) => void; } const styles = (theme: Theme) => createStyles({ iconCell: { "&:last-child": { paddingRight: 0 }, width: 48 + theme.spacing.unit / 2 }, tableRow: { cursor: "pointer" }, textRight: { textAlign: "right" }, wideColumn: { width: "60%" } }); const numberOfColumns = 4; const DiscountCollections = withStyles(styles, { name: "DiscountCollections" })( ({ discount: sale, classes, disabled, pageInfo, onCollectionAssign, onCollectionUnassign, onRowClick, onPreviousPage, onNextPage, isChecked, selected, toggle, toggleAll, toolbar }: DiscountCollectionsProps & WithStyles) => ( {i18n.t("Assign collections")} } /> sale.collections.edges.map(edge => edge.node))} toggleAll={toggleAll} toolbar={toolbar} > {i18n.t("Collection name")} {i18n.t("Products")} {renderCollection( maybe(() => sale.collections.edges.map(edge => edge.node)), collection => { const isSelected = collection ? isChecked(collection.id) : false; return ( toggle(collection.id)} /> {maybe( () => collection.name, )} {maybe( () => collection.products.totalCount, )} { event.stopPropagation(); onCollectionUnassign(collection.id); }} > ); }, () => ( {i18n.t("No collections found")} ) )}
) ); DiscountCollections.displayName = "DiscountCollections"; export default DiscountCollections;