UNPKG

@wordpress/block-editor

Version:
44 lines (42 loc) 1.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useScrollIntoView = useScrollIntoView; var _compose = require("@wordpress/compose"); /** * WordPress dependencies */ function useScrollIntoView({ isSelected }) { const prefersReducedMotion = (0, _compose.useReducedMotion)(); return (0, _compose.useRefEffect)(node => { if (isSelected) { const { ownerDocument } = node; const { defaultView } = ownerDocument; if (!defaultView.IntersectionObserver) { return; } const observer = new defaultView.IntersectionObserver(entries => { // Once observing starts, we always get an initial // entry with the intersecting state. if (!entries[0].isIntersecting) { node.scrollIntoView({ behavior: prefersReducedMotion ? 'instant' : 'smooth' }); } observer.disconnect(); }); observer.observe(node); return () => { observer.disconnect(); }; } }, [isSelected]); } //# sourceMappingURL=use-scroll-into-view.js.map