import React from 'react'; import { NAV_LINKS, ABOUT_CONTEXT_NAV_LINKS, BUSINESS_CONTEXT_NAV_LINKS, EDUCATION_CONTEXT_NAV_LINKS, ACCELERATOR_CONTEXT_NAV_LINKS, SECTION_IDS, APP_NAME, FOOTER_CONTENT } from '../constants'; import { NavLinkItem, CurrentView } from '../types'; import { ChevronRightIcon } from './icons'; import Logo from './Logo'; // Import the new Logo component interface SidebarProps { isOpen: boolean; onClose: () => void; currentView: CurrentView; setCurrentView: (view: CurrentView) => void; isDesktopCollapsed: boolean; } const Sidebar: React.FC = ({ isOpen, onClose, currentView, setCurrentView, isDesktopCollapsed }) => { const scrollToSection = (hash: string) => { if (hash.startsWith('#')) { const sectionId = hash.substring(1); const element = document.getElementById(sectionId); if (element) { element.scrollIntoView({ behavior: 'smooth', block: 'start' }); } else { console.warn(`Element with ID ${sectionId} not found for scrolling.`); } } else { console.warn(`Invalid hash for scrolling: ${hash}`); } }; const handleNavLinkClick = (item: NavLinkItem) => { if (item.targetView) { setCurrentView(item.targetView); setTimeout(() => scrollToSection(item.href), 50); // Increased delay } else { setCurrentView('main'); setTimeout(() => scrollToSection(item.href), 50); // Increased delay } if (window.innerWidth < 768) { // md breakpoint onClose(); } }; const isAboutContextView = ['about', 'mission', 'careers'].includes(currentView); const isBusinessContextView = ['businessLanding', 'businessServices'].includes(currentView); const isEducationContextView = ['educationBusiness', 'educationStudents'].includes(currentView); const isAcceleratorContextView = ['acceleratorAbout', 'acceleratorProjects', 'acceleratorInvestment'].includes(currentView); let linksToRender: NavLinkItem[]; if (isAboutContextView) { linksToRender = ABOUT_CONTEXT_NAV_LINKS; } else if (isBusinessContextView) { linksToRender = BUSINESS_CONTEXT_NAV_LINKS; } else if (isEducationContextView) { linksToRender = EDUCATION_CONTEXT_NAV_LINKS; } else if (isAcceleratorContextView) { linksToRender = ACCELERATOR_CONTEXT_NAV_LINKS; } else { linksToRender = NAV_LINKS; } const getLinkClasses = (item: NavLinkItem) => { let baseClasses = `relative flex items-center p-3 rounded-lg hover:bg-slate-100 transition-colors duration-150 focus:outline-none focus:ring-2 focus:ring-slate-400 focus:bg-slate-100`; if (item.label === 'На Главную') { baseClasses += ' text-slate-500 hover:text-slate-700'; } else { baseClasses += ' text-slate-700 hover:text-slate-900'; } const isActive = (isAboutContextView || isBusinessContextView || isEducationContextView || isAcceleratorContextView) && item.targetView === currentView; if (isActive) { baseClasses += ' bg-slate-200 text-slate-900 font-semibold'; } return baseClasses; }; const sidebarClasses = `h-screen w-72 flex flex-col p-6 transform transition-all duration-300 ease-in-out fixed top-0 left-0 z-40 bg-white/95 backdrop-blur-sm md:bg-white md:z-30 ${isOpen ? 'translate-x-0' : '-translate-x-full'} ${isDesktopCollapsed ? 'md:-translate-x-full' : 'md:translate-x-0'}`; return ( ); }; export default Sidebar;