mirror of
https://github.com/cheveguerra/whaticket-community.git
synced 2026-04-20 20:59:16 +00:00
feat: show day timestamp instead of hour if not today
This commit is contained in:
@@ -102,10 +102,9 @@ const useStyles = makeStyles(theme => ({
|
|||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const MessageInput = ({ searchParam }) => {
|
const MessageInput = () => {
|
||||||
const classes = useStyles();
|
const classes = useStyles();
|
||||||
const { ticketId } = useParams();
|
const { ticketId } = useParams();
|
||||||
// const userId = localStorage.getItem("userId");
|
|
||||||
const username = localStorage.getItem("username");
|
const username = localStorage.getItem("username");
|
||||||
|
|
||||||
const mediaInitialState = { preview: "", raw: "", name: "" };
|
const mediaInitialState = { preview: "", raw: "", name: "" };
|
||||||
@@ -309,7 +308,7 @@ const MessageInput = ({ searchParam }) => {
|
|||||||
</label>
|
</label>
|
||||||
<div className={classes.messageInputWrapper}>
|
<div className={classes.messageInputWrapper}>
|
||||||
<InputBase
|
<InputBase
|
||||||
inputRef={input => input && !searchParam && input.focus()}
|
inputRef={input => input && input.focus()}
|
||||||
className={classes.messageInput}
|
className={classes.messageInput}
|
||||||
placeholder="Escreva uma mensagem"
|
placeholder="Escreva uma mensagem"
|
||||||
multiline
|
multiline
|
||||||
|
|||||||
@@ -234,7 +234,6 @@ const MessagesList = () => {
|
|||||||
const [ticket, setTicket] = useState({});
|
const [ticket, setTicket] = useState({});
|
||||||
const [messagesList, setMessagesList] = useState([]);
|
const [messagesList, setMessagesList] = useState([]);
|
||||||
const [hasMore, setHasMore] = useState(false);
|
const [hasMore, setHasMore] = useState(false);
|
||||||
const [searchParam, setSearchParam] = useState("");
|
|
||||||
const [pageNumber, setPageNumber] = useState(0);
|
const [pageNumber, setPageNumber] = useState(0);
|
||||||
const [drawerOpen, setDrawerOpen] = useState(false);
|
const [drawerOpen, setDrawerOpen] = useState(false);
|
||||||
const lastMessageRef = useRef();
|
const lastMessageRef = useRef();
|
||||||
@@ -242,17 +241,13 @@ const MessagesList = () => {
|
|||||||
const [anchorEl, setAnchorEl] = useState(null);
|
const [anchorEl, setAnchorEl] = useState(null);
|
||||||
const moreMenuOpen = Boolean(anchorEl);
|
const moreMenuOpen = Boolean(anchorEl);
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
setMessagesList([]);
|
|
||||||
}, [searchParam]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
const delayDebounceFn = setTimeout(() => {
|
const delayDebounceFn = setTimeout(() => {
|
||||||
const fetchMessages = async () => {
|
const fetchMessages = async () => {
|
||||||
try {
|
try {
|
||||||
const res = await api.get("/messages/" + ticketId, {
|
const res = await api.get("/messages/" + ticketId, {
|
||||||
params: { searchParam, pageNumber },
|
params: { pageNumber },
|
||||||
});
|
});
|
||||||
setContact(res.data.ticket.contact);
|
setContact(res.data.ticket.contact);
|
||||||
setTicket(res.data.ticket);
|
setTicket(res.data.ticket);
|
||||||
@@ -273,7 +268,7 @@ const MessagesList = () => {
|
|||||||
fetchMessages();
|
fetchMessages();
|
||||||
}, 1000);
|
}, 1000);
|
||||||
return () => clearTimeout(delayDebounceFn);
|
return () => clearTimeout(delayDebounceFn);
|
||||||
}, [searchParam, pageNumber, ticketId, token, history]);
|
}, [pageNumber, ticketId, token, history]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const socket = openSocket(process.env.REACT_APP_BACKEND_URL);
|
const socket = openSocket(process.env.REACT_APP_BACKEND_URL);
|
||||||
@@ -297,17 +292,11 @@ const MessagesList = () => {
|
|||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
socket.disconnect();
|
socket.disconnect();
|
||||||
setSearchParam("");
|
|
||||||
setPageNumber(1);
|
setPageNumber(1);
|
||||||
setMessagesList([]);
|
setMessagesList([]);
|
||||||
};
|
};
|
||||||
}, [ticketId]);
|
}, [ticketId]);
|
||||||
|
|
||||||
// const handleSearch = e => {
|
|
||||||
// setSearchParam(e.target.value);
|
|
||||||
// setPageNumber(1);
|
|
||||||
// };
|
|
||||||
|
|
||||||
const loadMore = () => {
|
const loadMore = () => {
|
||||||
setPageNumber(prevPageNumber => prevPageNumber + 1);
|
setPageNumber(prevPageNumber => prevPageNumber + 1);
|
||||||
};
|
};
|
||||||
@@ -613,7 +602,7 @@ const MessagesList = () => {
|
|||||||
>
|
>
|
||||||
{messagesList.length > 0 ? renderMessages() : []}
|
{messagesList.length > 0 ? renderMessages() : []}
|
||||||
</InfiniteScrollReverse>
|
</InfiniteScrollReverse>
|
||||||
<MessageInput searchParam={searchParam} />
|
<MessageInput />
|
||||||
{loading ? (
|
{loading ? (
|
||||||
<div>
|
<div>
|
||||||
<CircularProgress className={classes.circleLoading} />
|
<CircularProgress className={classes.circleLoading} />
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ const useStyles = makeStyles(theme => ({
|
|||||||
},
|
},
|
||||||
|
|
||||||
tab: {
|
tab: {
|
||||||
minWidth: 120, // a number of your choice
|
minWidth: 120,
|
||||||
width: 120, // a number of your choice
|
width: 120,
|
||||||
},
|
},
|
||||||
|
|
||||||
halfTicketsList: {
|
halfTicketsList: {
|
||||||
@@ -84,13 +84,10 @@ const useStyles = makeStyles(theme => ({
|
|||||||
|
|
||||||
ticketsListHeader: {
|
ticketsListHeader: {
|
||||||
display: "flex",
|
display: "flex",
|
||||||
// flexShrink: 0,
|
|
||||||
// -webkitBoxAlign: "center",
|
|
||||||
alignItems: "center",
|
alignItems: "center",
|
||||||
fontWeight: 500,
|
fontWeight: 500,
|
||||||
fontSize: "16px",
|
fontSize: "16px",
|
||||||
height: "56px",
|
height: "56px",
|
||||||
// backgroundColor: "#eee",
|
|
||||||
color: "rgb(67, 83, 105)",
|
color: "rgb(67, 83, 105)",
|
||||||
padding: "0px 12px",
|
padding: "0px 12px",
|
||||||
borderBottom: "1px solid rgba(0, 0, 0, 0.12)",
|
borderBottom: "1px solid rgba(0, 0, 0, 0.12)",
|
||||||
@@ -391,8 +388,6 @@ const Tickets = () => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log(tickets);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Paper elevation={0} variant="outlined" className={classes.contactsWrapper}>
|
<Paper elevation={0} variant="outlined" className={classes.contactsWrapper}>
|
||||||
<NewTicketModal
|
<NewTicketModal
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { parseISO, format } from "date-fns";
|
import { parseISO, format, isSameDay } from "date-fns";
|
||||||
|
|
||||||
import { makeStyles } from "@material-ui/core/styles";
|
import { makeStyles } from "@material-ui/core/styles";
|
||||||
import { green } from "@material-ui/core/colors";
|
import { green } from "@material-ui/core/colors";
|
||||||
@@ -146,7 +146,11 @@ const TicketsList = ({
|
|||||||
variant="body2"
|
variant="body2"
|
||||||
color="textSecondary"
|
color="textSecondary"
|
||||||
>
|
>
|
||||||
{format(parseISO(ticket.updatedAt), "HH:mm")}
|
{isSameDay(parseISO(ticket.updatedAt), new Date()) ? (
|
||||||
|
<>{format(parseISO(ticket.updatedAt), "HH:mm")}</>
|
||||||
|
) : (
|
||||||
|
<>{format(parseISO(ticket.updatedAt), "MM/dd/yyyy")}</>
|
||||||
|
)}
|
||||||
</Typography>
|
</Typography>
|
||||||
)}
|
)}
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user