fix tickets update action
This commit is contained in:
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) });
|
||||
};
|
Loading…
Reference in New Issue
Block a user