import { makeStyles } from "@material-ui/core/styles"; 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 React from "react"; import { FormattedMessage } from "react-intl"; import Checkbox from "@saleor/components/Checkbox"; import ResponsiveTable from "@saleor/components/ResponsiveTable"; import Skeleton from "@saleor/components/Skeleton"; import TableHead from "@saleor/components/TableHead"; import TablePagination from "@saleor/components/TablePagination"; import { getUserName, maybe, renderCollection } from "@saleor/misc"; import { ListActions, ListProps, SortPage } from "@saleor/types"; import { CustomerListUrlSortField } from "@saleor/customers/urls"; import TableCellHeader from "@saleor/components/TableCellHeader"; import { getArrowDirection } from "@saleor/utils/sort"; import { ListCustomers_customers_edges_node } from "../../types/ListCustomers"; const useStyles = makeStyles( theme => ({ [theme.breakpoints.up("lg")]: { colEmail: {}, colName: {}, colOrders: { width: 200 } }, colEmail: {}, colName: { paddingLeft: 0 }, colOrders: { textAlign: "center" }, tableRow: { cursor: "pointer" } }), { name: "CustomerList" } ); export interface CustomerListProps extends ListProps, ListActions, SortPage { customers: ListCustomers_customers_edges_node[]; } const numberOfColumns = 4; const CustomerList: React.FC = props => { const { settings, disabled, customers, pageInfo, onNextPage, onPreviousPage, onUpdateListSettings, onRowClick, onSort, toolbar, toggle, toggleAll, selected, sort, isChecked } = props; const classes = useStyles(props); return ( onSort(CustomerListUrlSortField.name)} className={classes.colName} > onSort(CustomerListUrlSortField.email)} className={classes.colEmail} > onSort(CustomerListUrlSortField.orders)} className={classes.colOrders} > {renderCollection( customers, customer => { const isSelected = customer ? isChecked(customer.id) : false; return ( toggle(customer.id)} /> {getUserName(customer)} {maybe(() => customer.email, )} {maybe( () => customer.orders.totalCount, )} ); }, () => ( ) )} ); }; CustomerList.displayName = "CustomerList"; export default CustomerList;