diff --git a/src/components/ui/CountrySelect.jsx b/src/components/ui/CountrySelect.jsx index adaf09c..6ccd7e7 100644 --- a/src/components/ui/CountrySelect.jsx +++ b/src/components/ui/CountrySelect.jsx @@ -1,31 +1,52 @@ -import { useState } from "react"; +import { useCallback, useEffect, useState } from "react"; import { v4 as uuidv4 } from "uuid"; -import { useWordpressCustomData } from "../../services/WordpressFetchData.js"; import { useUser } from "../../hooks/useUser.jsx"; +import CountriesJSON from "../../data/countries/countries.json"; -export default function CountrySelect() { - const availableCountries = useWordpressCustomData("/available-countries"); +export default function CountrySelect({ label }) { const { country, changeCountry } = useUser(); + const { language, screensTranslations } = useUser(); const [isSubmenuOpen, setIsSubmenuOpen] = useState(false); - if (!availableCountries || !country) return
- {availableCountries[key]}
+ const checkEsc = useCallback((event) => {
+ if (event.key === "Escape") {
+ setIsSubmenuOpen(false);
+ }
+ if (event.type === "click") {
+ // !event.target.closest(".country-select")
+ setIsSubmenuOpen(false);
+ console.log("click");
+ }
+ }, []);
+ const checkClick = useCallback((event) => {
+ if (event.type === "click" && !event.target.closest(".country-select")) {
+ setIsSubmenuOpen(false);
+ }
+ }, []);
+
+ useEffect(() => {
+ document.addEventListener("keydown", checkEsc, false);
+ document.addEventListener("click", checkClick, false);
+
+ return () => {
+ document.removeEventListener("keydown", checkEsc, false);
+ document.removeEventListener("click", checkClick, false);
+ };
+ }, [checkEsc, checkClick]);
+
+ const countryOptions = CountriesJSON.map((country) => (
+
+ {country[language.toLowerCase()]}
{label}
+