"use client" import { useCallback, useEffect, useRef, useState } from "react" import { languages } from "@/constants/languages" import styles from "./desktop.module.css" import type { LanguageSwitcherProps } from "@/types/components/current/languageSwitcher" export default function Desktop({ currentLanguage, urls, }: LanguageSwitcherProps) { const [isOpen, setIsOpen] = useState(false) const divRef = useRef(null) function toggleOpen() { setIsOpen((prevIsOpen) => !prevIsOpen) } const close = useCallback(() => { setIsOpen(false) }, [setIsOpen]) useEffect(() => { function handleClickOutside(evt: Event) { const target = evt.target as HTMLElement if (divRef.current && target && !divRef.current.contains(target)) { close() } } if (divRef.current) { document.addEventListener("click", handleClickOutside, false) } return () => { document.removeEventListener("click", handleClickOutside, false) } }, [close]) return (
) }