UNPKG

@konstructio/ui

Version:

A set of reusable and customizable React components built for konstruct.io

24 lines (23 loc) 738 B
import { useMultiSelectDropdown as s } from "../contexts/MultiSelectDropdown.hook.js"; import { useCallback as a, useEffect as u, useRef as c } from "react"; var f = () => { const n = c(null), { onOpen: e } = s(); return u(() => { const t = new AbortController(), r = (o) => { o.key === "Escape" && e(!1); }, l = (o) => { n.current?.contains(o.target) || e(!1); }; return document.addEventListener("keydown", r, { signal: t.signal }), document.addEventListener("mousedown", l, { signal: t.signal }), () => { t.abort(); }; }, [e, n]), { wrapperRef: n, handleOpen: a((t) => { t.target?.closest("[data-value]") || e(!0); }, [e]) }; }; export { f as useMultiSelectDropdown };