import type { Event, EventStatus } from "@/entities/event";
import { create } from "zustand";
import { persist } from "zustand/middleware";

export type ManageEventState = {
  optimisticEventsStatuses: Record<Event["id"], EventStatus>;
  optimisticSetEventStatus: (id: Event["id"], status: EventStatus) => void;
};

export const useManageEventState = create<ManageEventState>()(
  persist(
    (set, get) => ({
      optimisticEventsStatuses: {},
      optimisticSetEventStatus: (id: Event["id"], status: EventStatus) =>
        set({
          optimisticEventsStatuses: {
            ...get().optimisticEventsStatuses,
            ...{ [id]: status },
          },
        }),
    }),
    { name: "optimisticStaffState" },
  ),
);

Homonyms

cyberia/research/events/client/src/entities/order/model/slice.ts
cyberia/research/events/client/src/entities/verifiedshaman/model/slice.ts
cyberia/research/events/client/src/features/map/model/slice.ts
cyberia/research/events/client/src/entities/staff/model/slice.ts
cyberia/research/events/client/src/entities/localprovider/model/slice.ts

Graph