From ea9fd4f0c32a39372a32bc767682799fa681edbb Mon Sep 17 00:00:00 2001 From: nflnkr Date: Wed, 22 Mar 2023 14:43:19 +0300 Subject: [PATCH] fix tickets update action --- src/stores/tickets.ts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/stores/tickets.ts b/src/stores/tickets.ts index 0e110e4..9b9e558 100644 --- a/src/stores/tickets.ts +++ b/src/stores/tickets.ts @@ -18,16 +18,11 @@ export const useTicketStore = create()( ) ); -export const setTickets = (tickets: Ticket[]) => useTicketStore.setState(({ tickets })); - -export const addOrUpdateTicket = (updatedTicket: Ticket) => { +export const updateTickets = (receivedTickets: Ticket[]) => { const state = useTicketStore.getState(); - const ticketIndex = state.tickets.findIndex(ticket => ticket.id === updatedTicket.id); + const ticketIdToTicketMap: { [ticketId: string]: Ticket; } = {}; - if (ticketIndex === -1) { - return useTicketStore.setState({ tickets: [...state.tickets, updatedTicket] }); - } + [...state.tickets, ...receivedTickets].forEach(ticket => ticketIdToTicketMap[ticket.id] = ticket); - const newTickets = state.tickets.slice().splice(ticketIndex, 1, updatedTicket); - useTicketStore.setState({ tickets: newTickets }); + useTicketStore.setState({ tickets: Object.values(ticketIdToTicketMap) }); }; \ No newline at end of file