How to close Dropdown when user click on one item? #1870
-
hey Guys! |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 4 replies
-
If Using Method 1 from the docs (
|
Beta Was this translation helpful? Give feedback.
-
In svelte you can do it like this <script lang="ts">
let openDropdown: boolean = false
function handleClickItem() {
// close it
openDropdown = false
}
</script>
<details class="dropdown" bind:open="{openDropdown}">
<summary class="m-1 btn">open or close</summary>
<ul class="p-2 shadow menu dropdown-content z-[1] bg-base-100 rounded-box w-52">
<li>
<a on:click={handleClickItem}>Item 1</a>
</li>
<li>
<a on:click={handleClickItem}>Item 2</a>
</li>
</ul>
</details> |
Beta Was this translation helpful? Give feedback.
-
i use react ts import { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import { HiOutlineLanguage } from "react-icons/hi2";
import { LANGUAGES } from "../../common/constants";
export default function LanguageDropdown() {
const { i18n } = useTranslation("global");
const [isOpen, setIsOpen] = useState(false);
useEffect(() => {
document.documentElement.lang = i18n.language;
}, [i18n.language]);
function changeLanguage(lang: string) {
i18n.changeLanguage(lang);
document.documentElement.lang = lang;
// document.querySelector("#langSelector")? = false;
setIsOpen(false);
}
const handleChangeLanguage = (
e: React.MouseEvent<HTMLAnchorElement, MouseEvent>
) => {
changeLanguage(e.currentTarget.dataset.value!);
e.currentTarget.blur();
};
return (
<div className="p-1 dropdown dropdown-bottom dropdown-end">
<details id="langSelector" open={isOpen}>
<summary className="btn btn-ghost btn-sm rounded-btn">
<HiOutlineLanguage className="h-6 w-6" />
</summary>
<ul className="menu dropdown-content z-[1] bg-base-100 rounded-box w-52 p-2 shadow">
{LANGUAGES.map((lang) => (
<li key={lang.code}>
<a data-value={lang.code} onClick={handleChangeLanguage}>
{lang.label}
</a>
</li>
))}
</ul>
</details>
</div>
);
} i have used is this because of this issue? #3382 |
Beta Was this translation helpful? Give feedback.
If Using Method 1 from the docs (
<details>
tag):