UNPKG

@gechiui/block-editor

Version:
66 lines (50 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePreParsePatterns = usePreParsePatterns; var _data = require("@gechiui/data"); var _element = require("@gechiui/element"); var _store = require("../store"); /** * GeChiUI dependencies */ /** * Internal dependencies */ const requestIdleCallback = (() => { if (typeof window === 'undefined') { return callback => { setTimeout(() => callback(Date.now()), 0); }; } return window.requestIdleCallback || window.requestAnimationFrame; })(); const cancelIdleCallback = (() => { if (typeof window === 'undefined') { return clearTimeout; } return window.cancelIdleCallback || window.cancelAnimationFrame; })(); function usePreParsePatterns() { const patterns = (0, _data.useSelect)(_select => _select(_store.store).getSettings().__experimentalBlockPatterns, []); (0, _element.useEffect)(() => { if (!(patterns !== null && patterns !== void 0 && patterns.length)) { return; } let handle; let index = -1; const callback = () => { index++; if (index >= patterns.length) { return; } (0, _data.select)(_store.store).__experimentalGetParsedPattern(patterns[index].name); handle = requestIdleCallback(callback); }; handle = requestIdleCallback(callback); return () => cancelIdleCallback(handle); }, [patterns]); return null; } //# sourceMappingURL=pre-parse-patterns.js.map