2023-02-18 13:59:36 +00:00
|
|
|
import create from "zustand";
|
|
|
|
import { devtools, persist } from "zustand/middleware";
|
|
|
|
import { Discount } from "../model/cart";
|
2023-02-20 11:49:35 +00:00
|
|
|
import { testDiscounts } from "./mocks/discounts";
|
2023-02-18 13:59:36 +00:00
|
|
|
|
|
|
|
|
|
|
|
interface DiscountStore {
|
|
|
|
discountsArray: Array<Discount>,
|
|
|
|
setDiscountsArray: (array: Array<Discount>) => void,
|
|
|
|
discountsActiveArray: Array<number>,
|
|
|
|
setDiscountsActiveArray: (array: Array<number>) => void,
|
|
|
|
discountsSelectedRowsData: Array<Discount>,
|
|
|
|
setDiscountsSelectedRowsData: (array: Array<Discount>) => void,
|
|
|
|
}
|
|
|
|
|
|
|
|
export const useDiscountStore = create<DiscountStore>()(
|
|
|
|
devtools(
|
|
|
|
persist(
|
|
|
|
(set, get) => ({
|
2023-02-20 11:49:35 +00:00
|
|
|
discountsArray: testDiscounts,
|
2023-02-18 13:59:36 +00:00
|
|
|
setDiscountsArray: (array: Array<Discount>) => set({ discountsArray: array }),
|
|
|
|
discountsActiveArray: [],
|
|
|
|
setDiscountsActiveArray: (array: Array<number>) => set({ discountsActiveArray: array }),
|
|
|
|
discountsSelectedRowsData: [],
|
|
|
|
setDiscountsSelectedRowsData: (array: Array<Discount>) => set({ discountsSelectedRowsData: array }),
|
|
|
|
}),
|
|
|
|
{
|
|
|
|
name: "discount-storage",
|
|
|
|
getStorage: () => localStorage,
|
|
|
|
}
|
|
|
|
),
|
|
|
|
{
|
|
|
|
name: "Discount store"
|
|
|
|
}
|
|
|
|
)
|
|
|
|
);
|