// import { useState, useEffect } from 'react' // import { Link } from 'react-router-dom' // import logo from '../assets/images/logo200x50.png' // import { ScrollRestoration } from 'react-router-dom'; // export default function Header() { // const [isScrolled, setIsScrolled] = useState(false) // useEffect(() => { // const handleScroll = () => { // const isFullScreenPassed = window.scrollY > window.innerHeight // setIsScrolled(isFullScreenPassed) // } // window.addEventListener('scroll', handleScroll) // return () => window.removeEventListener('scroll', handleScroll) // }, []) // return ( //
//
//
//
// // Logo // //
// //
//
//
// ) // } // import { useState, useEffect } from 'react'; // import { Link } from 'react-router-dom'; // import logo from '../assets/images/logo200x50.png'; // import translations from '../translations.json'; // import { useLanguage } from '../contexts/LanguageContext'; // import { CustomLink } from './CustomLink'; // export default function Header() { // const [isScrolled, setIsScrolled] = useState(false); // const { language, toggleLanguage } = useLanguage(); // const t = translations.header[language]; // useEffect(() => { // const handleScroll = () => { // const isFullScreenPassed = window.scrollY > window.innerHeight; // setIsScrolled(isFullScreenPassed); // }; // window.addEventListener('scroll', handleScroll); // return () => window.removeEventListener('scroll', handleScroll); // }, []); // return ( //
//
//
//
// // Logo // //
// //
//
//
// ); // } // import { useState, useEffect } from 'react'; // import logo from '../assets/images/logo200x50.png'; // import translations from '../translations.json'; // import { useLanguage } from '../contexts/LanguageContext'; // import { CustomLink } from './CustomLink'; // import LanguageSwitcher from './LanguageSwitcher'; // import { ScrollLink } from './ScrollLink'; // export default function Header() { // const [isScrolled, setIsScrolled] = useState(false); // const { language } = useLanguage(); // const t = translations.header[language]; // useEffect(() => { // const handleScroll = () => { // const isFullScreenPassed = window.scrollY > window.innerHeight; // setIsScrolled(isFullScreenPassed); // }; // window.addEventListener('scroll', handleScroll); // return () => window.removeEventListener('scroll', handleScroll); // }, []); // return ( //
//
//
//
// // Logo // //
// //
//
//
// ); // } import { useState, useEffect } from 'react'; import { useLocation } from 'react-router-dom'; import { Menu, X } from 'lucide-react'; import logo from '../assets/images/logo200x50.png'; import translations from '../translations.json'; import { useLanguage } from '../contexts/LanguageContext'; import { CustomLink } from './CustomLink'; import LanguageSwitcher from './LanguageSwitcher'; import { ScrollLink } from './ScrollLink'; export default function Header() { const [isScrolled, setIsScrolled] = useState(false); const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); const { language } = useLanguage(); const t = translations.header[language]; const location = useLocation(); useEffect(() => { const handleScroll = () => { const isFullScreenPassed = window.scrollY > window.innerHeight; setIsScrolled(isFullScreenPassed); }; window.addEventListener('scroll', handleScroll); return () => window.removeEventListener('scroll', handleScroll); }, []); // Закрываем мобильное меню при смене маршрута useEffect(() => { setIsMobileMenuOpen(false); }, [location]); const headerBg = isScrolled ? 'bg-white bg-opacity-90 backdrop-blur-md' : 'bg-transparent backdrop-blur-md bg-opacity-30'; const textColor = isScrolled ? 'text-gray-800 hover:text-gray-600' : 'text-white hover:text-gray-200'; return (
{/* Логотип */}
Logo
{/* Десктопная навигация */} {/* Кнопка мобильного меню */}
{/* Мобильное меню */} {isMobileMenuOpen && (
{t.pricing} {t.feedback}
)}
); }