fix store usage
This commit is contained in:
parent
ab772c116b
commit
be99542dee
@ -5,7 +5,6 @@ import { useState } from "react";
|
||||
import { SERVICE_LIST, ServiceType } from "@root/model/tariff";
|
||||
import { CustomTextField } from "@root/kitUI/CustomTextField";
|
||||
import { resetPrivilegeArray, usePrivilegeStore } from "@root/stores/privilegesStore";
|
||||
import { setRealPrivileges, useRealPrivilegeStore } from "@root/stores/privileges";
|
||||
import { addDiscount } from "@root/stores/discounts";
|
||||
import { enqueueSnackbar } from "notistack";
|
||||
import { DiscountType, discountTypes } from "@root/model/discount";
|
||||
@ -26,7 +25,7 @@ export default function CreateDiscount() {
|
||||
const [cartPurchasesAmountField, setCartPurchasesAmountField] = useState<string>("0");
|
||||
const [discountMinValueField, setDiscountMinValueField] = useState<string>("0");
|
||||
|
||||
usePrivileges({ onNewPrivileges: setRealPrivileges });
|
||||
usePrivileges({ onNewPrivileges: resetPrivilegeArray });
|
||||
|
||||
const handleDiscountTypeChange = (event: React.ChangeEvent<HTMLInputElement>) => {
|
||||
setDiscountType(event.target.value as DiscountType);
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { Box, Button, Dialog, FormControl, FormControlLabel, FormLabel, InputLabel, MenuItem, Radio, RadioGroup, Select, SelectChangeEvent, Typography, useTheme } from "@mui/material";
|
||||
import { createDiscount, patchDiscount } from "@root/api/discounts";
|
||||
import { patchDiscount } from "@root/api/discounts";
|
||||
import { CustomTextField } from "@root/kitUI/CustomTextField";
|
||||
import { DiscountType, discountTypes } from "@root/model/discount";
|
||||
import { ServiceType, SERVICE_LIST } from "@root/model/tariff";
|
||||
import { closeEditDiscountDialog, updateDiscount, useDiscountStore } from "@root/stores/discounts";
|
||||
import { setRealPrivileges, useRealPrivilegeStore } from "@root/stores/privileges";
|
||||
import { resetPrivilegeArray, usePrivilegeStore } from "@root/stores/privilegesStore";
|
||||
import { getDiscountTypeFromLayer } from "@root/utils/discount";
|
||||
import usePrivileges from "@root/utils/hooks/usePrivileges";
|
||||
import { enqueueSnackbar } from "notistack";
|
||||
@ -15,7 +15,7 @@ export default function EditDiscountDialog() {
|
||||
const theme = useTheme();
|
||||
const editDiscountId = useDiscountStore(state => state.editDiscountId);
|
||||
const discounts = useDiscountStore(state => state.discounts);
|
||||
const privileges = useRealPrivilegeStore(state => state.privileges);
|
||||
const privileges = usePrivilegeStore(state => state.privileges);
|
||||
const [serviceType, setServiceType] = useState<ServiceType>("templategen");
|
||||
const [discountType, setDiscountType] = useState<DiscountType>("purchasesAmount");
|
||||
const [discountNameField, setDiscountNameField] = useState<string>("");
|
||||
@ -28,7 +28,7 @@ export default function EditDiscountDialog() {
|
||||
|
||||
const discount = discounts.find(discount => discount.ID === editDiscountId);
|
||||
|
||||
usePrivileges({ onNewPrivileges: setRealPrivileges });
|
||||
usePrivileges({ onNewPrivileges: resetPrivilegeArray });
|
||||
|
||||
useEffect(function setDiscountFields() {
|
||||
if (!discount) return;
|
||||
|
@ -1,91 +0,0 @@
|
||||
import { Privilege } from "@root/model/tariff";
|
||||
import { create } from "zustand";
|
||||
import { devtools } from "zustand/middleware";
|
||||
import { exampleCartValues } from "./mocks/exampleCartValues";
|
||||
import { RealPrivilege } from "@root/model/privilege";
|
||||
|
||||
interface RealPrivilegeStore {
|
||||
privileges: RealPrivilege[];
|
||||
}
|
||||
|
||||
export const useRealPrivilegeStore = create<RealPrivilegeStore>()(
|
||||
devtools(
|
||||
(set, get) => ({
|
||||
privileges: [],
|
||||
}),
|
||||
{
|
||||
name: "Privilege store",
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
export const setRealPrivileges = (privileges: RealPrivilegeStore["privileges"]) => useRealPrivilegeStore.setState({ privileges });
|
||||
|
||||
|
||||
/** @deprecated */
|
||||
interface PrivilegeStore {
|
||||
privileges: Privilege[];
|
||||
isModalOpen: boolean;
|
||||
modalPrivilegeId: string | null;
|
||||
modalPriceField: string;
|
||||
addPrivileges: (newPrivileges: Privilege[]) => void;
|
||||
}
|
||||
|
||||
/** @deprecated */
|
||||
export const usePrivilegeStore = create<PrivilegeStore>()(
|
||||
devtools(
|
||||
(set, get) => ({
|
||||
privileges: exampleCartValues.privileges,
|
||||
isModalOpen: false,
|
||||
modalPrivilegeId: null,
|
||||
modalPriceField: "",
|
||||
addPrivileges: (newPrivileges) => set((state) => ({ privileges: [...state.privileges, ...newPrivileges] })),
|
||||
}),
|
||||
{
|
||||
name: "Mock Privilege store",
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
/** @deprecated */
|
||||
export const closePrivilegePriceModal = () => usePrivilegeStore.setState({ isModalOpen: false });
|
||||
|
||||
/** @deprecated */
|
||||
export const openPrivilegePriceModal = (modalPrivilegeId: string | null, defaultPrice: number) =>
|
||||
usePrivilegeStore.setState({
|
||||
isModalOpen: true,
|
||||
modalPriceField: defaultPrice.toString(),
|
||||
modalPrivilegeId,
|
||||
});
|
||||
|
||||
/** @deprecated */
|
||||
export const changeModalPriceField = (modalPriceField: string) => usePrivilegeStore.setState({ modalPriceField });
|
||||
|
||||
/** @deprecated */
|
||||
export const changePrivilegePrice = () => {
|
||||
const { privileges, modalPrivilegeId, modalPriceField } = usePrivilegeStore.getState();
|
||||
|
||||
const privilegeIndex = privileges.findIndex((privilege) => privilege.privilegeId === modalPrivilegeId);
|
||||
if (privilegeIndex === -1) throw new Error("Privilege not found by id");
|
||||
|
||||
const price = parseFloat(modalPriceField.replace(",", "."));
|
||||
if (!isFinite(price)) return "Error parsing price";
|
||||
|
||||
const newPrivilege: Privilege = {
|
||||
...privileges[privilegeIndex],
|
||||
price: price,
|
||||
};
|
||||
|
||||
const newPrivileges = [...privileges];
|
||||
newPrivileges.splice(privilegeIndex, 1, newPrivilege);
|
||||
|
||||
usePrivilegeStore.setState({
|
||||
privileges: newPrivileges,
|
||||
isModalOpen: false,
|
||||
});
|
||||
};
|
||||
|
||||
/** @deprecated */
|
||||
export const findPrivilegeById = (privilegeId: string) => {
|
||||
return usePrivilegeStore.getState().privileges.find((privilege) => privilege.privilegeId === privilegeId) ?? null;
|
||||
};
|
@ -1,7 +1,5 @@
|
||||
import { Privilege } from "@root/model/tariff";
|
||||
import { create } from "zustand";
|
||||
import { devtools } from "zustand/middleware";
|
||||
import { exampleCartValues } from "./mocks/exampleCartValues";
|
||||
import { RealPrivilege } from "@root/model/privilege";
|
||||
|
||||
interface RealPrivilegeStore {
|
||||
@ -21,74 +19,6 @@ export const usePrivilegeStore = create<RealPrivilegeStore>()(
|
||||
|
||||
export const resetPrivilegeArray = (privileges: RealPrivilegeStore["privileges"]) => usePrivilegeStore.setState({ privileges });
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/** @deprecated */
|
||||
// interface PrivilegeStore {
|
||||
// privileges: Privilege[];
|
||||
// isModalOpen: boolean;
|
||||
// modalPrivilegeId: string | null;
|
||||
// modalPriceField: string;
|
||||
// addPrivileges: (newPrivileges: Privilege[]) => void;
|
||||
// }
|
||||
|
||||
/** @deprecated */
|
||||
// export const usePrivilegeStore = create<PrivilegeStore>()(
|
||||
// devtools(
|
||||
// (set, get) => ({
|
||||
// privileges: exampleCartValues.privileges,
|
||||
// isModalOpen: false,
|
||||
// modalPrivilegeId: null,
|
||||
// modalPriceField: "",
|
||||
// addPrivileges: (newPrivileges) => set((state) => ({ privileges: [...state.privileges, ...newPrivileges] })),
|
||||
// }),
|
||||
// {
|
||||
// name: "Mock Privilege store",
|
||||
// }
|
||||
// )
|
||||
// );
|
||||
|
||||
// /** @deprecated */
|
||||
// export const closePrivilegePriceModal = () => usePrivilegeStore.setState({ isModalOpen: false });
|
||||
|
||||
// /** @deprecated */
|
||||
// export const openPrivilegePriceModal = (modalPrivilegeId: string | null, defaultPrice: number) =>
|
||||
// usePrivilegeStore.setState({
|
||||
// isModalOpen: true,
|
||||
// modalPriceField: defaultPrice.toString(),
|
||||
// modalPrivilegeId,
|
||||
// });
|
||||
|
||||
// /** @deprecated */
|
||||
// export const changeModalPriceField = (modalPriceField: string) => usePrivilegeStore.setState({ modalPriceField });
|
||||
|
||||
// /** @deprecated */
|
||||
// export const changePrivilegePrice = () => {
|
||||
// const { privileges, modalPrivilegeId, modalPriceField } = usePrivilegeStore.getState();
|
||||
|
||||
// const privilegeIndex = privileges.findIndex((privilege) => privilege.privilegeId === modalPrivilegeId);
|
||||
// if (privilegeIndex === -1) throw new Error("Privilege not found by id");
|
||||
|
||||
// const price = parseFloat(modalPriceField.replace(",", "."));
|
||||
// if (!isFinite(price)) return "Error parsing price";
|
||||
|
||||
// const newPrivilege: Privilege = {
|
||||
// ...privileges[privilegeIndex],
|
||||
// price: price,
|
||||
// };
|
||||
|
||||
// const newPrivileges = [...privileges];
|
||||
// newPrivileges.splice(privilegeIndex, 1, newPrivilege);
|
||||
|
||||
// usePrivilegeStore.setState({
|
||||
// privileges: newPrivileges,
|
||||
// isModalOpen: false,
|
||||
// });
|
||||
// };
|
||||
|
||||
/** @deprecated */
|
||||
export const findPrivilegeById = (privilegeId: string) => {
|
||||
return usePrivilegeStore.getState().privileges.find((privilege) => privilege.privilegeId === privilegeId) ?? null;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user