2023-03-06 13:22:12 +00:00
|
|
|
import { Tariff } from "@root/model/tariff";
|
|
|
|
import { create } from "zustand";
|
|
|
|
import { devtools, persist } from "zustand/middleware";
|
|
|
|
import { exampleTariffs } from "./mocks/tariffs";
|
2023-02-28 08:30:57 +00:00
|
|
|
|
|
|
|
|
2023-03-06 13:22:12 +00:00
|
|
|
interface TariffStore {
|
|
|
|
tariffs: Tariff[];
|
|
|
|
addTariffs: (newTariffs: Tariff[]) => void;
|
|
|
|
deleteTariffs: (tariffsToDelete: Tariff[]) => void;
|
|
|
|
deleteAllTariffs: () => void;
|
|
|
|
}
|
2023-02-28 08:30:57 +00:00
|
|
|
|
2023-03-06 13:22:12 +00:00
|
|
|
export const useTariffStore = create<TariffStore>()(
|
|
|
|
devtools(
|
|
|
|
// persist(
|
|
|
|
(set, get) => ({
|
|
|
|
tariffs: exampleTariffs,
|
|
|
|
addTariffs: (newTariffs: Tariff[]) => set(state => ({ tariffs: [...state.tariffs, ...newTariffs] })),
|
|
|
|
deleteTariffs: tariffsToDelete => set(state => (
|
|
|
|
{ tariffs: state.tariffs.filter(tariff => !tariffsToDelete.includes(tariff)) }
|
|
|
|
)),
|
|
|
|
deleteAllTariffs: () => set({ tariffs: [] }),
|
|
|
|
}),
|
|
|
|
// {
|
|
|
|
// name: "tariffs",
|
|
|
|
// getStorage: () => localStorage,
|
|
|
|
// }
|
|
|
|
// ),
|
|
|
|
{
|
|
|
|
name: "Tariff store"
|
|
|
|
}
|
|
|
|
)
|
|
|
|
);
|