WIP split stores

This commit is contained in:
nflnkr 2023-02-18 16:59:36 +03:00
parent 3176fdb21c
commit 490b84b0e6
5 changed files with 120 additions and 63 deletions

@ -1,63 +0,0 @@
import create from "zustand";
import { persist } from "zustand/middleware"
import { ArrayProps } from "./pages/dashboard/Content/Tariffs/types";
import { PromocodeProps } from "./pages/dashboard/Content/Promocode/types";
import { DiscountProps } from "./pages/dashboard/Content/Discounts/types";
const useStore = create<StoreState>()(
persist(
(set, get) => ({
tariffsArray: [],
tariffsArraySet: (array:Array<ArrayProps>) => set({ tariffsArray: array }),
tariffsSelectedRowsData: [],
tariffsSelectedRowsDataSet: (array:Array<ArrayProps>) => set({ tariffsSelectedRowsData: array }),
cartRowsData: [],
cartRowsDataSet: (array:Array<ArrayProps>) => set({ cartRowsData: array }),
promocodeArray: [],
promocodeArraySet: (array:Array<PromocodeProps>) => set({ promocodeArray: array }),
discountsArray: [],
discountsArraySet: (array:Array<DiscountProps>) => set({ discountsArray: array }),
discountsActiveArray: [],
discountsActiveArraySet: (array:Array<number>) => set({ discountsActiveArray: array }),
discountsSelectedRowsData: [],
discountsSelectedRowsDataSet: (array:Array<DiscountProps>) => set({ discountsSelectedRowsData: array }),
}),
{
name: "arrays-storage",
getStorage: () => localStorage,
}
)
);
export interface StoreState {
tariffsArray: Array<ArrayProps>,
tariffsArraySet: (array:Array<ArrayProps>) => void,
tariffsSelectedRowsData: Array<ArrayProps>,
tariffsSelectedRowsDataSet: (array:Array<ArrayProps>) => void,
cartRowsData: Array<ArrayProps>,
cartRowsDataSet: (array:Array<ArrayProps>) => void,
promocodeArray: Array<PromocodeProps>,
promocodeArraySet: (array:Array<PromocodeProps>) => void,
discountsArray: Array<DiscountProps>,
discountsArraySet: (array:Array<DiscountProps>) => void,
discountsActiveArray: Array<number>,
discountsActiveArraySet: (array:Array<number>) => void,
discountsSelectedRowsData: Array<DiscountProps>,
discountsSelectedRowsDataSet: (array:Array<DiscountProps>) => void,
}
export default useStore;

27
src/stores/cart.ts Normal file

@ -0,0 +1,27 @@
import create from "zustand";
import { devtools, persist } from "zustand/middleware";
import { ArrayProps } from "../model/tariff";
interface CartStore {
cartRowsData: Array<ArrayProps>,
setCartRowsData: (array: Array<ArrayProps>) => void,
}
export const useCartStore = create<CartStore>()(
devtools(
persist(
(set, get) => ({
cartRowsData: [],
setCartRowsData: (array: Array<ArrayProps>) => set({ cartRowsData: array }),
}),
{
name: "cart-storage",
getStorage: () => localStorage,
}
),
{
name: "Cart store"
}
)
);

35
src/stores/discounts.ts Normal file

@ -0,0 +1,35 @@
import create from "zustand";
import { devtools, persist } from "zustand/middleware";
import { Discount } from "../model/cart";
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) => ({
discountsArray: [],
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"
}
)
);

27
src/stores/promocodes.ts Normal file

@ -0,0 +1,27 @@
import create from "zustand";
import { devtools, persist } from "zustand/middleware";
import { Promocode } from "../model/cart";
interface PromocodeStore {
promocodeArray: Array<Promocode>,
setPromocodeArray: (array: Array<Promocode>) => void,
}
export const usePromocodeStore = create<PromocodeStore>()(
devtools(
persist(
(set, get) => ({
promocodeArray: [],
setPromocodeArray: (array: Array<Promocode>) => set({ promocodeArray: array }),
}),
{
name: "promocode-storage",
getStorage: () => localStorage,
}
),
{
name: "Promocode store"
}
)
);

31
src/stores/tariffs.ts Normal file

@ -0,0 +1,31 @@
import create from "zustand";
import { devtools, persist } from "zustand/middleware";
import { ArrayProps } from "../model/tariff";
interface TariffStore {
tariffs: Array<ArrayProps>;
setTariffs: (array: Array<ArrayProps>) => void;
tariffsSelectedRowsData: Array<ArrayProps>;
setTariffsSelectedRowsData: (array: Array<ArrayProps>) => void;
}
export const useTariffStore = create<TariffStore>()(
devtools(
persist(
(set, get) => ({
tariffs: [],
setTariffs: (array: Array<ArrayProps>) => set({ tariffs: array }),
tariffsSelectedRowsData: [],
setTariffsSelectedRowsData: (array: Array<ArrayProps>) => set({ tariffsSelectedRowsData: array }),
}),
{
name: "tariff-storage",
getStorage: () => localStorage,
}
),
{
name: "Tariff store"
}
)
);