UNPKG

@gechiui/block-editor

Version:
57 lines (45 loc) 1.36 kB
/** * GeChiUI dependencies */ import { useSelect, select } from '@gechiui/data'; import { useEffect } from '@gechiui/element'; /** * Internal dependencies */ import { store as blockEditorStore } from '../store'; 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; })(); export function usePreParsePatterns() { const patterns = useSelect(_select => _select(blockEditorStore).getSettings().__experimentalBlockPatterns, []); useEffect(() => { if (!(patterns !== null && patterns !== void 0 && patterns.length)) { return; } let handle; let index = -1; const callback = () => { index++; if (index >= patterns.length) { return; } select(blockEditorStore).__experimentalGetParsedPattern(patterns[index].name); handle = requestIdleCallback(callback); }; handle = requestIdleCallback(callback); return () => cancelIdleCallback(handle); }, [patterns]); return null; } //# sourceMappingURL=pre-parse-patterns.js.map