import { Ticket } from "@root/model/ticket"; import { create } from "zustand"; import { devtools } from "zustand/middleware"; interface TicketStore { tickets: Ticket[]; } export const useTicketStore = create()( devtools( (set, get) => ({ tickets: [], }), { name: "Tickets store" } ) ); export const setTickets = (tickets: Ticket[]) => useTicketStore.setState(({ tickets })); export const addOrUpdateTicket = (updatedTicket: Ticket) => { const state = useTicketStore.getState(); const ticketIndex = state.tickets.findIndex(ticket => ticket.id === updatedTicket.id); if (ticketIndex === -1) { return useTicketStore.setState({ tickets: [...state.tickets, updatedTicket] }); } const newTickets = state.tickets.slice().splice(ticketIndex, 1, updatedTicket); useTicketStore.setState({ tickets: newTickets }); };