import React, { useState, useEffect } from "react"; import { Box, Typography, IconButton, Drawer, List, ListItem, Button, Link, } from "@mui/material"; import MenuIcon from "@mui/icons-material/Menu"; import logo from "../assets/icon/autobro.png"; import { useResponsive } from "../theme/useResponsive"; import Feedback from "./Feedback"; import { scrollToAnchor } from "../utils/scrollUtils"; import { useNavigate } from "react-router-dom"; const Header = () => { const { isMobile } = useResponsive(); const [drawerOpen, setDrawerOpen] = useState(false); const [feedbackOpen, setFeedbackOpen] = useState(false); const [scrolled, setScrolled] = useState(false); const navigate = useNavigate(); const menuItems = [ // { title: "", anchor: "#main" }, { title: "О нас", anchor: "#about-us" }, { title: "Этапы работы", anchor: "#stages" }, { title: "В наличии", anchor: "#available" }, { title: "Калькулятор", anchor: "#calculator" }, { title: "Команда", anchor: "#team" }, { title: "Отзывы", anchor: "#reviews" }, { title: "Контакты", anchor: "#contacts" }, // { title: "Доставленные авто", anchor: "#delivered" }, ]; // Отслеживание скролла useEffect(() => { const handleScroll = () => { if (window.scrollY > 10) { setScrolled(true); } else { setScrolled(false); } }; window.addEventListener("scroll", handleScroll); return () => { window.removeEventListener("scroll", handleScroll); }; }, []); const toggleDrawer = (open: boolean) => (event: React.KeyboardEvent | React.MouseEvent) => { if ( event.type === "keydown" && ((event as React.KeyboardEvent).key === "Tab" || (event as React.KeyboardEvent).key === "Shift") ) { return; } setDrawerOpen(open); }; // Используем глобальную функцию из utils const handleScrollToAnchor = (anchor: string) => { if (location.pathname.startsWith("/car")) { navigate("/"); } else { scrollToAnchor(anchor, setDrawerOpen, isMobile); } }; return ( <> handleScrollToAnchor("#main")} sx={{ width: isMobile ? "17vw" : "9vw", height: isMobile ? "6vw" : "2.8vw", mb: "0.5vw", cursor: "pointer", "&:hover": { scale: 1.1 }, transition: "all 0.4s ease", }} > {isMobile ? ( ) : ( // Desktop menu menuItems.map((item, index) => ( handleScrollToAnchor(item.anchor)} underline="none" sx={{ fontFamily: "Unbounded", fontSize: "1.2vw", cursor: "pointer", color: "white", "&:hover": { color: "#C27664" }, transition: "all 0.3s ease", }} > {item.title} )) )} {/* Пустой блок для компенсации фиксированного хедера */} {/* Мобильное меню */} {menuItems.map((item, index) => ( handleScrollToAnchor(item.anchor)} sx={{ cursor: "pointer" }} > {item.title} ))} setFeedbackOpen(false)} handleScrollToAnchor={handleScrollToAnchor} /> ); }; export default Header;