import React, { useState } from "react"; import { Drawer, List, Typography, styled, IconButton, Tooltip, Box } from "@mui/material"; import { ChevronLeft, ChevronRight, Menu as MenuIcon } from "@mui/icons-material"; import MenuItem from "./SidebarMenuComponents/MenuItem"; import SidebarFooter from "./SidebarMenuComponents/SidebarFooter"; const SidebarResizer = styled('div')(({ theme }) => ({ width: "5px", cursor: "ew-resize", backgroundColor: 'transparent', height: "100%", position: "absolute", right: 0, top: 0, transition: 'background-color 0.2s', '&:hover': { backgroundColor: theme.palette.primary.main, }, zIndex: 2 })); const SidebarMenu = ({ data, onOpenTab, sidebarWidth, startResizing }) => { const [collapsed, setCollapsed] = useState(false); const [hovered, setHovered] = useState(false); const handleToggleCollapse = () => { setCollapsed(!collapsed); }; const handleSelectItem = (id, title, children) => { onOpenTab(id, title, children); }; const drawerWidth = collapsed ? 64 : sidebarWidth; return ( setHovered(true)} onMouseLeave={() => setHovered(false)} sx={{ position: 'relative', width: drawerWidth, transition: 'width 0.3s ease', }} > {/* Кнопка сворачивания/разворачивания */} {collapsed ? ( hovered ? : ) : ( )} {/* Содержимое меню */} {!collapsed && ( Меню )} {/* Футер */} {!collapsed && ( )} {/* Ресайзер */} {!collapsed && ( )} ); }; export default SidebarMenu;