PHP 8.2.30
Preview: LanguageDropdown.js Size: 1.62 KB
//proc/thread-self/root/home/byroehnu/easetack.com/resources/js/Frontend/Components/Header/LanguageDropdown.js

import React, { useRef, useState } from "react"
import { Icon } from "@iconify/react"
import { useSelector } from "react-redux"
import { usePage } from "@inertiajs/react"
import { useEffect } from "react"

export default function LanguageDropdown() {
    const { currentLang } = useSelector((state) => state.pages)
    const { lang } = usePage().props
    const [dropdownOpen, setDropdownOpen] = useState(false)
    const dropdownRef = useRef(null)

    const handleToggle = () => setDropdownOpen(!dropdownOpen)

    useEffect(() => {
        const handleClickOutside = (event) => {
            if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
                setDropdownOpen(false)
            }
        }
        document.addEventListener("mousedown", handleClickOutside)
        return () => {
            document.removeEventListener("mousedown", handleClickOutside)
        }
    }, [])

    return (
        <div className="cs_dropdown_wrap" ref={dropdownRef}>
            <button className={`cs_dropdown_toggle_btn${dropdownOpen ? " active" : ""}`} onClick={handleToggle}>
                <Icon icon="iconoir:language" width="24" height="24" />
            </button>
            {dropdownOpen && (
                <ul className="cs_dropdown_list active cs_mp0">
                    {Object.entries(lang.languages).map(([code, lang]) => (
                        <li key={code} className={code === currentLang ? "active" : ""}>
                            <a href={route("change.lang", code)}>{lang.name}</a>
                        </li>
                    ))}
                </ul>
            )}
        </div>
    )
}

Directory Contents

Dirs: 0 × Files: 14

Name Size Perms Modified Actions
490 B lrw-rw-rw- 2025-04-08 04:12:57
Edit Download
3.15 KB lrw-rw-rw- 2025-04-27 09:55:03
Edit Download
8.03 KB lrw-rw-rw- 2025-04-26 11:30:31
Edit Download
10.80 KB lrw-rw-rw- 2025-04-26 11:30:31
Edit Download
13.22 KB lrw-rw-rw- 2025-04-26 11:30:31
Edit Download
11.64 KB lrw-rw-rw- 2025-04-26 11:30:31
Edit Download
8.18 KB lrw-rw-rw- 2025-04-26 11:30:31
Edit Download
8.15 KB lrw-rw-rw- 2025-04-26 11:30:31
Edit Download
7.79 KB lrw-rw-rw- 2025-04-26 11:30:31
Edit Download
10.26 KB lrw-rw-rw- 2025-04-26 11:30:31
Edit Download
7.77 KB lrw-rw-rw- 2025-04-26 11:30:31
Edit Download
11.10 KB lrw-rw-rw- 2025-04-27 09:55:03
Edit Download
1.62 KB lrw-rw-rw- 2025-04-24 07:51:57
Edit Download
4.71 KB lrw-rw-rw- 2025-04-08 04:12:57
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).