diff --git a/frontend/package.json b/frontend/package.json index e6ec1f6..99ce713 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -5,6 +5,7 @@ "dependencies": { "@material-ui/core": "^4.9.14", "@material-ui/icons": "^4.9.1", + "@material-ui/lab": "^4.0.0-alpha.56", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.5.0", "@testing-library/user-event": "^7.2.1", diff --git a/frontend/src/pages/Chat/components/MessagesList/MessagesList.js b/frontend/src/pages/Chat/components/MessagesList/MessagesList.js index fd5fe1c..9cb50e6 100644 --- a/frontend/src/pages/Chat/components/MessagesList/MessagesList.js +++ b/frontend/src/pages/Chat/components/MessagesList/MessagesList.js @@ -18,6 +18,7 @@ import Avatar from "@material-ui/core/Avatar"; import Button from "@material-ui/core/Button"; import Paper from "@material-ui/core/Paper"; import { green } from "@material-ui/core/colors"; +import Skeleton from "@material-ui/lab/Skeleton"; import whatsBackground from "../../../../Images/wa-background.png"; @@ -257,10 +258,10 @@ const MessagesList = () => { }; }, [ticketId]); - const handleSearch = e => { - setSearchParam(e.target.value); - setPageNumber(1); - }; + // const handleSearch = e => { + // setSearchParam(e.target.value); + // setPageNumber(1); + // }; const loadMore = () => { setPageNumber(prevPageNumber => prevPageNumber + 1); @@ -441,53 +442,64 @@ const MessagesList = () => { return ( - {contact.name ? ( - } - title={`${contact.name} #${ticket.id}`} - subheader={`Atribuído á ${ticket.userId}`} - /> - ) : ( - } - title="" - subheader="" - /> - )} - -
- {ticket.status === "closed" ? ( - - ) : ( - <> + + + + ) : ( + + ) + } + title={ + loading ? ( + + ) : ( + `${contact.name} #${ticket.id}` + ) + } + subheader={ + loading ? ( + + ) : ( + `Atribuído á ${ticket.userId}` + ) + } + /> + {!loading && ( +
+ {ticket.status === "closed" ? ( - - - )} -
+ ) : ( + <> + + + + )} +
+ )}
{ + return ( + <> + + + + + } + secondary={} + /> + + + + ); +}; + +export default TicketSkeleton; diff --git a/frontend/src/pages/Chat/components/TicketsList/TicketsList.js b/frontend/src/pages/Chat/components/TicketsList/TicketsList.js index 0d8f45c..855bc89 100644 --- a/frontend/src/pages/Chat/components/TicketsList/TicketsList.js +++ b/frontend/src/pages/Chat/components/TicketsList/TicketsList.js @@ -31,8 +31,11 @@ import Tab from "@material-ui/core/Tab"; import MoveToInboxIcon from "@material-ui/icons/MoveToInbox"; import CheckCircleOutlineIcon from "@material-ui/icons/CheckCircleOutline"; +import TicketSkeleton from "./TicketSkeleton"; + const useStyles = makeStyles(theme => ({ contactsWrapper: { + position: "relative", display: "flex", height: "100%", flexDirection: "column", @@ -41,8 +44,8 @@ const useStyles = makeStyles(theme => ({ borderBottomRightRadius: 0, }, - contactsHeader: { - display: "flex", + tabsHeader: { + // display: "flex", backgroundColor: "#eee", }, @@ -53,7 +56,6 @@ const useStyles = makeStyles(theme => ({ }, openTicketsList: { - position: "relative", height: "50%", overflowY: "scroll", "&::-webkit-scrollbar": { @@ -63,11 +65,10 @@ const useStyles = makeStyles(theme => ({ boxShadow: "inset 0 0 6px rgba(0, 0, 0, 0.3)", backgroundColor: "#e8e8e8", }, - borderTop: "2px solid rgba(0, 0, 0, 0.12)", + borderTop: "1px solid rgba(0, 0, 0, 0.12)", }, closedTicketsList: { - position: "relative", flex: 1, overflowY: "scroll", "&::-webkit-scrollbar": { @@ -166,19 +167,11 @@ const useStyles = makeStyles(theme => ({ color: green[500], opacity: "70%", position: "absolute", - top: 0, + top: "50%", left: "50%", marginTop: 12, // marginLeft: -12, }, - fabButton: { - position: "absolute", - zIndex: 1, - bottom: 20, - left: 0, - right: 0, - margin: "0 auto", - }, })); const TicketsList = () => { @@ -429,12 +422,25 @@ const TicketsList = () => { ) ); - return viewTickets; + if (loading) { + return <>{Array(2).fill()}; + } else if (viewTickets.length === 0) { + return ( +
+ All caught up +

+ No tickets to look into for now. Take a breather! +

+
+ ); + } else { + return viewTickets; + } }; return ( - + { onChange={handleSearchContact} />
- {loading ? ( -
- -
- ) : null}
{tab === "open" ? ( <> @@ -501,7 +502,6 @@ const TicketsList = () => { {renderTickets("closed")} )} -