import { useState } from "react"; import { Typography, Container, Button, Select, MenuItem, FormControl, InputLabel, useTheme, Box } from "@mui/material"; import { nanoid } from "nanoid"; import { enqueueSnackbar } from "notistack"; import axios from "axios"; import { CustomTextField } from "@root/kitUI/CustomTextField"; import { useCombinedPrivileges } from "@root/hooks/useCombinedPrivileges.hook"; import { Tariff } from "@root/model/tariff"; import { addTariffs } from "@root/stores/tariffs"; import { authStore } from "@root/stores/auth"; export default function CreateTariff() { const theme = useTheme(); const [nameField, setNameField] = useState(""); const [amountField, setAmountField] = useState(""); const [customPriceField, setCustomPriceField] = useState(""); const [privilegeIdField, setPrivilegeIdField] = useState(""); const { mergedPrivileges, isError, errorMessage } = useCombinedPrivileges(); const { token } = authStore(); const findPrivilegeById = (privilegeId: string) => { return mergedPrivileges.find((privilege) => privilege.privilegeId === privilegeId) ?? null; }; const privilege = findPrivilegeById(privilegeIdField); console.log(privilege); function handleCreateTariffClick() { if (nameField === "") { enqueueSnackbar("Пустое название тарифа"); } if (amountField === "") { enqueueSnackbar("Пустое кол-во едениц привилегия"); } if (privilegeIdField === "") { enqueueSnackbar("Невыбрана привилегия"); } const amount = Number(amountField); const customPrice = Number(customPriceField); if (isNaN(amount) || !privilege) return; const newTariff: Tariff = { id: nanoid(5), name: nameField, amount, privilegeId: privilege.privilegeId, customPricePerUnit: customPrice ? customPrice / amount : undefined, }; addTariffs([newTariff]); axios({}) .then((response) => { console.log(response.data); }) .catch((error) => { console.error(error); }); } const createTariff = async () => { try { if (!privilege) { throw new Error("Привилегия не выбрана"); } const { data } = await axios({ url: "https://admin.pena.digital/strator/tariff/", method: "post", headers: { Authorization: `Bearer ${token}`, }, data: { name: nameField, price: Number(customPriceField) * 100, isCustom: false, privilegies: [ { name: privilege.name, privilegeId: privilege.privilegeId, serviceKey: privilege.serviceKey, description: privilege.description, type: privilege.type, value: privilege.value, price: privilege.price, amount: amountField, }, ], }, }); } catch (error) { enqueueSnackbar((error as Error).message); } }; return ( Создание тарифа Привилегия {isError ? ( {errorMessage} ) : ( )} {privilege && ( Имя: {privilege.name} Сервис: {privilege.serviceKey} Единица: {privilege.type} Стандартная цена за единицу: {privilege.price} )} setNameField(e.target.value)} /> setAmountField(e.target.value)} type="number" /> setCustomPriceField(e.target.value)} type="number" /> ); }