// Navigation — real JK Media logo (large), creative DE/PL toggle, prominent WhatsApp const { useState, useEffect } = React; // Shared viewport hook — exposed on window for reuse by other components function useIsMobile(maxWidth = 768) { const [m, setM] = useState(() => typeof window !== 'undefined' && window.matchMedia(`(max-width: ${maxWidth}px)`).matches ); useEffect(() => { const mq = window.matchMedia(`(max-width: ${maxWidth}px)`); const on = () => setM(mq.matches); mq.addEventListener('change', on); return () => mq.removeEventListener('change', on); }, [maxWidth]); return m; } window.useIsMobile = useIsMobile; function Nav({ lang, setLang }) { const [scrolled, setScrolled] = useState(false); const [menuOpen, setMenuOpen] = useState(false); const isMobile = useIsMobile(); const waUrl = `https://wa.me/4917645186612?text=${encodeURIComponent( lang === 'de' ? 'Hi Kamil, ich interessiere mich für ein Projekt mit JK Media. Kannst du dich bitte kurz bei mir melden? Danke!' : 'Hej Kamil, mam pomysł na projekt — odezwij się, jak będziesz miał chwilę. Dzięki!' )}`; useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 20); window.addEventListener('scroll', onScroll); return () => window.removeEventListener('scroll', onScroll); }, []); useEffect(() => { document.body.style.overflow = menuOpen ? 'hidden' : ''; return () => { document.body.style.overflow = ''; }; }, [menuOpen]); // Close drawer when going back to desktop useEffect(() => { if (!isMobile) setMenuOpen(false); }, [isMobile]); const t = (de, pl) => lang === 'de' ? de : pl; const links = [ ['#services', t('Leistungen','Usługi')], ['#packages', t('Pakete','Pakiety')], ['#process', t('Prozess','Proces')], ['#team', t('Team','Zespół')] ]; const navHeight = isMobile ? 64 : 84; return ( ); } function LangToggle({ lang, setLang, compact = false }) { return (
{/* Sliding gold pill */}
{['de','pl'].map(l => ( ))}
); } window.Nav = Nav;