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 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 });
|
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user