From 744e623bf43447229389f5cd2a90dfb53faa8cb9 Mon Sep 17 00:00:00 2001 From: Antoine M Date: Tue, 13 Feb 2024 19:18:52 +0100 Subject: [PATCH] introducing specific country selct component --- src/components/ui/CountrySelect.jsx | 45 +++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/components/ui/CountrySelect.jsx diff --git a/src/components/ui/CountrySelect.jsx b/src/components/ui/CountrySelect.jsx new file mode 100644 index 0000000..adaf09c --- /dev/null +++ b/src/components/ui/CountrySelect.jsx @@ -0,0 +1,45 @@ +import { useState } from "react"; +import { v4 as uuidv4 } from "uuid"; +import { useWordpressCustomData } from "../../services/WordpressFetchData.js"; +import { useUser } from "../../hooks/useUser.jsx"; + +export default function CountrySelect() { + const availableCountries = useWordpressCustomData("/available-countries"); + const { country, changeCountry } = useUser(); + + const [isSubmenuOpen, setIsSubmenuOpen] = useState(false); + + if (!availableCountries || !country) return
Loading...
; + + function handleChangeCountry(key, value) { + changeCountry({ name: value, iso: key }); + handleShowHideSubmenu(); + } + function handleShowHideSubmenu() { + setIsSubmenuOpen(!isSubmenuOpen); + } + + const countryOptions = Object.keys(availableCountries).map((key, value) => ( +
  • handleChangeCountry(key, availableCountries[key])}> + + {availableCountries[key]} +
  • + )); + + if (!countryOptions) return; + + return ( +
    + + +
    + ); +}