UNPKG

@ariakit/react-core

Version:

Ariakit React core

79 lines (77 loc) 2.35 kB
"use client"; import { usePopoverDisclosure } from "../__chunks/NG75I6FS.js"; import "../__chunks/DTOLNWNF.js"; import "../__chunks/GYHYTZZN.js"; import "../__chunks/NJZUP4KO.js"; import { useCompositeItem } from "../__chunks/FIT2LC3L.js"; import "../__chunks/5VQZOHHZ.js"; import "../__chunks/DTXGDDAC.js"; import "../__chunks/MWF5B7KS.js"; import "../__chunks/63N3TCQX.js"; import "../__chunks/FFSBKSAM.js"; import "../__chunks/72IB6YNO.js"; import "../__chunks/J4DPQC5Y.js"; import "../__chunks/WJ7PHYH7.js"; import "../__chunks/US3TW2XI.js"; import "../__chunks/SWN3JYXT.js"; import "../__chunks/Q3KUZPD7.js"; import "../__chunks/45YOMIF3.js"; import { createElement, createHook, forwardRef } from "../__chunks/ILRXHV7V.js"; import { useEvent, useMergeRefs } from "../__chunks/K2XTQB3X.js"; import "../__chunks/YXGXYGQX.js"; // src/composite/composite-overflow-disclosure.ts import { sync } from "@ariakit/core/utils/store"; import { useEffect, useRef, useState } from "react"; var TagName = "button"; var useCompositeOverflowDisclosure = createHook(function useCompositeOverflowDisclosure2({ store, ...props }) { const ref = useRef(null); const [shouldRegisterItem, setShouldRegisterItem] = useState(false); useEffect(() => { return sync(store, ["disclosureElement"], () => { store.setDisclosureElement(ref.current); }); }, [store]); const onFocusProp = props.onFocus; const onFocus = useEvent((event) => { onFocusProp == null ? void 0 : onFocusProp(event); if (event.defaultPrevented) return; setShouldRegisterItem(true); }); const onBlurProp = props.onBlur; const onBlur = useEvent((event) => { onBlurProp == null ? void 0 : onBlurProp(event); if (event.defaultPrevented) return; setShouldRegisterItem(false); }); props = { "aria-hidden": !shouldRegisterItem, ...props, ref: useMergeRefs(props.ref, ref), onFocus, onBlur }; props = useCompositeItem({ ...props, shouldRegisterItem }); props = usePopoverDisclosure({ store, ...props }); return props; }); var CompositeOverflowDisclosure = forwardRef( function CompositeOverflowDisclosure2(props) { const htmlProps = useCompositeOverflowDisclosure(props); return createElement(TagName, htmlProps); } ); export { CompositeOverflowDisclosure, useCompositeOverflowDisclosure };