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 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) });
};