UNPKG

@modern-kit/react

Version:
39 lines (36 loc) 1.53 kB
import { jsx } from 'react/jsx-runtime'; import React from 'react'; import { useOutsidePointerDown } from '../../hooks/useOutsidePointerDown/index.mjs'; import { useMergeRefs } from '../../hooks/useMergeRefs/index.mjs'; import { polymorphicForwardRef } from '../../utils/polymorphicForwardRef/index.mjs'; import { Slot } from '../Slot/index.mjs'; import '@modern-kit/utils'; import '../../hooks/useEventListener/index.mjs'; import '../../hooks/usePreservedCallback/index.mjs'; import '../../hooks/useIsomorphicLayoutEffect/index.mjs'; import '../../utils/mergeRefs/index.mjs'; const OUTSIDE_POINTER_DOWN_HANDLER_ERROR_MESSAGE = "OutsidePointerDownHandler\uB294 asChild\uAC00 true\uC77C \uACBD\uC6B0 children\uC73C\uB85C \uC720\uD6A8\uD55C React \uC694\uC18C\uB9CC\uC744 \uD5C8\uC6A9\uD569\uB2C8\uB2E4. \uB610\uD55C, \uB2E8\uC77C \uC694\uC18C\uB9CC \uD5C8\uC6A9\uD569\uB2C8\uB2E4."; const OutsidePointerDownHandler = polymorphicForwardRef( ({ children, as = "div", asChild = false, onPointerDown, excludeRefs = [], ...props }, ref) => { const { ref: targetRef } = useOutsidePointerDown( onPointerDown, { excludeRefs } ); const Wrapper = asChild ? Slot : as; if (asChild && !React.isValidElement(children)) { throw new Error(OUTSIDE_POINTER_DOWN_HANDLER_ERROR_MESSAGE); } return /* @__PURE__ */ jsx(Wrapper, { ref: useMergeRefs(targetRef, ref), ...props, children }); } ); export { OutsidePointerDownHandler }; //# sourceMappingURL=index.mjs.map