@wordpress/block-editor 12.8.1 → 12.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +5 -12
- package/build/components/block-list/block-outline.native.js +4 -3
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/index.js +4 -3
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-popover/inbetween.js +4 -5
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +3 -2
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/color-style-selector/index.js +1 -1
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +7 -4
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-results.native.js +10 -8
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/link-control/index.js +1 -7
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +48 -7
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +3 -3
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/index.js +14 -8
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-list-view-images.js +5 -4
- package/build/components/list-view/use-list-view-images.js.map +1 -1
- package/build/components/preview-options/index.js +3 -1
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/provider/index.js +3 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +74 -63
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/warning/index.js +1 -1
- package/build/components/warning/index.js.map +1 -1
- package/build/hooks/auto-inserting-blocks.js +174 -0
- package/build/hooks/auto-inserting-blocks.js.map +1 -0
- package/build/hooks/index.js +1 -0
- package/build/hooks/index.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +4 -3
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/index.js +4 -3
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +4 -5
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +3 -2
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/color-style-selector/index.js +1 -1
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +8 -4
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js +11 -8
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/link-control/index.js +1 -7
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +48 -7
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +3 -3
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/index.js +14 -8
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-list-view-images.js +5 -4
- package/build-module/components/list-view/use-list-view-images.js.map +1 -1
- package/build-module/components/preview-options/index.js +3 -1
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/provider/index.js +3 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +74 -63
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/warning/index.js +2 -2
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/hooks/auto-inserting-blocks.js +167 -0
- package/build-module/hooks/auto-inserting-blocks.js.map +1 -0
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-style/content-rtl.css +8 -7
- package/build-style/content.css +8 -7
- package/package.json +32 -32
- package/src/components/block-list/block-outline.native.js +5 -2
- package/src/components/block-list/content.scss +2 -3
- package/src/components/block-list/index.js +4 -3
- package/src/components/block-popover/inbetween.js +4 -3
- package/src/components/block-popover/index.js +3 -2
- package/src/components/button-block-appender/content.scss +8 -0
- package/src/components/color-style-selector/index.js +1 -1
- package/src/components/inserter/reusable-blocks-tab.native.js +7 -2
- package/src/components/inserter/search-results.native.js +13 -9
- package/src/components/link-control/index.js +1 -5
- package/src/components/link-control/test/index.js +1 -0
- package/src/components/list-view/block-select-button.js +67 -15
- package/src/components/list-view/drop-indicator.js +4 -5
- package/src/components/list-view/index.js +19 -13
- package/src/components/list-view/use-list-view-images.js +8 -4
- package/src/components/observe-typing/README.md +2 -2
- package/src/components/preview-options/index.js +2 -0
- package/src/components/provider/index.js +8 -1
- package/src/components/use-block-commands/index.js +92 -88
- package/src/components/warning/index.js +2 -2
- package/src/hooks/auto-inserting-blocks.js +232 -0
- package/src/hooks/index.js +1 -0
- package/build/utils/pre-parse-patterns.js +0 -68
- package/build/utils/pre-parse-patterns.js.map +0 -1
- package/build-module/utils/pre-parse-patterns.js +0 -61
- package/build-module/utils/pre-parse-patterns.js.map +0 -1
- package/src/components/url-popover/test/__snapshots__/index.js.snap +0 -133
- package/src/components/url-popover/test/index.js +0 -75
- package/src/utils/pre-parse-patterns.js +0 -69
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useSelect, select } from '@wordpress/data';
|
|
5
|
-
import { useEffect } from '@wordpress/element';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Internal dependencies
|
|
9
|
-
*/
|
|
10
|
-
import { store as blockEditorStore } from '../store';
|
|
11
|
-
const requestIdleCallback = (() => {
|
|
12
|
-
if (typeof window === 'undefined') {
|
|
13
|
-
return callback => {
|
|
14
|
-
setTimeout(() => callback(Date.now()), 0);
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
return window.requestIdleCallback || window.requestAnimationFrame;
|
|
18
|
-
})();
|
|
19
|
-
const cancelIdleCallback = (() => {
|
|
20
|
-
if (typeof window === 'undefined') {
|
|
21
|
-
return clearTimeout;
|
|
22
|
-
}
|
|
23
|
-
return window.cancelIdleCallback || window.cancelAnimationFrame;
|
|
24
|
-
})();
|
|
25
|
-
export function usePreParsePatterns() {
|
|
26
|
-
const {
|
|
27
|
-
patterns,
|
|
28
|
-
isPreviewMode
|
|
29
|
-
} = useSelect(_select => {
|
|
30
|
-
const {
|
|
31
|
-
__experimentalBlockPatterns,
|
|
32
|
-
__unstableIsPreviewMode
|
|
33
|
-
} = _select(blockEditorStore).getSettings();
|
|
34
|
-
return {
|
|
35
|
-
patterns: __experimentalBlockPatterns,
|
|
36
|
-
isPreviewMode: __unstableIsPreviewMode
|
|
37
|
-
};
|
|
38
|
-
}, []);
|
|
39
|
-
useEffect(() => {
|
|
40
|
-
if (isPreviewMode) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
if (!patterns?.length) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
let handle;
|
|
47
|
-
let index = -1;
|
|
48
|
-
const callback = () => {
|
|
49
|
-
index++;
|
|
50
|
-
if (index >= patterns.length) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
select(blockEditorStore).__experimentalGetParsedPattern(patterns[index].name);
|
|
54
|
-
handle = requestIdleCallback(callback);
|
|
55
|
-
};
|
|
56
|
-
handle = requestIdleCallback(callback);
|
|
57
|
-
return () => cancelIdleCallback(handle);
|
|
58
|
-
}, [patterns, isPreviewMode]);
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=pre-parse-patterns.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useSelect","select","useEffect","store","blockEditorStore","requestIdleCallback","window","callback","setTimeout","Date","now","requestAnimationFrame","cancelIdleCallback","clearTimeout","cancelAnimationFrame","usePreParsePatterns","patterns","isPreviewMode","_select","__experimentalBlockPatterns","__unstableIsPreviewMode","getSettings","length","handle","index","__experimentalGetParsedPattern","name"],"sources":["@wordpress/block-editor/src/utils/pre-parse-patterns.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\n\nconst requestIdleCallback = ( () => {\n\tif ( typeof window === 'undefined' ) {\n\t\treturn ( callback ) => {\n\t\t\tsetTimeout( () => callback( Date.now() ), 0 );\n\t\t};\n\t}\n\n\treturn window.requestIdleCallback || window.requestAnimationFrame;\n} )();\n\nconst cancelIdleCallback = ( () => {\n\tif ( typeof window === 'undefined' ) {\n\t\treturn clearTimeout;\n\t}\n\n\treturn window.cancelIdleCallback || window.cancelAnimationFrame;\n} )();\n\nexport function usePreParsePatterns() {\n\tconst { patterns, isPreviewMode } = useSelect( ( _select ) => {\n\t\tconst { __experimentalBlockPatterns, __unstableIsPreviewMode } =\n\t\t\t_select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tpatterns: __experimentalBlockPatterns,\n\t\t\tisPreviewMode: __unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( isPreviewMode ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( ! patterns?.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet handle;\n\t\tlet index = -1;\n\n\t\tconst callback = () => {\n\t\t\tindex++;\n\t\t\tif ( index >= patterns.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tselect( blockEditorStore ).__experimentalGetParsedPattern(\n\t\t\t\tpatterns[ index ].name\n\t\t\t);\n\n\t\t\thandle = requestIdleCallback( callback );\n\t\t};\n\n\t\thandle = requestIdleCallback( callback );\n\t\treturn () => cancelIdleCallback( handle );\n\t}, [ patterns, isPreviewMode ] );\n\n\treturn null;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,iBAAiB;AACnD,SAASC,SAAS,QAAQ,oBAAoB;;AAE9C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,UAAU;AAEpD,MAAMC,mBAAmB,GAAG,CAAE,MAAM;EACnC,IAAK,OAAOC,MAAM,KAAK,WAAW,EAAG;IACpC,OAASC,QAAQ,IAAM;MACtBC,UAAU,CAAE,MAAMD,QAAQ,CAAEE,IAAI,CAACC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAE,CAAC;IAC9C,CAAC;EACF;EAEA,OAAOJ,MAAM,CAACD,mBAAmB,IAAIC,MAAM,CAACK,qBAAqB;AAClE,CAAC,EAAG,CAAC;AAEL,MAAMC,kBAAkB,GAAG,CAAE,MAAM;EAClC,IAAK,OAAON,MAAM,KAAK,WAAW,EAAG;IACpC,OAAOO,YAAY;EACpB;EAEA,OAAOP,MAAM,CAACM,kBAAkB,IAAIN,MAAM,CAACQ,oBAAoB;AAChE,CAAC,EAAG,CAAC;AAEL,OAAO,SAASC,mBAAmBA,CAAA,EAAG;EACrC,MAAM;IAAEC,QAAQ;IAAEC;EAAc,CAAC,GAAGjB,SAAS,CAAIkB,OAAO,IAAM;IAC7D,MAAM;MAAEC,2BAA2B;MAAEC;IAAwB,CAAC,GAC7DF,OAAO,CAAEd,gBAAiB,CAAC,CAACiB,WAAW,CAAC,CAAC;IAC1C,OAAO;MACNL,QAAQ,EAAEG,2BAA2B;MACrCF,aAAa,EAAEG;IAChB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEPlB,SAAS,CAAE,MAAM;IAChB,IAAKe,aAAa,EAAG;MACpB;IACD;IACA,IAAK,CAAED,QAAQ,EAAEM,MAAM,EAAG;MACzB;IACD;IAEA,IAAIC,MAAM;IACV,IAAIC,KAAK,GAAG,CAAC,CAAC;IAEd,MAAMjB,QAAQ,GAAGA,CAAA,KAAM;MACtBiB,KAAK,EAAE;MACP,IAAKA,KAAK,IAAIR,QAAQ,CAACM,MAAM,EAAG;QAC/B;MACD;MAEArB,MAAM,CAAEG,gBAAiB,CAAC,CAACqB,8BAA8B,CACxDT,QAAQ,CAAEQ,KAAK,CAAE,CAACE,IACnB,CAAC;MAEDH,MAAM,GAAGlB,mBAAmB,CAAEE,QAAS,CAAC;IACzC,CAAC;IAEDgB,MAAM,GAAGlB,mBAAmB,CAAEE,QAAS,CAAC;IACxC,OAAO,MAAMK,kBAAkB,CAAEW,MAAO,CAAC;EAC1C,CAAC,EAAE,CAAEP,QAAQ,EAAEC,aAAa,CAAG,CAAC;EAEhC,OAAO,IAAI;AACZ"}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
-
|
|
3
|
-
exports[`URLPopover matches the snapshot in its default state 1`] = `
|
|
4
|
-
<div>
|
|
5
|
-
<span>
|
|
6
|
-
<div
|
|
7
|
-
class="components-popover block-editor-url-popover is-positioned"
|
|
8
|
-
style="position: absolute; top: 0px; left: 0px; transform: none;"
|
|
9
|
-
tabindex="-1"
|
|
10
|
-
>
|
|
11
|
-
<div
|
|
12
|
-
class="components-popover__content"
|
|
13
|
-
style="max-height: 0px; overflow: auto;"
|
|
14
|
-
>
|
|
15
|
-
<div
|
|
16
|
-
class="block-editor-url-popover__input-container"
|
|
17
|
-
>
|
|
18
|
-
<div
|
|
19
|
-
class="block-editor-url-popover__row"
|
|
20
|
-
>
|
|
21
|
-
<div>
|
|
22
|
-
Editor
|
|
23
|
-
</div>
|
|
24
|
-
<button
|
|
25
|
-
aria-expanded="false"
|
|
26
|
-
aria-label="Link settings"
|
|
27
|
-
class="components-button block-editor-url-popover__settings-toggle has-icon"
|
|
28
|
-
type="button"
|
|
29
|
-
>
|
|
30
|
-
<svg
|
|
31
|
-
aria-hidden="true"
|
|
32
|
-
focusable="false"
|
|
33
|
-
height="24"
|
|
34
|
-
viewBox="0 0 24 24"
|
|
35
|
-
width="24"
|
|
36
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
37
|
-
>
|
|
38
|
-
<path
|
|
39
|
-
d="M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"
|
|
40
|
-
/>
|
|
41
|
-
</svg>
|
|
42
|
-
</button>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
</span>
|
|
48
|
-
</div>
|
|
49
|
-
`;
|
|
50
|
-
|
|
51
|
-
exports[`URLPopover matches the snapshot when the settings are toggled open 1`] = `
|
|
52
|
-
<div>
|
|
53
|
-
<span>
|
|
54
|
-
<div
|
|
55
|
-
class="components-popover block-editor-url-popover is-positioned"
|
|
56
|
-
style="position: absolute; top: 0px; left: 0px; transform: none;"
|
|
57
|
-
tabindex="-1"
|
|
58
|
-
>
|
|
59
|
-
<div
|
|
60
|
-
class="components-popover__content"
|
|
61
|
-
style="max-height: 0px; overflow: auto;"
|
|
62
|
-
>
|
|
63
|
-
<div
|
|
64
|
-
class="block-editor-url-popover__input-container"
|
|
65
|
-
>
|
|
66
|
-
<div
|
|
67
|
-
class="block-editor-url-popover__row"
|
|
68
|
-
>
|
|
69
|
-
<div>
|
|
70
|
-
Editor
|
|
71
|
-
</div>
|
|
72
|
-
<button
|
|
73
|
-
aria-expanded="true"
|
|
74
|
-
aria-label="Link settings"
|
|
75
|
-
class="components-button block-editor-url-popover__settings-toggle has-icon"
|
|
76
|
-
type="button"
|
|
77
|
-
>
|
|
78
|
-
<svg
|
|
79
|
-
aria-hidden="true"
|
|
80
|
-
focusable="false"
|
|
81
|
-
height="24"
|
|
82
|
-
viewBox="0 0 24 24"
|
|
83
|
-
width="24"
|
|
84
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
85
|
-
>
|
|
86
|
-
<path
|
|
87
|
-
d="M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"
|
|
88
|
-
/>
|
|
89
|
-
</svg>
|
|
90
|
-
</button>
|
|
91
|
-
</div>
|
|
92
|
-
<div
|
|
93
|
-
class="block-editor-url-popover__row block-editor-url-popover__settings"
|
|
94
|
-
>
|
|
95
|
-
<div>
|
|
96
|
-
Settings
|
|
97
|
-
</div>
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
</div>
|
|
101
|
-
</div>
|
|
102
|
-
</span>
|
|
103
|
-
</div>
|
|
104
|
-
`;
|
|
105
|
-
|
|
106
|
-
exports[`URLPopover matches the snapshot when there are no settings 1`] = `
|
|
107
|
-
<div>
|
|
108
|
-
<span>
|
|
109
|
-
<div
|
|
110
|
-
class="components-popover block-editor-url-popover is-positioned"
|
|
111
|
-
style="position: absolute; top: 0px; left: 0px; transform: none;"
|
|
112
|
-
tabindex="-1"
|
|
113
|
-
>
|
|
114
|
-
<div
|
|
115
|
-
class="components-popover__content"
|
|
116
|
-
style="max-height: 0px; overflow: auto;"
|
|
117
|
-
>
|
|
118
|
-
<div
|
|
119
|
-
class="block-editor-url-popover__input-container"
|
|
120
|
-
>
|
|
121
|
-
<div
|
|
122
|
-
class="block-editor-url-popover__row"
|
|
123
|
-
>
|
|
124
|
-
<div>
|
|
125
|
-
Editor
|
|
126
|
-
</div>
|
|
127
|
-
</div>
|
|
128
|
-
</div>
|
|
129
|
-
</div>
|
|
130
|
-
</div>
|
|
131
|
-
</span>
|
|
132
|
-
</div>
|
|
133
|
-
`;
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { render, screen, waitFor } from '@testing-library/react';
|
|
5
|
-
import userEvent from '@testing-library/user-event';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Internal dependencies
|
|
9
|
-
*/
|
|
10
|
-
import URLPopover from '../';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Returns the first found popover element up the DOM tree.
|
|
14
|
-
*
|
|
15
|
-
* @param {HTMLElement} element Element to start with.
|
|
16
|
-
* @return {HTMLElement|null} Popover element, or `null` if not found.
|
|
17
|
-
*/
|
|
18
|
-
function getWrappingPopoverElement( element ) {
|
|
19
|
-
return element.closest( '.components-popover' );
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
describe( 'URLPopover', () => {
|
|
23
|
-
it( 'matches the snapshot in its default state', async () => {
|
|
24
|
-
const { container } = render(
|
|
25
|
-
<URLPopover
|
|
26
|
-
animate={ false }
|
|
27
|
-
renderSettings={ () => <div>Settings</div> }
|
|
28
|
-
>
|
|
29
|
-
<div>Editor</div>
|
|
30
|
-
</URLPopover>
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
await waitFor( () =>
|
|
34
|
-
expect(
|
|
35
|
-
getWrappingPopoverElement( screen.getByText( 'Editor' ) )
|
|
36
|
-
).toBePositionedPopover()
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
expect( container ).toMatchSnapshot();
|
|
40
|
-
} );
|
|
41
|
-
|
|
42
|
-
it( 'matches the snapshot when the settings are toggled open', async () => {
|
|
43
|
-
const user = userEvent.setup();
|
|
44
|
-
const { container } = render(
|
|
45
|
-
<URLPopover
|
|
46
|
-
animate={ false }
|
|
47
|
-
renderSettings={ () => <div>Settings</div> }
|
|
48
|
-
>
|
|
49
|
-
<div>Editor</div>
|
|
50
|
-
</URLPopover>
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
await user.click(
|
|
54
|
-
screen.getByRole( 'button', { name: 'Link settings' } )
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
expect( container ).toMatchSnapshot();
|
|
58
|
-
} );
|
|
59
|
-
|
|
60
|
-
it( 'matches the snapshot when there are no settings', async () => {
|
|
61
|
-
const { container } = render(
|
|
62
|
-
<URLPopover animate={ false }>
|
|
63
|
-
<div>Editor</div>
|
|
64
|
-
</URLPopover>
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
await waitFor( () =>
|
|
68
|
-
expect(
|
|
69
|
-
getWrappingPopoverElement( screen.getByText( 'Editor' ) )
|
|
70
|
-
).toBePositionedPopover()
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
expect( container ).toMatchSnapshot();
|
|
74
|
-
} );
|
|
75
|
-
} );
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { useSelect, select } from '@wordpress/data';
|
|
5
|
-
import { useEffect } from '@wordpress/element';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Internal dependencies
|
|
9
|
-
*/
|
|
10
|
-
import { store as blockEditorStore } from '../store';
|
|
11
|
-
|
|
12
|
-
const requestIdleCallback = ( () => {
|
|
13
|
-
if ( typeof window === 'undefined' ) {
|
|
14
|
-
return ( callback ) => {
|
|
15
|
-
setTimeout( () => callback( Date.now() ), 0 );
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return window.requestIdleCallback || window.requestAnimationFrame;
|
|
20
|
-
} )();
|
|
21
|
-
|
|
22
|
-
const cancelIdleCallback = ( () => {
|
|
23
|
-
if ( typeof window === 'undefined' ) {
|
|
24
|
-
return clearTimeout;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return window.cancelIdleCallback || window.cancelAnimationFrame;
|
|
28
|
-
} )();
|
|
29
|
-
|
|
30
|
-
export function usePreParsePatterns() {
|
|
31
|
-
const { patterns, isPreviewMode } = useSelect( ( _select ) => {
|
|
32
|
-
const { __experimentalBlockPatterns, __unstableIsPreviewMode } =
|
|
33
|
-
_select( blockEditorStore ).getSettings();
|
|
34
|
-
return {
|
|
35
|
-
patterns: __experimentalBlockPatterns,
|
|
36
|
-
isPreviewMode: __unstableIsPreviewMode,
|
|
37
|
-
};
|
|
38
|
-
}, [] );
|
|
39
|
-
|
|
40
|
-
useEffect( () => {
|
|
41
|
-
if ( isPreviewMode ) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
if ( ! patterns?.length ) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
let handle;
|
|
49
|
-
let index = -1;
|
|
50
|
-
|
|
51
|
-
const callback = () => {
|
|
52
|
-
index++;
|
|
53
|
-
if ( index >= patterns.length ) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
select( blockEditorStore ).__experimentalGetParsedPattern(
|
|
58
|
-
patterns[ index ].name
|
|
59
|
-
);
|
|
60
|
-
|
|
61
|
-
handle = requestIdleCallback( callback );
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
handle = requestIdleCallback( callback );
|
|
65
|
-
return () => cancelIdleCallback( handle );
|
|
66
|
-
}, [ patterns, isPreviewMode ] );
|
|
67
|
-
|
|
68
|
-
return null;
|
|
69
|
-
}
|