fix tickets update action

This commit is contained in:
nflnkr 2023-03-22 14:43:19 +03:00
parent c3dee2f79a
commit ea9fd4f0c3

@ -18,16 +18,11 @@ export const useTicketStore = create<TicketStore>()(
) )
); );
export const setTickets = (tickets: Ticket[]) => useTicketStore.setState(({ tickets })); export const updateTickets = (receivedTickets: Ticket[]) => {
export const addOrUpdateTicket = (updatedTicket: Ticket) => {
const state = useTicketStore.getState(); const state = useTicketStore.getState();
const ticketIndex = state.tickets.findIndex(ticket => ticket.id === updatedTicket.id); const ticketIdToTicketMap: { [ticketId: string]: Ticket; } = {};
if (ticketIndex === -1) { [...state.tickets, ...receivedTickets].forEach(ticket => ticketIdToTicketMap[ticket.id] = ticket);
return useTicketStore.setState({ tickets: [...state.tickets, updatedTicket] });
}
const newTickets = state.tickets.slice().splice(ticketIndex, 1, updatedTicket); useTicketStore.setState({ tickets: Object.values(ticketIdToTicketMap) });
useTicketStore.setState({ tickets: newTickets });
}; };