40 lines
921 B
TypeScript
40 lines
921 B
TypeScript
import { create } from "zustand";
|
|
import { persist } from "zustand/middleware";
|
|
import { Tariff } from "@root/model/tariff";
|
|
|
|
|
|
interface TariffStore {
|
|
tariffs: Record<string, Tariff>
|
|
}
|
|
|
|
export const useTariffStore = create<TariffStore>()(
|
|
persist(
|
|
(set, get) => ({
|
|
tariffs: {},
|
|
}),
|
|
{
|
|
name: "Tariff store",
|
|
}
|
|
)
|
|
);
|
|
|
|
|
|
|
|
export const updateTariffs = (newTariffs: Record<string, Tariff>) => {
|
|
useTariffStore.setState((state) => ({
|
|
tariffs: {...state.tariffs, ...newTariffs},
|
|
}));
|
|
};
|
|
|
|
export const deleteTariffs = (tariffId: string) => {
|
|
let tariffs = useTariffStore.getState().tariffs
|
|
delete tariffs[tariffId]
|
|
useTariffStore.setState(() => ({tariffs: tariffs}));
|
|
};
|
|
|
|
export const resetTariffsStore = (newTariffs: Record<string, Tariff>) => {
|
|
useTariffStore.setState(() => ({tariffs: {}}));
|
|
console.log(newTariffs)
|
|
useTariffStore.setState(() => ({tariffs: newTariffs}));
|
|
};
|