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 TableHead from "@material-ui/core/TableHead"; import TableRow from "@material-ui/core/TableRow"; import Typography from "@material-ui/core/Typography"; import classNames from "classnames"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; import ResponsiveTable from "@saleor/components/ResponsiveTable"; import Skeleton from "@saleor/components/Skeleton"; import TablePagination from "@saleor/components/TablePagination"; import { getUserInitials, getUserName, maybe, renderCollection } from "@saleor/misc"; import { ListProps } from "@saleor/types"; import { StaffList_staffUsers_edges_node } from "../../types/StaffList"; const useStyles = makeStyles(theme => ({ avatar: { alignItems: "center", borderRadius: "100%", display: "grid", float: "left", height: 47, justifyContent: "center", marginRight: theme.spacing(1), overflow: "hidden", width: 47 }, avatarDefault: { "& p": { color: "#fff", lineHeight: "47px" }, background: theme.palette.primary.main, height: 47, textAlign: "center", width: 47 }, avatarImage: { pointerEvents: "none", width: "100%" }, statusText: { color: "#9E9D9D" }, tableRow: { cursor: "pointer" }, wideColumn: { width: "80%" } })); interface StaffListProps extends ListProps { staffMembers: StaffList_staffUsers_edges_node[]; } const StaffList: React.FC = props => { const { settings, disabled, onNextPage, onPreviousPage, onUpdateListSettings, onRowClick, pageInfo, staffMembers } = props; const classes = useStyles(props); const intl = useIntl(); return ( {renderCollection( staffMembers, staffMember => (
{maybe(() => staffMember.avatar.url) ? ( staffMember.avatar.url)} /> ) : (
{getUserInitials(staffMember)}
)}
{getUserName(staffMember) || } {maybe( () => staffMember.isActive ? intl.formatMessage({ defaultMessage: "Active", description: "staff member status" }) : intl.formatMessage({ defaultMessage: "Inactive", description: "staff member status" }), )}
{maybe(() => staffMember.email, )}
), () => ( ) )}
); }; StaffList.displayName = "StaffList"; export default StaffList;