UNPKG

@wordpress/block-editor

Version:
57 lines (55 loc) 2.25 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // packages/block-editor/src/components/block-popover/use-popover-scroll.js var use_popover_scroll_exports = {}; __export(use_popover_scroll_exports, { default: () => use_popover_scroll_default }); module.exports = __toCommonJS(use_popover_scroll_exports); var import_compose = require("@wordpress/compose"); var import_dom = require("@wordpress/dom"); var scrollContainerCache = /* @__PURE__ */ new WeakMap(); function usePopoverScroll(contentRef) { const effect = (0, import_compose.useRefEffect)( (node) => { function onWheel(event) { const { deltaX, deltaY, target } = event; const contentEl = contentRef.current; let scrollContainer = scrollContainerCache.get(contentEl); if (!scrollContainer) { scrollContainer = (0, import_dom.getScrollContainer)(contentEl); scrollContainerCache.set(contentEl, scrollContainer); } const eventScrollContainer = (0, import_dom.getScrollContainer)(target); if (!node.contains(eventScrollContainer)) { scrollContainer.scrollBy(deltaX, deltaY); } } const options = { passive: true }; node.addEventListener("wheel", onWheel, options); return () => { node.removeEventListener("wheel", onWheel, options); }; }, [contentRef] ); return contentRef ? effect : null; } var use_popover_scroll_default = usePopoverScroll; //# sourceMappingURL=use-popover-scroll.js.map