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;