import React from "react"; import { parseISO, format } from "date-fns"; import { makeStyles } from "@material-ui/core/styles"; import { green } from "@material-ui/core/colors"; import ListItem from "@material-ui/core/ListItem"; import ListItemText from "@material-ui/core/ListItemText"; import ListItemAvatar from "@material-ui/core/ListItemAvatar"; import Typography from "@material-ui/core/Typography"; import Avatar from "@material-ui/core/Avatar"; import Divider from "@material-ui/core/Divider"; import Badge from "@material-ui/core/Badge"; import Button from "@material-ui/core/Button"; const useStyles = makeStyles(theme => ({ ticket: { position: "relative", "& .hidden-button": { display: "none", }, "&:hover .hidden-button": { display: "flex", position: "absolute", left: "50%", }, }, noTicketsDiv: { display: "flex", height: "100px", margin: 40, flexDirection: "column", alignItems: "center", justifyContent: "center", }, noTicketsText: { textAlign: "center", color: "rgb(104, 121, 146)", fontSize: "14px", lineHeight: "1.4", }, noTicketsTitle: { textAlign: "center", fontSize: "16px", fontWeight: "600", margin: "0px", }, contactNameWrapper: { display: "flex", justifyContent: "space-between", }, lastMessageTime: { justifySelf: "flex-end", }, closedBadge: { alignSelf: "center", justifySelf: "flex-end", marginRight: 32, marginLeft: "auto", }, contactLastMessage: { paddingRight: 20, }, newMessagesCount: { alignSelf: "center", marginRight: 8, marginLeft: "auto", }, badgeStyle: { color: "white", backgroundColor: green[500], }, })); const TicketsList = ({ tickets, status, userId, handleSelectTicket, showAllTickets, ticketId, noTicketsTitle, loading, noTicketsMessage, handleAcepptTicket, }) => { const classes = useStyles(); let viewTickets = []; tickets.forEach(ticket => { if ( (ticket.status === status && ticket.userId === userId) || (ticket.status === status && showAllTickets) || (ticket.status === "closed" && status === "closed") || status === "all" ) viewTickets.push( { if (ticket.status === "pending") return; handleSelectTicket(e, ticket); }} selected={ticketId && +ticketId === ticket.id} className={classes.ticket} > {ticket.contact.name} {ticket.status === "closed" && ( )} {ticket.lastMessage && ( {format(parseISO(ticket.updatedAt), "HH:mm")} )} } secondary={ {ticket.lastMessage ||
}
} /> {ticket.status === "pending" ? ( ) : null}
); }); if (viewTickets.length > 0) { return viewTickets; } else if (!loading) { return (
{noTicketsTitle}

{noTicketsMessage}

); } else return null; }; export default TicketsList;