Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import { useEffect, useRef } from "react"; import { useDropdownContext } from "../../contexts/DropdownContext.tsx"; import { findClosestPopup } from "../../utils/common/findClosestPopup.ts"; const useDatePicker = () => { const pickerRef = useRef(null); const { registerRef } = useDropdownContext(); useEffect(() => { Iif (pickerRef.current) { registerRef(pickerRef); } const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { Iif (mutation.type === "childList") { mutation.addedNodes.forEach((node) => { const popup = findClosestPopup(node); Iif (popup) { registerRef({ current: popup }); } }); } }); }); observer.observe(document.body, { childList: true, subtree: true, }); return () => observer.disconnect(); }, [pickerRef, registerRef]); return pickerRef; }; export default useDatePicker; |