UNPKG

@wordpress/block-editor

Version:
49 lines (41 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _compose = require("@wordpress/compose"); /** * WordPress dependencies */ /** * Allow scrolling "through" popovers over the canvas. This is only called for * as long as the pointer is over a popover. Do not use React events because it * will bubble through portals. * * @param {Object} scrollableRef */ function usePopoverScroll(scrollableRef) { return (0, _compose.useRefEffect)(node => { if (!scrollableRef) { return; } function onWheel(event) { const { deltaX, deltaY } = event; scrollableRef.current.scrollBy(deltaX, deltaY); } // Tell the browser that we do not call event.preventDefault // See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#improving_scrolling_performance_with_passive_listeners const options = { passive: true }; node.addEventListener('wheel', onWheel, options); return () => { node.removeEventListener('wheel', onWheel, options); }; }, [scrollableRef]); } var _default = usePopoverScroll; exports.default = _default; //# sourceMappingURL=use-popover-scroll.js.map