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