@wordpress/edit-site 5.28.2 → 5.28.3

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.
Files changed (82) hide show
  1. package/build/components/add-new-pattern/index.js +18 -8
  2. package/build/components/add-new-pattern/index.js.map +1 -1
  3. package/build/components/editor/index.js +1 -1
  4. package/build/components/editor/index.js.map +1 -1
  5. package/build/components/global-styles/block-preview-panel.js +2 -2
  6. package/build/components/global-styles/block-preview-panel.js.map +1 -1
  7. package/build/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  8. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  9. package/build/components/global-styles/font-library-modal/font-collection.js +84 -7
  10. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  11. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  12. package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  13. package/build/components/global-styles/font-library-modal/installed-fonts.js +10 -7
  14. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  15. package/build/components/layout/index.js +8 -3
  16. package/build/components/layout/index.js.map +1 -1
  17. package/build/components/layout/router.js +26 -5
  18. package/build/components/layout/router.js.map +1 -1
  19. package/build/components/page-patterns/use-patterns.js +10 -5
  20. package/build/components/page-patterns/use-patterns.js.map +1 -1
  21. package/build/components/page-templates-template-parts/index.js +1 -0
  22. package/build/components/page-templates-template-parts/index.js.map +1 -1
  23. package/build/components/sidebar/index.js +3 -1
  24. package/build/components/sidebar/index.js.map +1 -1
  25. package/build/components/sidebar-navigation-screen-pages/index.js +3 -1
  26. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  27. package/build/store/private-actions.js +3 -1
  28. package/build/store/private-actions.js.map +1 -1
  29. package/build-module/components/add-new-pattern/index.js +18 -8
  30. package/build-module/components/add-new-pattern/index.js.map +1 -1
  31. package/build-module/components/editor/index.js +1 -1
  32. package/build-module/components/editor/index.js.map +1 -1
  33. package/build-module/components/global-styles/block-preview-panel.js +2 -2
  34. package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
  35. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  36. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  37. package/build-module/components/global-styles/font-library-modal/font-collection.js +87 -10
  38. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  39. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  40. package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
  41. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +11 -8
  42. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  43. package/build-module/components/layout/index.js +8 -3
  44. package/build-module/components/layout/index.js.map +1 -1
  45. package/build-module/components/layout/router.js +26 -5
  46. package/build-module/components/layout/router.js.map +1 -1
  47. package/build-module/components/page-patterns/use-patterns.js +10 -5
  48. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  49. package/build-module/components/page-templates-template-parts/index.js +1 -0
  50. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  51. package/build-module/components/sidebar/index.js +3 -1
  52. package/build-module/components/sidebar/index.js.map +1 -1
  53. package/build-module/components/sidebar-navigation-screen-pages/index.js +3 -1
  54. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  55. package/build-module/store/private-actions.js +3 -1
  56. package/build-module/store/private-actions.js.map +1 -1
  57. package/build-style/style-rtl.css +24 -3
  58. package/build-style/style.css +24 -3
  59. package/package.json +12 -12
  60. package/src/components/add-new-pattern/index.js +27 -11
  61. package/src/components/editor/index.js +1 -0
  62. package/src/components/global-styles/block-preview-panel.js +2 -2
  63. package/src/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  64. package/src/components/global-styles/font-library-modal/font-collection.js +118 -13
  65. package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
  66. package/src/components/global-styles/font-library-modal/installed-fonts.js +25 -23
  67. package/src/components/global-styles/font-library-modal/style.scss +2 -5
  68. package/src/components/layout/index.js +47 -30
  69. package/src/components/layout/router.js +31 -2
  70. package/src/components/layout/style.scss +7 -0
  71. package/src/components/page-patterns/style.scss +10 -0
  72. package/src/components/page-patterns/use-patterns.js +13 -5
  73. package/src/components/page-templates-template-parts/index.js +1 -0
  74. package/src/components/page-templates-template-parts/style.scss +6 -0
  75. package/src/components/sidebar/index.js +7 -3
  76. package/src/components/sidebar-navigation-screen-pages/index.js +10 -6
  77. package/src/store/private-actions.js +4 -0
  78. package/build/components/global-styles/font-library-modal/fonts-grid.js +0 -57
  79. package/build/components/global-styles/font-library-modal/fonts-grid.js.map +0 -1
  80. package/build-module/components/global-styles/font-library-modal/fonts-grid.js +0 -50
  81. package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +0 -1
  82. package/src/components/global-styles/font-library-modal/fonts-grid.js +0 -59
@@ -22,6 +22,8 @@ import { TEMPLATE_POST_TYPE } from '../utils/constants';
22
22
  export const setCanvasMode =
23
23
  ( mode ) =>
24
24
  ( { registry, dispatch } ) => {
25
+ const isMediumOrBigger =
26
+ window.matchMedia( '(min-width: 782px)' ).matches;
25
27
  registry.dispatch( blockEditorStore ).__unstableSetEditorMode( 'edit' );
26
28
  dispatch( {
27
29
  type: 'SET_CANVAS_MODE',
@@ -29,7 +31,9 @@ export const setCanvasMode =
29
31
  } );
30
32
  // Check if the block list view should be open by default.
31
33
  // If `distractionFree` mode is enabled, the block list view should not be open.
34
+ // This behavior is disabled for small viewports.
32
35
  if (
36
+ isMediumOrBigger &&
33
37
  mode === 'edit' &&
34
38
  registry
35
39
  .select( preferencesStore )
@@ -1,57 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = require("react");
8
- var _components = require("@wordpress/components");
9
- var _element = require("@wordpress/element");
10
- /**
11
- * WordPress dependencies
12
- */
13
-
14
- function FontsGrid({
15
- title,
16
- children,
17
- pageSize = 32
18
- }) {
19
- const [lastItem, setLastItem] = (0, _element.useState)(null);
20
- const [page, setPage] = (0, _element.useState)(1);
21
- const itemsLimit = page * pageSize;
22
- const items = children.slice(0, itemsLimit);
23
- (0, _element.useEffect)(() => {
24
- if (lastItem) {
25
- const observer = new window.IntersectionObserver(([entry]) => {
26
- if (entry.isIntersecting) {
27
- setPage(prevPage => prevPage + 1);
28
- }
29
- });
30
- observer.observe(lastItem);
31
- return () => observer.disconnect();
32
- }
33
- }, [lastItem]);
34
- return (0, _react.createElement)("div", {
35
- className: "font-library-modal__fonts-grid"
36
- }, (0, _react.createElement)(_components.__experimentalVStack, {
37
- spacing: 0
38
- }, title && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.__experimentalText, {
39
- className: "font-library-modal__subtitle"
40
- }, title), (0, _react.createElement)(_components.__experimentalSpacer, {
41
- margin: 2
42
- })), (0, _react.createElement)("div", {
43
- className: "font-library-modal__fonts-grid__main"
44
- }, items.map((child, i) => {
45
- if (i === itemsLimit - 1) {
46
- return (0, _react.createElement)("div", {
47
- key: child.key,
48
- ref: setLastItem
49
- }, child);
50
- }
51
- return (0, _react.createElement)("div", {
52
- key: child.key
53
- }, child);
54
- }))));
55
- }
56
- var _default = exports.default = FontsGrid;
57
- //# sourceMappingURL=fonts-grid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_components","require","_element","FontsGrid","title","children","pageSize","lastItem","setLastItem","useState","page","setPage","itemsLimit","items","slice","useEffect","observer","window","IntersectionObserver","entry","isIntersecting","prevPage","observe","disconnect","_react","createElement","className","__experimentalVStack","spacing","Fragment","__experimentalText","__experimentalSpacer","margin","map","child","i","key","ref","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/fonts-grid.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\nfunction FontsGrid( { title, children, pageSize = 32 } ) {\n\tconst [ lastItem, setLastItem ] = useState( null );\n\tconst [ page, setPage ] = useState( 1 );\n\tconst itemsLimit = page * pageSize;\n\tconst items = children.slice( 0, itemsLimit );\n\n\tuseEffect( () => {\n\t\tif ( lastItem ) {\n\t\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\t\tif ( entry.isIntersecting ) {\n\t\t\t\t\tsetPage( ( prevPage ) => prevPage + 1 );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tobserver.observe( lastItem );\n\n\t\t\treturn () => observer.disconnect();\n\t\t}\n\t}, [ lastItem ] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__fonts-grid\">\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t{ title && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t{ items.map( ( child, i ) => {\n\t\t\t\t\t\tif ( i === itemsLimit - 1 ) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div key={ child.key } ref={ setLastItem }>\n\t\t\t\t\t\t\t\t\t{ child }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <div key={ child.key }>{ child }</div>;\n\t\t\t\t\t} ) }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default FontsGrid;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AARA;AACA;AACA;;AAQA,SAASE,SAASA,CAAE;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,QAAQ,GAAG;AAAG,CAAC,EAAG;EACxD,MAAM,CAAEC,QAAQ,EAAEC,WAAW,CAAE,GAAG,IAAAC,iBAAQ,EAAE,IAAK,CAAC;EAClD,MAAM,CAAEC,IAAI,EAAEC,OAAO,CAAE,GAAG,IAAAF,iBAAQ,EAAE,CAAE,CAAC;EACvC,MAAMG,UAAU,GAAGF,IAAI,GAAGJ,QAAQ;EAClC,MAAMO,KAAK,GAAGR,QAAQ,CAACS,KAAK,CAAE,CAAC,EAAEF,UAAW,CAAC;EAE7C,IAAAG,kBAAS,EAAE,MAAM;IAChB,IAAKR,QAAQ,EAAG;MACf,MAAMS,QAAQ,GAAG,IAAIC,MAAM,CAACC,oBAAoB,CAAE,CAAE,CAAEC,KAAK,CAAE,KAAM;QAClE,IAAKA,KAAK,CAACC,cAAc,EAAG;UAC3BT,OAAO,CAAIU,QAAQ,IAAMA,QAAQ,GAAG,CAAE,CAAC;QACxC;MACD,CAAE,CAAC;MAEHL,QAAQ,CAACM,OAAO,CAAEf,QAAS,CAAC;MAE5B,OAAO,MAAMS,QAAQ,CAACO,UAAU,CAAC,CAAC;IACnC;EACD,CAAC,EAAE,CAAEhB,QAAQ,CAAG,CAAC;EAEjB,OACC,IAAAiB,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAgC,GAC9C,IAAAF,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA2B,oBAAM;IAACC,OAAO,EAAG;EAAG,GAClBxB,KAAK,IACN,IAAAoB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAK,QAAA,QACC,IAAAL,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA8B,kBAAI;IAACJ,SAAS,EAAC;EAA8B,GAC3CtB,KACG,CAAC,EACP,IAAAoB,MAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA+B,oBAAM;IAACC,MAAM,EAAG;EAAG,CAAE,CACrB,CACF,EACD,IAAAR,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAsC,GAClDb,KAAK,CAACoB,GAAG,CAAE,CAAEC,KAAK,EAAEC,CAAC,KAAM;IAC5B,IAAKA,CAAC,KAAKvB,UAAU,GAAG,CAAC,EAAG;MAC3B,OACC,IAAAY,MAAA,CAAAC,aAAA;QAAKW,GAAG,EAAGF,KAAK,CAACE,GAAK;QAACC,GAAG,EAAG7B;MAAa,GACvC0B,KACE,CAAC;IAER;IACA,OAAO,IAAAV,MAAA,CAAAC,aAAA;MAAKW,GAAG,EAAGF,KAAK,CAACE;IAAK,GAAGF,KAAY,CAAC;EAC9C,CAAE,CACE,CACE,CACJ,CAAC;AAER;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcrC,SAAS"}
@@ -1,50 +0,0 @@
1
- import { createElement, Fragment } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { __experimentalVStack as VStack, __experimentalText as Text, __experimentalSpacer as Spacer } from '@wordpress/components';
6
- import { useState, useEffect } from '@wordpress/element';
7
- function FontsGrid({
8
- title,
9
- children,
10
- pageSize = 32
11
- }) {
12
- const [lastItem, setLastItem] = useState(null);
13
- const [page, setPage] = useState(1);
14
- const itemsLimit = page * pageSize;
15
- const items = children.slice(0, itemsLimit);
16
- useEffect(() => {
17
- if (lastItem) {
18
- const observer = new window.IntersectionObserver(([entry]) => {
19
- if (entry.isIntersecting) {
20
- setPage(prevPage => prevPage + 1);
21
- }
22
- });
23
- observer.observe(lastItem);
24
- return () => observer.disconnect();
25
- }
26
- }, [lastItem]);
27
- return createElement("div", {
28
- className: "font-library-modal__fonts-grid"
29
- }, createElement(VStack, {
30
- spacing: 0
31
- }, title && createElement(Fragment, null, createElement(Text, {
32
- className: "font-library-modal__subtitle"
33
- }, title), createElement(Spacer, {
34
- margin: 2
35
- })), createElement("div", {
36
- className: "font-library-modal__fonts-grid__main"
37
- }, items.map((child, i) => {
38
- if (i === itemsLimit - 1) {
39
- return createElement("div", {
40
- key: child.key,
41
- ref: setLastItem
42
- }, child);
43
- }
44
- return createElement("div", {
45
- key: child.key
46
- }, child);
47
- }))));
48
- }
49
- export default FontsGrid;
50
- //# sourceMappingURL=fonts-grid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["__experimentalVStack","VStack","__experimentalText","Text","__experimentalSpacer","Spacer","useState","useEffect","FontsGrid","title","children","pageSize","lastItem","setLastItem","page","setPage","itemsLimit","items","slice","observer","window","IntersectionObserver","entry","isIntersecting","prevPage","observe","disconnect","createElement","className","spacing","Fragment","margin","map","child","i","key","ref"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/fonts-grid.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\nfunction FontsGrid( { title, children, pageSize = 32 } ) {\n\tconst [ lastItem, setLastItem ] = useState( null );\n\tconst [ page, setPage ] = useState( 1 );\n\tconst itemsLimit = page * pageSize;\n\tconst items = children.slice( 0, itemsLimit );\n\n\tuseEffect( () => {\n\t\tif ( lastItem ) {\n\t\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\t\tif ( entry.isIntersecting ) {\n\t\t\t\t\tsetPage( ( prevPage ) => prevPage + 1 );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tobserver.observe( lastItem );\n\n\t\t\treturn () => observer.disconnect();\n\t\t}\n\t}, [ lastItem ] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__fonts-grid\">\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t{ title && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t{ items.map( ( child, i ) => {\n\t\t\t\t\t\tif ( i === itemsLimit - 1 ) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div key={ child.key } ref={ setLastItem }>\n\t\t\t\t\t\t\t\t\t{ child }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <div key={ child.key }>{ child }</div>;\n\t\t\t\t\t} ) }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default FontsGrid;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,kBAAkB,IAAIC,IAAI,EAC1BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;AAExD,SAASC,SAASA,CAAE;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,QAAQ,GAAG;AAAG,CAAC,EAAG;EACxD,MAAM,CAAEC,QAAQ,EAAEC,WAAW,CAAE,GAAGP,QAAQ,CAAE,IAAK,CAAC;EAClD,MAAM,CAAEQ,IAAI,EAAEC,OAAO,CAAE,GAAGT,QAAQ,CAAE,CAAE,CAAC;EACvC,MAAMU,UAAU,GAAGF,IAAI,GAAGH,QAAQ;EAClC,MAAMM,KAAK,GAAGP,QAAQ,CAACQ,KAAK,CAAE,CAAC,EAAEF,UAAW,CAAC;EAE7CT,SAAS,CAAE,MAAM;IAChB,IAAKK,QAAQ,EAAG;MACf,MAAMO,QAAQ,GAAG,IAAIC,MAAM,CAACC,oBAAoB,CAAE,CAAE,CAAEC,KAAK,CAAE,KAAM;QAClE,IAAKA,KAAK,CAACC,cAAc,EAAG;UAC3BR,OAAO,CAAIS,QAAQ,IAAMA,QAAQ,GAAG,CAAE,CAAC;QACxC;MACD,CAAE,CAAC;MAEHL,QAAQ,CAACM,OAAO,CAAEb,QAAS,CAAC;MAE5B,OAAO,MAAMO,QAAQ,CAACO,UAAU,CAAC,CAAC;IACnC;EACD,CAAC,EAAE,CAAEd,QAAQ,CAAG,CAAC;EAEjB,OACCe,aAAA;IAAKC,SAAS,EAAC;EAAgC,GAC9CD,aAAA,CAAC1B,MAAM;IAAC4B,OAAO,EAAG;EAAG,GAClBpB,KAAK,IACNkB,aAAA,CAAAG,QAAA,QACCH,aAAA,CAACxB,IAAI;IAACyB,SAAS,EAAC;EAA8B,GAC3CnB,KACG,CAAC,EACPkB,aAAA,CAACtB,MAAM;IAAC0B,MAAM,EAAG;EAAG,CAAE,CACrB,CACF,EACDJ,aAAA;IAAKC,SAAS,EAAC;EAAsC,GAClDX,KAAK,CAACe,GAAG,CAAE,CAAEC,KAAK,EAAEC,CAAC,KAAM;IAC5B,IAAKA,CAAC,KAAKlB,UAAU,GAAG,CAAC,EAAG;MAC3B,OACCW,aAAA;QAAKQ,GAAG,EAAGF,KAAK,CAACE,GAAK;QAACC,GAAG,EAAGvB;MAAa,GACvCoB,KACE,CAAC;IAER;IACA,OAAON,aAAA;MAAKQ,GAAG,EAAGF,KAAK,CAACE;IAAK,GAAGF,KAAY,CAAC;EAC9C,CAAE,CACE,CACE,CACJ,CAAC;AAER;AAEA,eAAezB,SAAS"}
@@ -1,59 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import {
5
- __experimentalVStack as VStack,
6
- __experimentalText as Text,
7
- __experimentalSpacer as Spacer,
8
- } from '@wordpress/components';
9
- import { useState, useEffect } from '@wordpress/element';
10
-
11
- function FontsGrid( { title, children, pageSize = 32 } ) {
12
- const [ lastItem, setLastItem ] = useState( null );
13
- const [ page, setPage ] = useState( 1 );
14
- const itemsLimit = page * pageSize;
15
- const items = children.slice( 0, itemsLimit );
16
-
17
- useEffect( () => {
18
- if ( lastItem ) {
19
- const observer = new window.IntersectionObserver( ( [ entry ] ) => {
20
- if ( entry.isIntersecting ) {
21
- setPage( ( prevPage ) => prevPage + 1 );
22
- }
23
- } );
24
-
25
- observer.observe( lastItem );
26
-
27
- return () => observer.disconnect();
28
- }
29
- }, [ lastItem ] );
30
-
31
- return (
32
- <div className="font-library-modal__fonts-grid">
33
- <VStack spacing={ 0 }>
34
- { title && (
35
- <>
36
- <Text className="font-library-modal__subtitle">
37
- { title }
38
- </Text>
39
- <Spacer margin={ 2 } />
40
- </>
41
- ) }
42
- <div className="font-library-modal__fonts-grid__main">
43
- { items.map( ( child, i ) => {
44
- if ( i === itemsLimit - 1 ) {
45
- return (
46
- <div key={ child.key } ref={ setLastItem }>
47
- { child }
48
- </div>
49
- );
50
- }
51
- return <div key={ child.key }>{ child }</div>;
52
- } ) }
53
- </div>
54
- </VStack>
55
- </div>
56
- );
57
- }
58
-
59
- export default FontsGrid;