import { Typography, Container, Button, Select, MenuItem, FormControl, InputLabel, TextField, useTheme, Box } from "@mui/material"; import { Tariff } from "@root/model/tariff"; import { usePrivilegeStore } from "@root/stores/privileges"; import { useTariffStore } from "@root/stores/tariffs"; import { nanoid } from "nanoid"; import { ChangeEvent, HTMLInputTypeAttribute, useState } from "react"; export default function CreateTariff() { const theme = useTheme(); const privileges = usePrivilegeStore(store => store.privileges); const addTariffs = useTariffStore(store => store.addTariffs); const [nameField, setNameField] = useState(""); const [amountField, setAmountField] = useState(""); const [customPriceField, setCustomPriceField] = useState(""); const [privilegeIdField, setPrivilegeIdField] = useState(""); const privilege = privileges.find(p => p.privilegeId === privilegeIdField); function handleCreateTariffClick() { const amount = Number(amountField); const customPricePerUnit = Number(customPriceField); if (isNaN(amount) || !privilege) return; const newTariff: Tariff = { id: nanoid(5), name: nameField, amount, privilege, customPricePerUnit: customPricePerUnit ? customPricePerUnit : undefined, }; addTariffs([newTariff]); } return ( Создание кастомного тарифа Привелегия {privilege && Имя: {privilege.name} Сервис: {privilege.serviceKey} Единица: {privilege.type} Стандартная цена за единицу: {privilege.pricePerUnit} } setNameField(e.target.value)} /> setAmountField(e.target.value)} type="number" /> setCustomPriceField(e.target.value)} type="number" /> ); } function CustomTextField({ id, label, value, type, setValue }: { id: string; label: string; value: number | string | null; type?: HTMLInputTypeAttribute; setValue: (e: ChangeEvent) => void; }) { const theme = useTheme(); return ( ); }