import { Box, Button, Divider, Badge, Typography, useMediaQuery, useTheme, } from "@mui/material" import TariffPrivilegeSlider from "./TariffItem" import { createAndSendTariff, useCustomTariffsStore, } from "@root/stores/customTariffs" import { cardShadow } from "@root/utils/theme" import { currencyFormatter } from "@root/utils/currencyFormatter" import { Privilege, getMessageFromFetchError } from "@frontend/kitui" import { enqueueSnackbar } from "notistack" import { updateTariffs } from "@root/stores/tariffs" import { addTariffToCart } from "@root/stores/user" interface Props { serviceKey: string; privileges: Privilege[]; } export default function CustomTariffCard({ serviceKey, privileges }: Props) { const theme = useTheme() const upMd = useMediaQuery(theme.breakpoints.up("md")) const summaryPriceBeforeDiscounts = useCustomTariffsStore( (state) => state.summaryPriceBeforeDiscountsMap ) const summaryPriceAfterDiscounts = useCustomTariffsStore( (state) => state.summaryPriceAfterDiscountsMap ) const priceBeforeDiscounts = summaryPriceBeforeDiscounts[serviceKey] ?? 0 const priceAfterDiscounts = summaryPriceAfterDiscounts[serviceKey] ?? 0 async function handleConfirmClick() { const [createTariffResponse, createTariffError] = await createAndSendTariff( serviceKey ) if (createTariffError) { return enqueueSnackbar(createTariffError) } if (createTariffResponse) { updateTariffs([createTariffResponse]) await addTariffToCart(createTariffResponse._id) enqueueSnackbar("Тариф добавлен в корзину") } } return ( {privileges.map((privilege) => ( ))} {!upMd && ( )} Чем больше пакеты, тем дешевле подписки и опции{" "} Сумма с учетом скидки {currencyFormatter.format(priceAfterDiscounts / 100)} {currencyFormatter.format(priceBeforeDiscounts / 100)} ) }