feat: add queue color to tickets list item

This commit is contained in:
canove
2021-01-11 07:22:56 -03:00
parent f642f2c788
commit 90b438025b
6 changed files with 25 additions and 24 deletions

View File

@@ -4,6 +4,7 @@ import { startOfDay, endOfDay, parseISO } from "date-fns";
import Ticket from "../../models/Ticket";
import Contact from "../../models/Contact";
import Message from "../../models/Message";
import Queue from "../../models/Queue";
interface Request {
searchParam?: string;
@@ -40,6 +41,11 @@ const ListTicketsService = async ({
model: Contact,
as: "contact",
attributes: ["id", "name", "number", "profilePicUrl"]
},
{
model: Queue,
as: "queue",
attributes: ["id", "name", "color"]
}
];

View File

@@ -1,9 +1,7 @@
import AppError from "../../errors/AppError";
import CheckContactOpenTickets from "../../helpers/CheckContactOpenTickets";
import SetTicketMessagesAsRead from "../../helpers/SetTicketMessagesAsRead";
import Contact from "../../models/Contact";
import Ticket from "../../models/Ticket";
import User from "../../models/User";
import ShowTicketService from "./ShowTicketService";
interface TicketData {
status?: string;
@@ -27,25 +25,7 @@ const UpdateTicketService = async ({
}: Request): Promise<Response> => {
const { status, userId } = ticketData;
const ticket = await Ticket.findOne({
where: { id: ticketId },
include: [
{
model: Contact,
as: "contact",
attributes: ["id", "name", "number", "profilePicUrl"]
},
{
model: User,
as: "user",
attributes: ["id", "name"]
}
]
});
if (!ticket) {
throw new AppError("ERR_NO_TICKET_FOUND", 404);
}
const ticket = await ShowTicketService(ticketId);
await SetTicketMessagesAsRead(ticket);

View File

@@ -163,7 +163,7 @@ const verifyQueue = async (
options += `*${index + 1}* - ${queue.name}\n`;
});
const body = `\u200e ${greetingMessage}\n\n${options}`;
const body = `\u200e ${greetingMessage}\n${options}`;
const sentMessage = await wbot.sendMessage(`${contact.number}@c.us`, body);

View File

@@ -87,6 +87,15 @@ const useStyles = makeStyles(theme => ({
position: "absolute",
left: "50%",
},
ticketQueueColor: {
flex: "none",
width: "8px",
height: "100%",
position: "absolute",
top: "0%",
left: "0%",
},
}));
const TicketListItem = ({ ticket }) => {
@@ -138,6 +147,10 @@ const TicketListItem = ({ ticket }) => {
[classes.pendingTicket]: ticket.status === "pending",
})}
>
<span
style={{ backgroundColor: ticket.queue?.color }}
className={classes.ticketQueueColor}
></span>
<ListItemAvatar>
<Avatar
src={ticket.contact.profilePicUrl && ticket.contact.profilePicUrl}

View File

@@ -100,6 +100,8 @@ const reducer = (state, action) => {
if (action.type === "UPDATE_TICKET") {
const ticket = action.payload;
console.log("TICKET", ticket);
const ticketIndex = state.findIndex(t => t.id === ticket.id);
if (ticketIndex !== -1) {
state[ticketIndex] = ticket;

View File

@@ -86,7 +86,7 @@ const WhatsAppModal = ({ open, onClose, whatsAppId }) => {
const handleSaveWhatsApp = async values => {
const whatsappData = { ...values, queueIds: selectedQueueIds };
console.log("SELECTED", whatsappData);
try {
if (whatsAppId) {
await api.put(`/whatsapp/${whatsAppId}`, whatsappData);