'use client' import FlagEn from 'components/icons/flag-en'; import FlagSv from 'components/icons/flag-sv'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from 'components/ui/dropdown/dropdown'; import { useLocale } from 'next-intl'; import Link from 'next/link'; import { usePathname, useRouter } from 'next/navigation'; import { useState } from 'react'; import { i18n } from '../../../i18n-config'; export default function LocaleSwitcher() { const pathName = usePathname() const locale = useLocale(); const [isOpen, setIsOpen] = useState(false) const router = useRouter(); const redirectedPathName = (locale: string) => { if (!pathName) return '/' const segments = pathName.split('/') segments[1] = locale return segments.join('/') } const handleClick = (e: any, locale: string) => { e.preventDefault() const parent = e.target if (parent.nodeName !== 'LI') { return } let href = '/' const hasChildLink = parent.querySelector('a').href !== null if (hasChildLink) { href = parent.querySelector('a').href } router.push(`${redirectedPathName(locale)}`) setIsOpen(false) } return (
setIsOpen(!isOpen)}>
    {i18n.locales.map((locale) => { let FlagIcon: any FlagIcon = i18n.flags[locale] return ( handleClick(e, locale)} >
  • setIsOpen(false)} href={redirectedPathName(locale)} > {locale}
  • ) })}
) }