import { KeyboardEvent, useRef, useState } from "react"; import { enqueueSnackbar } from "notistack"; import { Box, IconButton, TextField, Tooltip, Typography } from "@mui/material"; import ModeEditOutlineOutlinedIcon from "@mui/icons-material/ModeEditOutlineOutlined"; import { PrivilegeWithAmount } from "@frontend/kitui"; import { putPrivilege } from "@root/api/privilegies"; interface CardPrivilege { privilege: PrivilegeWithAmount; } export const СardPrivilege = ({ privilege }: CardPrivilege) => { const [inputOpen, setInputOpen] = useState(false); const [inputValue, setInputValue] = useState(""); const priceRef = useRef(null); const translationType = { count: "за единицу", day: "за день", mb: "за МБ", }; const putPrivileges = async () => { const [_, putedPrivilegeError] = await putPrivilege({ name: privilege.name, privilegeId: privilege.privilegeId, serviceKey: privilege.serviceKey, description: privilege.description, amount: 1, type: privilege.type, value: privilege.value, price: 100 * Number(inputValue), }); if (putedPrivilegeError) { return enqueueSnackbar(putedPrivilegeError); } if (!priceRef.current) { return; } priceRef.current.innerText = "price: " + inputValue; setInputValue(""); setInputOpen(false); }; const onTextfieldKeyDown = (event: KeyboardEvent) => { if (event.key === "Escape") { return setInputOpen(false); } if (event.key === "Enter" && inputValue !== "") { putPrivileges(); setInputOpen(false); } }; return ( {privilege.name} {privilege.description}} > setInputOpen(!inputOpen)}> {inputOpen ? ( setInputValue(event.target.value)} sx={{ alignItems: "center", width: "400px", "& .MuiInputBase-root": { backgroundColor: "#F2F3F7", height: "48px", }, }} inputProps={{ sx: { borderRadius: "10px", fontSize: "18px", lineHeight: "21px", py: 0, }, }} /> ) : (
price: {privilege.price / 100}
)} {translationType[privilege.type]}
); };