import React, { useEffect } from "react"; import { Typography, Drawer, useMediaQuery, useTheme, Box, IconButton, SvgIcon, Icon } from "@mui/material"; import { IconsCreate } from "@root/lib/IconsCreate"; import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import ClearIcon from "@mui/icons-material/Clear"; import { basketStore } from "@root/stores/BasketStore"; import { useState } from "react"; import BasketIcon from "../assets/Icons/BasketIcon.svg"; import SectionWrapper from "./SectionWrapper"; import CustomWrapperDrawer from "./CustomWrapperDrawer"; import CustomButton from "./CustomButton"; import { useNavigate } from "react-router"; interface TabPanelProps { index: number; value: number; children?: React.ReactNode; mt: string; } type basketStore = { name: string; desc: string; id: string; privelegeid: string; amount: number; price: number; }[]; function TabPanel({ index, value, children, mt }: TabPanelProps) { return ( ); } export default function Drawers() { const [tabIndex, setTabIndex] = useState(0); const [basketQuantity, setBasketQuantity] = useState(); const navigate = useNavigate(); const { templ, squiz, reducer, open, openDrawer } = basketStore(); const theme = useTheme(); const upMd = useMediaQuery(theme.breakpoints.up("md")); const newArray: basketStore = [].concat(Object.values(templ), Object.values(squiz), Object.values(reducer)); const sum = newArray.reduce((accamulator, { price }) => (accamulator += price), 0); useEffect(() => { setBasketQuantity(Object.keys(templ).length + Object.keys(squiz).length + Object.keys(reducer).length); }, [templ, squiz, reducer]); return ( {basketQuantity && ( {basketQuantity} )} {!upMd && ( )} Корзина {Object.keys(templ).length > 0 ? : <>} {Object.keys(squiz).length > 0 ? : <>} {Object.keys(reducer).length > 0 ? : <>} Итоговая цена Текст-заполнитель — это текст, который имеет Текст-заполнитель — это текст, который имеет Текст-заполнитель — это текст, который имеет Текст-заполнитель — это текст, который имеет Текст-заполнитель 20 190 руб. {sum} руб. navigate("/basket")} sx={{ mt: "25px", backgroundColor: theme.palette.brightPurple.main, }} > Оплатить ); }