import React, { useState, useRef, useEffect } from 'react' import { useRouter } from 'next/router' import { useTranslations } from 'next-intl' import { GlobeAltIcon } from '@heroicons/react/outline' import useCloseOnOutsideClick from '@/utils/hooks/useCloseOnOutsideClick' import { useCloseOnEscape } from '@/utils/hooks/useCloseOnEscape' const languages = [ { code: 'en-US', name: 'English' }, { code: 'ar', name: 'العربية' }, { code: 'es', name: 'Español' }, { code: 'fr', name: 'Français' }, { code: 'tr', name: 'Türkçe' }, { code: 'zh-CN', name: '中文(简体)' }, ] export const LanguageSelector = () => { const router = useRouter() const t = useTranslations('LanguageSelector') const { pathname, asPath, query } = router const [isOpen, setIsOpen] = useState(false) const [currentLocale, setCurrentLocale] = useState(router.locale) const dropdownRef = useRef(null) useEffect(() => { const storedLanguage = localStorage.getItem('selectedLanguage') if (storedLanguage && storedLanguage !== router.locale) { router.push({ pathname, query }, asPath, { locale: storedLanguage }) } }, []) useEffect(() => { setCurrentLocale(router.locale) }, [router.locale]) const toggleDropdown = () => setIsOpen(!isOpen) const handleLanguageChange = (lang) => { router.push({ pathname, query }, asPath, { locale: lang.code }) localStorage.setItem('selectedLanguage', lang.code) } const closeDropdown = () => setIsOpen(false) useCloseOnOutsideClick(dropdownRef, closeDropdown) useCloseOnEscape(closeDropdown) return (