import { create } from "zustand"; import { persist } from "zustand/middleware"; import { Tariff_BACKEND, Tariff_FRONTEND } from "@root/model/tariff"; interface TariffStore { tariffs: Tariff_FRONTEND[] } export const useTariffStore = create()( persist( (set, get) => ({ tariffs: [], // tariffs: exampleTariffs, }), { name: "Tariff store", } ) ); export const resetTariffs = (newTariff: Tariff_FRONTEND[]) => useTariffStore.setState((state) => ({ tariffs: newTariff })); export const updateTariff = (tariff: Tariff_FRONTEND) => { let stateTariffs = useTariffStore.getState().tariffs let index stateTariffs.forEach((e,i) => { //ищем такой тариф для замены на новый if (e.id == tariff.id) index = i }) if (index === undefined) {// не нашли. Добавляем addTariffs([tariff]) } else { //нашли. Заменяем stateTariffs[index] = tariff useTariffStore.setState(() => ({tariffs: stateTariffs})) } } export const addTariffs = (newTariffs: Tariff_FRONTEND[]) => { let stateTariffs = useTariffStore.getState().tariffs let newArrayTariffs = [...stateTariffs, ...newTariffs] newArrayTariffs.forEach((tariff) => { updateTariff(tariff) }) } export const deleteTariffs = (tariffId: string) => useTariffStore.setState((state) => ({ tariffs: state.tariffs.filter((tariff) => tariff.id !== tariffId), }));