diff --git a/hifi-src/src/components/Navbar.jsx b/hifi-src/src/components/Navbar.jsx index e9cfffd..b0ef261 100644 --- a/hifi-src/src/components/Navbar.jsx +++ b/hifi-src/src/components/Navbar.jsx @@ -45,21 +45,13 @@ const LANGUAGE_OPTIONS = [ { code: 'en', label: 'English', Flag: FlagGB }, ]; -function LanguageSwitcher({ overHero = false, variant = 'header', onOpenChange }) { +function LanguageSwitcher({ overHero = false, variant = 'header' }) { const { language, setLanguage, t } = useLanguage(); - const [isOpen, setIsOpenState] = useState(false); + const [isOpen, setIsOpen] = useState(false); const containerRef = useRef(null); const current = LANGUAGE_OPTIONS.find((opt) => opt.code === language) || LANGUAGE_OPTIONS[0]; const isHeader = variant === 'header'; - const setIsOpen = (value) => { - setIsOpenState((prev) => { - const next = typeof value === 'function' ? value(prev) : value; - onOpenChange?.(next); - return next; - }); - }; - useEffect(() => { if (!isOpen) return undefined; const handleClickOutside = (e) => { @@ -147,7 +139,6 @@ export default function Navbar() { const [open, setOpen] = useState(false); const [mounted, setMounted] = useState(false); const [menuVisible, setMenuVisible] = useState(false); - const [langMenuOpen, setLangMenuOpen] = useState(false); const { user } = useAuth(); const { phone, whatsapp } = useSiteSettings(); const { t } = useLanguage(); @@ -194,14 +185,6 @@ export default function Navbar() { }, [open, totalItems]); const flyIn = () => `transition-all duration-500 ease-out ${menuVisible ? 'opacity-100' : 'opacity-0'}`; - // Wie flyIn(), aber lässt sich zusätzlich per langMenuOpen abdunkeln - eine einzelne - // opacity-Klasse statt zwei nebeneinander gesetzten, da bei gleichzeitig vorhandenen - // Tailwind-opacity-Klassen die Reihenfolge im generierten CSS (nicht im class-Attribut) - // entscheidet und "opacity-100" die Abdunklung sonst zufällig überschreiben kann. - const flyInDimmable = () => - `transition-all duration-500 ease-out ${ - !menuVisible ? 'opacity-0' : langMenuOpen ? 'pointer-events-none opacity-20' : 'opacity-100' - }`; const flyInStyle = (index) => { const delayIndex = menuVisible ? index : totalItems - 1 - index; return { @@ -291,15 +274,11 @@ export default function Navbar() {
- +
{phone && ( - + {phone} @@ -309,7 +288,7 @@ export default function Navbar() { href={`https://wa.me/${digitsOnly(whatsapp).replace(/^0/, '49').replace('+', '')}`} target="_blank" rel="noopener noreferrer" - className={`flex items-center gap-2 text-sm font-semibold uppercase tracking-wide text-neutral-600 hover:text-brand-600 ${flyInDimmable()}`} + className={`flex items-center gap-2 text-sm font-semibold uppercase tracking-wide text-neutral-600 hover:text-brand-600 ${flyIn()}`} style={flyInStyle(7)} >