@wordpress/edit-site 5.19.1 → 5.19.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 (120) hide show
  1. package/build/components/add-new-pattern/index.js +5 -9
  2. package/build/components/add-new-pattern/index.js.map +1 -1
  3. package/build/components/global-styles/font-families.js +2 -1
  4. package/build/components/global-styles/font-families.js.map +1 -1
  5. package/build/components/global-styles/font-library-modal/collection-font-details.js +3 -1
  6. package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  7. package/build/components/global-styles/font-library-modal/context.js +26 -30
  8. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  9. package/build/components/global-styles/font-library-modal/font-collection.js +31 -11
  10. package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  11. package/build/components/global-styles/font-library-modal/index.js +10 -3
  12. package/build/components/global-styles/font-library-modal/index.js.map +1 -1
  13. package/build/components/global-styles/font-library-modal/installed-fonts.js +27 -7
  14. package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  15. package/build/components/global-styles/font-library-modal/local-fonts.js +35 -8
  16. package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  17. package/build/components/global-styles/font-library-modal/upload-fonts.js +26 -0
  18. package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -0
  19. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -1
  20. package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
  21. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js +71 -0
  22. package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +1 -0
  23. package/build/components/global-styles/font-library-modal/utils/index.js +3 -0
  24. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  25. package/build/components/global-styles/screen-typography.js +1 -1
  26. package/build/components/global-styles/screen-typography.js.map +1 -1
  27. package/build/components/page-patterns/grid.js +0 -1
  28. package/build/components/page-patterns/grid.js.map +1 -1
  29. package/build/components/page-patterns/patterns-list.js +1 -1
  30. package/build/components/page-patterns/patterns-list.js.map +1 -1
  31. package/build/components/page-patterns/use-patterns.js +5 -1
  32. package/build/components/page-patterns/use-patterns.js.map +1 -1
  33. package/build/components/page-template-parts/index.js +12 -1
  34. package/build/components/page-template-parts/index.js.map +1 -1
  35. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
  36. package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  37. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +2 -2
  38. package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  39. package/build/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
  40. package/build/components/sidebar-edit-mode/template-panel/template-areas.js.map +1 -1
  41. package/build/components/sidebar-navigation-screen-patterns/index.js +14 -2
  42. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  43. package/build/components/sidebar-navigation-screen-template/home-template-details.js +13 -18
  44. package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  45. package/build/components/sidebar-navigation-screen-templates-browse/index.js +16 -4
  46. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  47. package/build-module/components/add-new-pattern/index.js +5 -9
  48. package/build-module/components/add-new-pattern/index.js.map +1 -1
  49. package/build-module/components/global-styles/font-families.js +3 -2
  50. package/build-module/components/global-styles/font-families.js.map +1 -1
  51. package/build-module/components/global-styles/font-library-modal/collection-font-details.js +3 -1
  52. package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
  53. package/build-module/components/global-styles/font-library-modal/context.js +26 -30
  54. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  55. package/build-module/components/global-styles/font-library-modal/font-collection.js +32 -12
  56. package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
  57. package/build-module/components/global-styles/font-library-modal/index.js +10 -3
  58. package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
  59. package/build-module/components/global-styles/font-library-modal/installed-fonts.js +28 -8
  60. package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
  61. package/build-module/components/global-styles/font-library-modal/local-fonts.js +38 -11
  62. package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
  63. package/build-module/components/global-styles/font-library-modal/upload-fonts.js +17 -0
  64. package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -0
  65. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -1
  66. package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
  67. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js +63 -0
  68. package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +1 -0
  69. package/build-module/components/global-styles/font-library-modal/utils/index.js +3 -0
  70. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  71. package/build-module/components/global-styles/screen-typography.js +1 -1
  72. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  73. package/build-module/components/page-patterns/grid.js +0 -1
  74. package/build-module/components/page-patterns/grid.js.map +1 -1
  75. package/build-module/components/page-patterns/patterns-list.js +1 -1
  76. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  77. package/build-module/components/page-patterns/use-patterns.js +5 -1
  78. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  79. package/build-module/components/page-template-parts/index.js +12 -1
  80. package/build-module/components/page-template-parts/index.js.map +1 -1
  81. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
  82. package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
  83. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +3 -3
  84. package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
  85. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
  86. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js.map +1 -1
  87. package/build-module/components/sidebar-navigation-screen-patterns/index.js +14 -2
  88. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  89. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +14 -19
  90. package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
  91. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +16 -4
  92. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  93. package/build-style/style-rtl.css +16 -2
  94. package/build-style/style.css +16 -2
  95. package/package.json +40 -40
  96. package/src/components/add-new-pattern/index.js +5 -8
  97. package/src/components/global-styles/font-families.js +5 -1
  98. package/src/components/global-styles/font-library-modal/collection-font-details.js +1 -1
  99. package/src/components/global-styles/font-library-modal/context.js +36 -38
  100. package/src/components/global-styles/font-library-modal/font-collection.js +41 -12
  101. package/src/components/global-styles/font-library-modal/index.js +16 -6
  102. package/src/components/global-styles/font-library-modal/installed-fonts.js +36 -6
  103. package/src/components/global-styles/font-library-modal/local-fonts.js +65 -23
  104. package/src/components/global-styles/font-library-modal/style.scss +18 -1
  105. package/src/components/global-styles/font-library-modal/upload-fonts.js +20 -0
  106. package/src/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -3
  107. package/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js +62 -0
  108. package/src/components/global-styles/font-library-modal/utils/index.js +4 -0
  109. package/src/components/global-styles/screen-typography.js +4 -3
  110. package/src/components/page-patterns/grid.js +1 -1
  111. package/src/components/page-patterns/patterns-list.js +1 -1
  112. package/src/components/page-patterns/use-patterns.js +7 -3
  113. package/src/components/page-template-parts/index.js +14 -1
  114. package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
  115. package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +18 -16
  116. package/src/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
  117. package/src/components/sidebar-navigation-screen/style.scss +0 -1
  118. package/src/components/sidebar-navigation-screen-patterns/index.js +25 -4
  119. package/src/components/sidebar-navigation-screen-template/home-template-details.js +27 -35
  120. package/src/components/sidebar-navigation-screen-templates-browse/index.js +12 -4
@@ -55,13 +55,6 @@ function TemplateAreaButton({
55
55
  }, (0, _htmlEntities.decodeEntities)(title)));
56
56
  }
57
57
  function HomeTemplateDetails() {
58
- const navigator = (0, _components.__experimentalUseNavigator)();
59
- const {
60
- params: {
61
- postType,
62
- postId
63
- }
64
- } = navigator;
65
58
  const {
66
59
  editEntityRecord
67
60
  } = (0, _data.useDispatch)(_coreData.store);
@@ -76,22 +69,21 @@ function HomeTemplateDetails() {
76
69
  const {
77
70
  getEntityRecord
78
71
  } = select(_coreData.store);
79
- const siteSettings = getEntityRecord('root', 'site');
80
72
  const {
81
- getSettings
73
+ getSettings,
74
+ getCurrentTemplateTemplateParts
82
75
  } = (0, _lockUnlock.unlock)(select(_store.store));
83
- const _currentTemplateParts = select(_store.store).getCurrentTemplateTemplateParts();
84
- const siteEditorSettings = getSettings();
85
- const _postsPageRecord = siteSettings?.page_for_posts ? select(_coreData.store).getEntityRecord('postType', 'page', siteSettings?.page_for_posts) : EMPTY_OBJECT;
76
+ const siteSettings = getEntityRecord('root', 'site');
77
+ const _postsPageRecord = siteSettings?.page_for_posts ? getEntityRecord('postType', 'page', siteSettings?.page_for_posts) : EMPTY_OBJECT;
86
78
  return {
87
79
  allowCommentsOnNewPosts: siteSettings?.default_comment_status === 'open',
88
80
  postsPageTitle: _postsPageRecord?.title?.rendered,
89
81
  postsPageId: _postsPageRecord?.id,
90
82
  postsPerPage: siteSettings?.posts_per_page,
91
- templatePartAreas: siteEditorSettings?.defaultTemplatePartAreas,
92
- currentTemplateParts: _currentTemplateParts
83
+ templatePartAreas: getSettings()?.defaultTemplatePartAreas,
84
+ currentTemplateParts: getCurrentTemplateTemplateParts()
93
85
  };
94
- }, [postType, postId]);
86
+ }, []);
95
87
  const [commentsOnNewPostsValue, setCommentsOnNewPostsValue] = (0, _element.useState)('');
96
88
  const [postsCountValue, setPostsCountValue] = (0, _element.useState)(1);
97
89
  const [postsPageTitleValue, setPostsPageTitleValue] = (0, _element.useState)('');
@@ -113,12 +105,14 @@ function HomeTemplateDetails() {
113
105
  */
114
106
  const templateAreas = (0, _element.useMemo)(() => {
115
107
  return currentTemplateParts.length && templatePartAreas ? currentTemplateParts.map(({
116
- templatePart
108
+ templatePart,
109
+ block
117
110
  }) => ({
118
111
  ...templatePartAreas?.find(({
119
112
  area
120
113
  }) => area === templatePart?.area),
121
- ...templatePart
114
+ ...templatePart,
115
+ clientId: block.clientId
122
116
  })) : [];
123
117
  }, [currentTemplateParts, templatePartAreas]);
124
118
  const setAllowCommentsOnNewPosts = newValue => {
@@ -173,13 +167,14 @@ function HomeTemplateDetails() {
173
167
  title: (0, _i18n.__)('Areas'),
174
168
  spacing: 3
175
169
  }, (0, _element.createElement)(_components.__experimentalItemGroup, null, templateAreas.map(({
170
+ clientId,
176
171
  label,
177
172
  icon,
178
173
  theme,
179
174
  slug,
180
175
  title
181
176
  }) => (0, _element.createElement)(_sidebarNavigationScreenDetailsPanel.SidebarNavigationScreenDetailsPanelRow, {
182
- key: slug
177
+ key: clientId
183
178
  }, (0, _element.createElement)(TemplateAreaButton, {
184
179
  postId: `${theme}//${slug}`,
185
180
  title: title?.rendered || label,
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","_compose","_data","_coreData","_components","_icons","_htmlEntities","_sidebarNavigationScreenDetailsPanel","_lockUnlock","_store","_link","_sidebarNavigationItem","_interopRequireDefault","_constants","EMPTY_OBJECT","TemplateAreaButton","postId","icon","title","_icons$icon","icons","header","footer","linkInfo","useLink","postType","TEMPLATE_PART_POST_TYPE","createElement","default","className","layout","withChevron","__experimentalTruncate","limit","ellipsizeMode","numberOfLines","decodeEntities","HomeTemplateDetails","navigator","useNavigator","params","editEntityRecord","useDispatch","coreStore","allowCommentsOnNewPosts","templatePartAreas","postsPerPage","postsPageTitle","postsPageId","currentTemplateParts","useSelect","select","getEntityRecord","siteSettings","getSettings","unlock","editSiteStore","_currentTemplateParts","getCurrentTemplateTemplateParts","siteEditorSettings","_postsPageRecord","page_for_posts","default_comment_status","rendered","id","posts_per_page","defaultTemplatePartAreas","commentsOnNewPostsValue","setCommentsOnNewPostsValue","useState","postsCountValue","setPostsCountValue","postsPageTitleValue","setPostsPageTitleValue","useEffect","templateAreas","useMemo","length","map","templatePart","find","area","setAllowCommentsOnNewPosts","newValue","undefined","setPostsPageTitle","setPostsPerPage","Fragment","SidebarNavigationScreenDetailsPanel","spacing","SidebarNavigationScreenDetailsPanelRow","__experimentalInputControl","placeholder","__","size","value","onChange","debounce","label","help","__experimentalNumberControl","spinControls","step","min","CheckboxControl","checked","__experimentalItemGroup","theme","slug","key"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-template/home-template-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tCheckboxControl,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalInputControl as InputControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalTruncate as Truncate,\n\t__experimentalItemGroup as ItemGroup,\n} from '@wordpress/components';\nimport { header, footer, layout } from '@wordpress/icons';\nimport { useMemo, useState, useEffect } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n} from '../sidebar-navigation-screen-details-panel';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nconst EMPTY_OBJECT = {};\n\nfunction TemplateAreaButton( { postId, icon, title } ) {\n\tconst icons = {\n\t\theader,\n\t\tfooter,\n\t};\n\tconst linkInfo = useLink( {\n\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\tpostId,\n\t} );\n\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-button\"\n\t\t\t{ ...linkInfo }\n\t\t\ticon={ icons[ icon ] ?? layout }\n\t\t\twithChevron\n\t\t>\n\t\t\t<Truncate\n\t\t\t\tlimit={ 20 }\n\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-label-text\"\n\t\t\t>\n\t\t\t\t{ decodeEntities( title ) }\n\t\t\t</Truncate>\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function HomeTemplateDetails() {\n\tconst navigator = useNavigator();\n\tconst {\n\t\tparams: { postType, postId },\n\t} = navigator;\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst {\n\t\tallowCommentsOnNewPosts,\n\t\ttemplatePartAreas,\n\t\tpostsPerPage,\n\t\tpostsPageTitle,\n\t\tpostsPageId,\n\t\tcurrentTemplateParts,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\t\tconst _currentTemplateParts =\n\t\t\t\tselect( editSiteStore ).getCurrentTemplateTemplateParts();\n\t\t\tconst siteEditorSettings = getSettings();\n\t\t\tconst _postsPageRecord = siteSettings?.page_for_posts\n\t\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'page',\n\t\t\t\t\t\tsiteSettings?.page_for_posts\n\t\t\t\t )\n\t\t\t\t: EMPTY_OBJECT;\n\n\t\t\treturn {\n\t\t\t\tallowCommentsOnNewPosts:\n\t\t\t\t\tsiteSettings?.default_comment_status === 'open',\n\t\t\t\tpostsPageTitle: _postsPageRecord?.title?.rendered,\n\t\t\t\tpostsPageId: _postsPageRecord?.id,\n\t\t\t\tpostsPerPage: siteSettings?.posts_per_page,\n\t\t\t\ttemplatePartAreas: siteEditorSettings?.defaultTemplatePartAreas,\n\t\t\t\tcurrentTemplateParts: _currentTemplateParts,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst [ commentsOnNewPostsValue, setCommentsOnNewPostsValue ] =\n\t\tuseState( '' );\n\tconst [ postsCountValue, setPostsCountValue ] = useState( 1 );\n\tconst [ postsPageTitleValue, setPostsPageTitleValue ] = useState( '' );\n\n\t/*\n\t * This hook serves to set the server-retrieved values,\n\t * postsPageTitle, allowCommentsOnNewPosts, postsPerPage,\n\t * to local state.\n\t */\n\tuseEffect( () => {\n\t\tsetCommentsOnNewPostsValue( allowCommentsOnNewPosts );\n\t\tsetPostsPageTitleValue( postsPageTitle );\n\t\tsetPostsCountValue( postsPerPage );\n\t}, [ postsPageTitle, allowCommentsOnNewPosts, postsPerPage ] );\n\n\t/*\n\t * Merge data in currentTemplateParts with templatePartAreas,\n\t * which contains the template icon and fallback labels\n\t */\n\tconst templateAreas = useMemo( () => {\n\t\treturn currentTemplateParts.length && templatePartAreas\n\t\t\t? currentTemplateParts.map( ( { templatePart } ) => ( {\n\t\t\t\t\t...templatePartAreas?.find(\n\t\t\t\t\t\t( { area } ) => area === templatePart?.area\n\t\t\t\t\t),\n\t\t\t\t\t...templatePart,\n\t\t\t } ) )\n\t\t\t: [];\n\t}, [ currentTemplateParts, templatePartAreas ] );\n\n\tconst setAllowCommentsOnNewPosts = ( newValue ) => {\n\t\tsetCommentsOnNewPostsValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tdefault_comment_status: newValue ? 'open' : null,\n\t\t} );\n\t};\n\n\tconst setPostsPageTitle = ( newValue ) => {\n\t\tsetPostsPageTitleValue( newValue );\n\t\teditEntityRecord( 'postType', 'page', postsPageId, {\n\t\t\ttitle: newValue,\n\t\t} );\n\t};\n\n\tconst setPostsPerPage = ( newValue ) => {\n\t\tsetPostsCountValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tposts_per_page: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<SidebarNavigationScreenDetailsPanel spacing={ 6 }>\n\t\t\t\t{ postsPageId && (\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\t\tplaceholder={ __( 'No Title' ) }\n\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t\tvalue={ postsPageTitleValue }\n\t\t\t\t\t\t\tonChange={ debounce( setPostsPageTitle, 300 ) }\n\t\t\t\t\t\t\tlabel={ __( 'Blog title' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Set the Posts Page title. Appears in search results, and when the page is shared on social media.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t) }\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tplaceholder={ 0 }\n\t\t\t\t\t\tvalue={ postsCountValue }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\tonChange={ setPostsPerPage }\n\t\t\t\t\t\tlabel={ __( 'Posts per page' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Set the default number of posts to display on blog pages, including categories and tags. Some templates may override this setting.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Discussion' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tlabel={ __( 'Allow comments on new posts' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Changes will apply to new posts only. Individual posts may override these settings.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ commentsOnNewPostsValue }\n\t\t\t\t\t\tonChange={ setAllowCommentsOnNewPosts }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Areas' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t{ templateAreas.map(\n\t\t\t\t\t\t( { label, icon, theme, slug, title } ) => (\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow\n\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TemplateAreaButton\n\t\t\t\t\t\t\t\t\tpostId={ `${ theme }//${ slug }` }\n\t\t\t\t\t\t\t\t\ttitle={ title?.rendered || label }\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t</ItemGroup>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_i18n","_compose","_data","_coreData","_components","_icons","_htmlEntities","_sidebarNavigationScreenDetailsPanel","_lockUnlock","_store","_link","_sidebarNavigationItem","_interopRequireDefault","_constants","EMPTY_OBJECT","TemplateAreaButton","postId","icon","title","_icons$icon","icons","header","footer","linkInfo","useLink","postType","TEMPLATE_PART_POST_TYPE","createElement","default","className","layout","withChevron","__experimentalTruncate","limit","ellipsizeMode","numberOfLines","decodeEntities","HomeTemplateDetails","editEntityRecord","useDispatch","coreStore","allowCommentsOnNewPosts","templatePartAreas","postsPerPage","postsPageTitle","postsPageId","currentTemplateParts","useSelect","select","getEntityRecord","getSettings","getCurrentTemplateTemplateParts","unlock","editSiteStore","siteSettings","_postsPageRecord","page_for_posts","default_comment_status","rendered","id","posts_per_page","defaultTemplatePartAreas","commentsOnNewPostsValue","setCommentsOnNewPostsValue","useState","postsCountValue","setPostsCountValue","postsPageTitleValue","setPostsPageTitleValue","useEffect","templateAreas","useMemo","length","map","templatePart","block","find","area","clientId","setAllowCommentsOnNewPosts","newValue","undefined","setPostsPageTitle","setPostsPerPage","Fragment","SidebarNavigationScreenDetailsPanel","spacing","SidebarNavigationScreenDetailsPanelRow","__experimentalInputControl","placeholder","__","size","value","onChange","debounce","label","help","__experimentalNumberControl","spinControls","step","min","CheckboxControl","checked","__experimentalItemGroup","theme","slug","key"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-template/home-template-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tCheckboxControl,\n\t__experimentalInputControl as InputControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalTruncate as Truncate,\n\t__experimentalItemGroup as ItemGroup,\n} from '@wordpress/components';\nimport { header, footer, layout } from '@wordpress/icons';\nimport { useMemo, useState, useEffect } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n} from '../sidebar-navigation-screen-details-panel';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nconst EMPTY_OBJECT = {};\n\nfunction TemplateAreaButton( { postId, icon, title } ) {\n\tconst icons = {\n\t\theader,\n\t\tfooter,\n\t};\n\tconst linkInfo = useLink( {\n\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\tpostId,\n\t} );\n\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-button\"\n\t\t\t{ ...linkInfo }\n\t\t\ticon={ icons[ icon ] ?? layout }\n\t\t\twithChevron\n\t\t>\n\t\t\t<Truncate\n\t\t\t\tlimit={ 20 }\n\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-label-text\"\n\t\t\t>\n\t\t\t\t{ decodeEntities( title ) }\n\t\t\t</Truncate>\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function HomeTemplateDetails() {\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst {\n\t\tallowCommentsOnNewPosts,\n\t\ttemplatePartAreas,\n\t\tpostsPerPage,\n\t\tpostsPageTitle,\n\t\tpostsPageId,\n\t\tcurrentTemplateParts,\n\t} = useSelect( ( select ) => {\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst { getSettings, getCurrentTemplateTemplateParts } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\tconst _postsPageRecord = siteSettings?.page_for_posts\n\t\t\t? getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'page',\n\t\t\t\t\tsiteSettings?.page_for_posts\n\t\t\t )\n\t\t\t: EMPTY_OBJECT;\n\n\t\treturn {\n\t\t\tallowCommentsOnNewPosts:\n\t\t\t\tsiteSettings?.default_comment_status === 'open',\n\t\t\tpostsPageTitle: _postsPageRecord?.title?.rendered,\n\t\t\tpostsPageId: _postsPageRecord?.id,\n\t\t\tpostsPerPage: siteSettings?.posts_per_page,\n\t\t\ttemplatePartAreas: getSettings()?.defaultTemplatePartAreas,\n\t\t\tcurrentTemplateParts: getCurrentTemplateTemplateParts(),\n\t\t};\n\t}, [] );\n\n\tconst [ commentsOnNewPostsValue, setCommentsOnNewPostsValue ] =\n\t\tuseState( '' );\n\tconst [ postsCountValue, setPostsCountValue ] = useState( 1 );\n\tconst [ postsPageTitleValue, setPostsPageTitleValue ] = useState( '' );\n\n\t/*\n\t * This hook serves to set the server-retrieved values,\n\t * postsPageTitle, allowCommentsOnNewPosts, postsPerPage,\n\t * to local state.\n\t */\n\tuseEffect( () => {\n\t\tsetCommentsOnNewPostsValue( allowCommentsOnNewPosts );\n\t\tsetPostsPageTitleValue( postsPageTitle );\n\t\tsetPostsCountValue( postsPerPage );\n\t}, [ postsPageTitle, allowCommentsOnNewPosts, postsPerPage ] );\n\n\t/*\n\t * Merge data in currentTemplateParts with templatePartAreas,\n\t * which contains the template icon and fallback labels\n\t */\n\tconst templateAreas = useMemo( () => {\n\t\treturn currentTemplateParts.length && templatePartAreas\n\t\t\t? currentTemplateParts.map( ( { templatePart, block } ) => ( {\n\t\t\t\t\t...templatePartAreas?.find(\n\t\t\t\t\t\t( { area } ) => area === templatePart?.area\n\t\t\t\t\t),\n\t\t\t\t\t...templatePart,\n\t\t\t\t\tclientId: block.clientId,\n\t\t\t } ) )\n\t\t\t: [];\n\t}, [ currentTemplateParts, templatePartAreas ] );\n\n\tconst setAllowCommentsOnNewPosts = ( newValue ) => {\n\t\tsetCommentsOnNewPostsValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tdefault_comment_status: newValue ? 'open' : null,\n\t\t} );\n\t};\n\n\tconst setPostsPageTitle = ( newValue ) => {\n\t\tsetPostsPageTitleValue( newValue );\n\t\teditEntityRecord( 'postType', 'page', postsPageId, {\n\t\t\ttitle: newValue,\n\t\t} );\n\t};\n\n\tconst setPostsPerPage = ( newValue ) => {\n\t\tsetPostsCountValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tposts_per_page: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<SidebarNavigationScreenDetailsPanel spacing={ 6 }>\n\t\t\t\t{ postsPageId && (\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\t\tplaceholder={ __( 'No Title' ) }\n\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t\tvalue={ postsPageTitleValue }\n\t\t\t\t\t\t\tonChange={ debounce( setPostsPageTitle, 300 ) }\n\t\t\t\t\t\t\tlabel={ __( 'Blog title' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Set the Posts Page title. Appears in search results, and when the page is shared on social media.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t) }\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tplaceholder={ 0 }\n\t\t\t\t\t\tvalue={ postsCountValue }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\tonChange={ setPostsPerPage }\n\t\t\t\t\t\tlabel={ __( 'Posts per page' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Set the default number of posts to display on blog pages, including categories and tags. Some templates may override this setting.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Discussion' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tlabel={ __( 'Allow comments on new posts' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Changes will apply to new posts only. Individual posts may override these settings.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ commentsOnNewPostsValue }\n\t\t\t\t\t\tonChange={ setAllowCommentsOnNewPosts }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Areas' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t{ templateAreas.map(\n\t\t\t\t\t\t( { clientId, label, icon, theme, slug, title } ) => (\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow\n\t\t\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TemplateAreaButton\n\t\t\t\t\t\t\t\t\tpostId={ `${ theme }//${ slug }` }\n\t\t\t\t\t\t\t\t\ttitle={ title?.rendered || label }\n\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t</ItemGroup>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -9,9 +9,11 @@ var _element = require("@wordpress/element");
9
9
  var _i18n = require("@wordpress/i18n");
10
10
  var _data = require("@wordpress/data");
11
11
  var _components = require("@wordpress/components");
12
+ var _router = require("@wordpress/router");
12
13
  var _sidebarNavigationScreen = _interopRequireDefault(require("../sidebar-navigation-screen"));
13
14
  var _store = require("../../store");
14
15
  var _constants = require("../../utils/constants");
16
+ var _lockUnlock = require("../../lock-unlock");
15
17
  /**
16
18
  * WordPress dependencies
17
19
  */
@@ -31,18 +33,28 @@ const config = {
31
33
  backPath: '/patterns'
32
34
  }
33
35
  };
36
+ const {
37
+ useLocation
38
+ } = (0, _lockUnlock.unlock)(_router.privateApis);
34
39
  function SidebarNavigationScreenTemplatesBrowse() {
35
40
  const {
36
41
  params: {
37
42
  postType
38
43
  }
39
44
  } = (0, _components.__experimentalUseNavigator)();
45
+ const {
46
+ params: {
47
+ didAccessPatternsPage
48
+ }
49
+ } = useLocation();
40
50
  const isTemplatePartsMode = (0, _data.useSelect)(select => {
41
- const settings = select(_store.store).getSettings();
42
- return !!settings.supportsTemplatePartsMode;
51
+ return !!select(_store.store).getSettings().supportsTemplatePartsMode;
43
52
  }, []);
44
- return (0, _element.createElement)(_sidebarNavigationScreen.default, {
45
- isRoot: isTemplatePartsMode,
53
+ return (0, _element.createElement)(_sidebarNavigationScreen.default
54
+ // If a classic theme that supports template parts has never
55
+ // accessed the Patterns page, return to the dashboard.
56
+ , {
57
+ isRoot: isTemplatePartsMode && !didAccessPatternsPage,
46
58
  title: config[postType].title,
47
59
  description: config[postType].description,
48
60
  backPath: config[postType].backPath
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_data","_components","_sidebarNavigationScreen","_interopRequireDefault","_store","_constants","config","TEMPLATE_POST_TYPE","title","__","description","TEMPLATE_PART_POST_TYPE","backPath","SidebarNavigationScreenTemplatesBrowse","params","postType","useNavigator","isTemplatePartsMode","useSelect","select","settings","editSiteStore","getSettings","supportsTemplatePartsMode","_element","createElement","default","isRoot"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-templates-browse/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst config = {\n\t[ TEMPLATE_POST_TYPE ]: {\n\t\ttitle: __( 'All templates' ),\n\t\tdescription: __(\n\t\t\t'Create new templates, or reset any customizations made to the templates supplied by your theme.'\n\t\t),\n\t},\n\t[ TEMPLATE_PART_POST_TYPE ]: {\n\t\ttitle: __( 'All template parts' ),\n\t\tdescription: __(\n\t\t\t'Create new template parts, or reset any customizations made to the template parts supplied by your theme.'\n\t\t),\n\t\tbackPath: '/patterns',\n\t},\n};\n\nexport default function SidebarNavigationScreenTemplatesBrowse() {\n\tconst {\n\t\tparams: { postType },\n\t} = useNavigator();\n\n\tconst isTemplatePartsMode = useSelect( ( select ) => {\n\t\tconst settings = select( editSiteStore ).getSettings();\n\n\t\treturn !! settings.supportsTemplatePartsMode;\n\t}, [] );\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\tisRoot={ isTemplatePartsMode }\n\t\t\ttitle={ config[ postType ].title }\n\t\t\tdescription={ config[ postType ].description }\n\t\t\tbackPath={ config[ postType ].backPath }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,wBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAZA;AACA;AACA;;AAKA;AACA;AACA;;AAQA,MAAMO,MAAM,GAAG;EACd,CAAEC,6BAAkB,GAAI;IACvBC,KAAK,EAAE,IAAAC,QAAE,EAAE,eAAgB,CAAC;IAC5BC,WAAW,EAAE,IAAAD,QAAE,EACd,iGACD;EACD,CAAC;EACD,CAAEE,kCAAuB,GAAI;IAC5BH,KAAK,EAAE,IAAAC,QAAE,EAAE,oBAAqB,CAAC;IACjCC,WAAW,EAAE,IAAAD,QAAE,EACd,2GACD,CAAC;IACDG,QAAQ,EAAE;EACX;AACD,CAAC;AAEc,SAASC,sCAAsCA,CAAA,EAAG;EAChE,MAAM;IACLC,MAAM,EAAE;MAAEC;IAAS;EACpB,CAAC,GAAG,IAAAC,sCAAY,EAAC,CAAC;EAElB,MAAMC,mBAAmB,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACpD,MAAMC,QAAQ,GAAGD,MAAM,CAAEE,YAAc,CAAC,CAACC,WAAW,CAAC,CAAC;IAEtD,OAAO,CAAC,CAAEF,QAAQ,CAACG,yBAAyB;EAC7C,CAAC,EAAE,EAAG,CAAC;EAEP,OACC,IAAAC,QAAA,CAAAC,aAAA,EAACvB,wBAAA,CAAAwB,OAAuB;IACvBC,MAAM,EAAGV,mBAAqB;IAC9BT,KAAK,EAAGF,MAAM,CAAES,QAAQ,CAAE,CAACP,KAAO;IAClCE,WAAW,EAAGJ,MAAM,CAAES,QAAQ,CAAE,CAACL,WAAa;IAC9CE,QAAQ,EAAGN,MAAM,CAAES,QAAQ,CAAE,CAACH;EAAU,CACxC,CAAC;AAEJ"}
1
+ {"version":3,"names":["_i18n","require","_data","_components","_router","_sidebarNavigationScreen","_interopRequireDefault","_store","_constants","_lockUnlock","config","TEMPLATE_POST_TYPE","title","__","description","TEMPLATE_PART_POST_TYPE","backPath","useLocation","unlock","routerPrivateApis","SidebarNavigationScreenTemplatesBrowse","params","postType","useNavigator","didAccessPatternsPage","isTemplatePartsMode","useSelect","select","editSiteStore","getSettings","supportsTemplatePartsMode","_element","createElement","default","isRoot"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-templates-browse/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst config = {\n\t[ TEMPLATE_POST_TYPE ]: {\n\t\ttitle: __( 'All templates' ),\n\t\tdescription: __(\n\t\t\t'Create new templates, or reset any customizations made to the templates supplied by your theme.'\n\t\t),\n\t},\n\t[ TEMPLATE_PART_POST_TYPE ]: {\n\t\ttitle: __( 'All template parts' ),\n\t\tdescription: __(\n\t\t\t'Create new template parts, or reset any customizations made to the template parts supplied by your theme.'\n\t\t),\n\t\tbackPath: '/patterns',\n\t},\n};\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function SidebarNavigationScreenTemplatesBrowse() {\n\tconst {\n\t\tparams: { postType },\n\t} = useNavigator();\n\tconst {\n\t\tparams: { didAccessPatternsPage },\n\t} = useLocation();\n\n\tconst isTemplatePartsMode = useSelect( ( select ) => {\n\t\treturn !! select( editSiteStore ).getSettings()\n\t\t\t.supportsTemplatePartsMode;\n\t}, [] );\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\t// If a classic theme that supports template parts has never\n\t\t\t// accessed the Patterns page, return to the dashboard.\n\t\t\tisRoot={ isTemplatePartsMode && ! didAccessPatternsPage }\n\t\t\ttitle={ config[ postType ].title }\n\t\t\tdescription={ config[ postType ].description }\n\t\t\tbackPath={ config[ postType ].backPath }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAKA,IAAAI,wBAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AAIA,IAAAQ,WAAA,GAAAR,OAAA;AAjBA;AACA;AACA;;AAMA;AACA;AACA;;AASA,MAAMS,MAAM,GAAG;EACd,CAAEC,6BAAkB,GAAI;IACvBC,KAAK,EAAE,IAAAC,QAAE,EAAE,eAAgB,CAAC;IAC5BC,WAAW,EAAE,IAAAD,QAAE,EACd,iGACD;EACD,CAAC;EACD,CAAEE,kCAAuB,GAAI;IAC5BH,KAAK,EAAE,IAAAC,QAAE,EAAE,oBAAqB,CAAC;IACjCC,WAAW,EAAE,IAAAD,QAAE,EACd,2GACD,CAAC;IACDG,QAAQ,EAAE;EACX;AACD,CAAC;AAED,MAAM;EAAEC;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAEpC,SAASC,sCAAsCA,CAAA,EAAG;EAChE,MAAM;IACLC,MAAM,EAAE;MAAEC;IAAS;EACpB,CAAC,GAAG,IAAAC,sCAAY,EAAC,CAAC;EAClB,MAAM;IACLF,MAAM,EAAE;MAAEG;IAAsB;EACjC,CAAC,GAAGP,WAAW,CAAC,CAAC;EAEjB,MAAMQ,mBAAmB,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACpD,OAAO,CAAC,CAAEA,MAAM,CAAEC,YAAc,CAAC,CAACC,WAAW,CAAC,CAAC,CAC7CC,yBAAyB;EAC5B,CAAC,EAAE,EAAG,CAAC;EAEP,OACC,IAAAC,QAAA,CAAAC,aAAA,EAAC3B,wBAAA,CAAA4B;EACA;EACA;EAAA;IACAC,MAAM,EAAGT,mBAAmB,IAAI,CAAED,qBAAuB;IACzDZ,KAAK,EAAGF,MAAM,CAAEY,QAAQ,CAAE,CAACV,KAAO;IAClCE,WAAW,EAAGJ,MAAM,CAAEY,QAAQ,CAAE,CAACR,WAAa;IAC9CE,QAAQ,EAAGN,MAAM,CAAEY,QAAQ,CAAE,CAACN;EAAU,CACxC,CAAC;AAEJ"}
@@ -9,6 +9,7 @@ import { plus, symbol, symbolFilled } from '@wordpress/icons';
9
9
  import { useSelect, useDispatch } from '@wordpress/data';
10
10
  import { privateApis as routerPrivateApis } from '@wordpress/router';
11
11
  import { privateApis as editPatternsPrivateApis, store as patternsStore } from '@wordpress/patterns';
12
+ import { store as coreStore } from '@wordpress/core-data';
12
13
  import { store as noticesStore } from '@wordpress/notices';
13
14
 
14
15
  /**
@@ -17,7 +18,6 @@ import { store as noticesStore } from '@wordpress/notices';
17
18
  import CreateTemplatePartModal from '../create-template-part-modal';
18
19
  import SidebarButton from '../sidebar-button';
19
20
  import { unlock } from '../../lock-unlock';
20
- import { store as editSiteStore } from '../../store';
21
21
  import { PATTERN_TYPES, PATTERN_DEFAULT_CATEGORY, TEMPLATE_PART_POST_TYPE } from '../../utils/constants';
22
22
  import usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';
23
23
  const {
@@ -34,9 +34,8 @@ export default function AddNewPattern() {
34
34
  } = useLocation();
35
35
  const [showPatternModal, setShowPatternModal] = useState(false);
36
36
  const [showTemplatePartModal, setShowTemplatePartModal] = useState(false);
37
- const isTemplatePartsMode = useSelect(select => {
38
- const settings = select(editSiteStore).getSettings();
39
- return !!settings.supportsTemplatePartsMode;
37
+ const isBlockBasedTheme = useSelect(select => {
38
+ return select(coreStore).getCurrentTheme()?.is_block_theme;
40
39
  }, []);
41
40
  const {
42
41
  createPatternFromFile
@@ -57,7 +56,7 @@ export default function AddNewPattern() {
57
56
  history.push({
58
57
  postId: pattern.id,
59
58
  postType: PATTERN_TYPES.user,
60
- categoryType: PATTERN_TYPES.user,
59
+ categoryType: PATTERN_TYPES.theme,
61
60
  categoryId,
62
61
  canvas: 'edit'
63
62
  });
@@ -81,10 +80,7 @@ export default function AddNewPattern() {
81
80
  onClick: () => setShowPatternModal(true),
82
81
  title: __('Create pattern')
83
82
  }];
84
-
85
- // Remove condition when command palette issues are resolved.
86
- // See: https://github.com/WordPress/gutenberg/issues/52154.
87
- if (!isTemplatePartsMode) {
83
+ if (isBlockBasedTheme) {
88
84
  controls.push({
89
85
  icon: symbolFilled,
90
86
  onClick: () => setShowTemplatePartModal(true),
@@ -1 +1 @@
1
- {"version":3,"names":["DropdownMenu","useState","useRef","__","sprintf","plus","symbol","symbolFilled","useSelect","useDispatch","privateApis","routerPrivateApis","editPatternsPrivateApis","store","patternsStore","noticesStore","CreateTemplatePartModal","SidebarButton","unlock","editSiteStore","PATTERN_TYPES","PATTERN_DEFAULT_CATEGORY","TEMPLATE_PART_POST_TYPE","usePatternCategories","useHistory","useLocation","CreatePatternModal","AddNewPattern","history","params","showPatternModal","setShowPatternModal","showTemplatePartModal","setShowTemplatePartModal","isTemplatePartsMode","select","settings","getSettings","supportsTemplatePartsMode","createPatternFromFile","createSuccessNotice","createErrorNotice","patternUploadInputRef","patternCategories","handleCreatePattern","pattern","categoryId","push","postId","id","postType","user","categoryType","canvas","handleCreateTemplatePart","templatePart","handleError","controls","icon","onClick","title","current","click","createElement","Fragment","toggleProps","as","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","currentCategoryId","find","category","name","undefined","path","theme","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { plus, symbol, symbolFilled } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport CreateTemplatePartModal from '../create-template-part-modal';\nimport SidebarButton from '../sidebar-button';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { CreatePatternModal } = unlock( editPatternsPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\tconst isTemplatePartsMode = useSelect( ( select ) => {\n\t\tconst settings = select( editSiteStore ).getSettings();\n\t\treturn !! settings.supportsTemplatePartsMode;\n\t}, [] );\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst { patternCategories } = usePatternCategories();\n\n\tfunction handleCreatePattern( { pattern, categoryId } ) {\n\t\tsetShowPatternModal( false );\n\n\t\thistory.push( {\n\t\t\tpostId: pattern.id,\n\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\tcategoryType: PATTERN_TYPES.user,\n\t\t\tcategoryId,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\n\t\t// Navigate to the created template part editor.\n\t\thistory.push( {\n\t\t\tpostId: templatePart.id,\n\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [\n\t\t{\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: __( 'Create pattern' ),\n\t\t},\n\t];\n\n\t// Remove condition when command palette issues are resolved.\n\t// See: https://github.com/WordPress/gutenberg/issues/52154.\n\tif ( ! isTemplatePartsMode ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: __( 'Create template part' ),\n\t\t} );\n\t}\n\n\tcontrols.push( {\n\t\ticon: symbol,\n\t\tonClick: () => {\n\t\t\tpatternUploadInputRef.current.click();\n\t\t},\n\t\ttitle: __( 'Import pattern from JSON' ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\tcontrols={ controls }\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tas: SidebarButton,\n\t\t\t\t} }\n\t\t\t\ticon={ plus }\n\t\t\t\tlabel={ __( 'Create pattern' ) }\n\t\t\t/>\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) return;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst currentCategoryId =\n\t\t\t\t\t\t\tparams.categoryType !== TEMPLATE_PART_POST_TYPE &&\n\t\t\t\t\t\t\tpatternCategories.find(\n\t\t\t\t\t\t\t\t( category ) =>\n\t\t\t\t\t\t\t\t\tcategory.name === params.categoryId\n\t\t\t\t\t\t\t)?.id;\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already.\n\t\t\t\t\t\tif ( ! currentCategoryId ) {\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpath: `/patterns`,\n\t\t\t\t\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\t\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["DropdownMenu","useState","useRef","__","sprintf","plus","symbol","symbolFilled","useSelect","useDispatch","privateApis","routerPrivateApis","editPatternsPrivateApis","store","patternsStore","coreStore","noticesStore","CreateTemplatePartModal","SidebarButton","unlock","PATTERN_TYPES","PATTERN_DEFAULT_CATEGORY","TEMPLATE_PART_POST_TYPE","usePatternCategories","useHistory","useLocation","CreatePatternModal","AddNewPattern","history","params","showPatternModal","setShowPatternModal","showTemplatePartModal","setShowTemplatePartModal","isBlockBasedTheme","select","getCurrentTheme","is_block_theme","createPatternFromFile","createSuccessNotice","createErrorNotice","patternUploadInputRef","patternCategories","handleCreatePattern","pattern","categoryId","push","postId","id","postType","user","categoryType","theme","canvas","handleCreateTemplatePart","templatePart","handleError","controls","icon","onClick","title","current","click","createElement","Fragment","toggleProps","as","label","onClose","onSuccess","onError","closeModal","blocks","onCreate","type","accept","hidden","ref","onChange","event","file","target","files","currentCategoryId","find","category","name","undefined","path","raw","err","message","value"],"sources":["@wordpress/edit-site/src/components/add-new-pattern/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { plus, symbol, symbolFilled } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport CreateTemplatePartModal from '../create-template-part-modal';\nimport SidebarButton from '../sidebar-button';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { CreatePatternModal } = unlock( editPatternsPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\tconst isBlockBasedTheme = useSelect( ( select ) => {\n\t\treturn select( coreStore ).getCurrentTheme()?.is_block_theme;\n\t}, [] );\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst { patternCategories } = usePatternCategories();\n\n\tfunction handleCreatePattern( { pattern, categoryId } ) {\n\t\tsetShowPatternModal( false );\n\n\t\thistory.push( {\n\t\t\tpostId: pattern.id,\n\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\tcategoryId,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\n\t\t// Navigate to the created template part editor.\n\t\thistory.push( {\n\t\t\tpostId: templatePart.id,\n\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [\n\t\t{\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: __( 'Create pattern' ),\n\t\t},\n\t];\n\n\tif ( isBlockBasedTheme ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: __( 'Create template part' ),\n\t\t} );\n\t}\n\n\tcontrols.push( {\n\t\ticon: symbol,\n\t\tonClick: () => {\n\t\t\tpatternUploadInputRef.current.click();\n\t\t},\n\t\ttitle: __( 'Import pattern from JSON' ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\tcontrols={ controls }\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tas: SidebarButton,\n\t\t\t\t} }\n\t\t\t\ticon={ plus }\n\t\t\t\tlabel={ __( 'Create pattern' ) }\n\t\t\t/>\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) return;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst currentCategoryId =\n\t\t\t\t\t\t\tparams.categoryType !== TEMPLATE_PART_POST_TYPE &&\n\t\t\t\t\t\t\tpatternCategories.find(\n\t\t\t\t\t\t\t\t( category ) =>\n\t\t\t\t\t\t\t\t\tcategory.name === params.categoryId\n\t\t\t\t\t\t\t)?.id;\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already.\n\t\t\t\t\t\tif ( ! currentCategoryId ) {\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpath: `/patterns`,\n\t\t\t\t\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\t\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
@@ -50,9 +50,10 @@ function FontFamilies() {
50
50
  font: font
51
51
  })))));
52
52
  }
53
- export default (({
53
+ const FontFamiliesComponent = ({
54
54
  ...props
55
55
  }) => createElement(FontLibraryProvider, null, createElement(FontFamilies, {
56
56
  ...props
57
- })));
57
+ }));
58
+ export default process.env.IS_GUTENBERG_PLUGIN ? FontFamiliesComponent : undefined;
58
59
  //# sourceMappingURL=font-families.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","__experimentalItemGroup","ItemGroup","__experimentalVStack","VStack","__experimentalHStack","HStack","Button","Tooltip","typography","useContext","FontLibraryProvider","FontLibraryContext","FontLibraryModal","FontFamilyItem","Subtitle","FontFamilies","modalTabOpen","toggleModal","themeFonts","customFonts","createElement","Fragment","onRequestClose","initialTabName","spacing","justify","level","text","onClick","icon","size","isBordered","isSeparated","map","font","key","slug","props"],"sources":["@wordpress/edit-site/src/components/global-styles/font-families.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n} from '@wordpress/components';\nimport { typography } from '@wordpress/icons';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontLibraryProvider, {\n\tFontLibraryContext,\n} from './font-library-modal/context';\nimport FontLibraryModal from './font-library-modal';\nimport FontFamilyItem from './font-family-item';\nimport Subtitle from './subtitle';\n\nfunction FontFamilies() {\n\tconst { modalTabOpen, toggleModal, themeFonts, customFonts } =\n\t\tuseContext( FontLibraryContext );\n\n\treturn (\n\t\t<>\n\t\t\t{ !! modalTabOpen && (\n\t\t\t\t<FontLibraryModal\n\t\t\t\t\tonRequestClose={ () => toggleModal() }\n\t\t\t\t\tinitialTabName={ modalTabOpen }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t<Subtitle level={ 3 }>{ __( 'Fonts' ) }</Subtitle>\n\t\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t\t<Tooltip text={ __( 'Manage fonts' ) }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\ttoggleModal( 'installed-fonts' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-label={ __( 'Manage fonts' ) }\n\t\t\t\t\t\t\t\ticon={ typography }\n\t\t\t\t\t\t\t\tsize={ 'small' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t{ customFonts.map( ( font ) => (\n\t\t\t\t\t\t<FontFamilyItem key={ font.slug } font={ font } />\n\t\t\t\t\t) ) }\n\t\t\t\t\t{ themeFonts.map( ( font ) => (\n\t\t\t\t\t\t<FontFamilyItem key={ font.slug } font={ font } />\n\t\t\t\t\t) ) }\n\t\t\t\t</ItemGroup>\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default ( { ...props } ) => (\n\t<FontLibraryProvider>\n\t\t<FontFamilies { ...props } />\n\t</FontLibraryProvider>\n);\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,uBAAuB,IAAIC,SAAS,EACpCC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,MAAM,EACNC,OAAO,QACD,uBAAuB;AAC9B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,mBAAmB,IACzBC,kBAAkB,QACZ,8BAA8B;AACrC,OAAOC,gBAAgB,MAAM,sBAAsB;AACnD,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,OAAOC,QAAQ,MAAM,YAAY;AAEjC,SAASC,YAAYA,CAAA,EAAG;EACvB,MAAM;IAAEC,YAAY;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAY,CAAC,GAC3DV,UAAU,CAAEE,kBAAmB,CAAC;EAEjC,OACCS,aAAA,CAAAC,QAAA,QACG,CAAC,CAAEL,YAAY,IAChBI,aAAA,CAACR,gBAAgB;IAChBU,cAAc,EAAGA,CAAA,KAAML,WAAW,CAAC,CAAG;IACtCM,cAAc,EAAGP;EAAc,CAC/B,CACD,EAEDI,aAAA,CAACjB,MAAM;IAACqB,OAAO,EAAG;EAAG,GACpBJ,aAAA,CAACf,MAAM;IAACoB,OAAO,EAAC;EAAe,GAC9BL,aAAA,CAACN,QAAQ;IAACY,KAAK,EAAG;EAAG,GAAG3B,EAAE,CAAE,OAAQ,CAAa,CAAC,EAClDqB,aAAA,CAACf,MAAM;IAACoB,OAAO,EAAC;EAAU,GACzBL,aAAA,CAACb,OAAO;IAACoB,IAAI,EAAG5B,EAAE,CAAE,cAAe;EAAG,GACrCqB,aAAA,CAACd,MAAM;IACNsB,OAAO,EAAGA,CAAA,KACTX,WAAW,CAAE,iBAAkB,CAC/B;IACD,cAAalB,EAAE,CAAE,cAAe,CAAG;IACnC8B,IAAI,EAAGrB,UAAY;IACnBsB,IAAI,EAAG;EAAS,CAChB,CACO,CACF,CACD,CAAC,EACTV,aAAA,CAACnB,SAAS;IAAC8B,UAAU;IAACC,WAAW;EAAA,GAC9Bb,WAAW,CAACc,GAAG,CAAIC,IAAI,IACxBd,aAAA,CAACP,cAAc;IAACsB,GAAG,EAAGD,IAAI,CAACE,IAAM;IAACF,IAAI,EAAGA;EAAM,CAAE,CAChD,CAAC,EACDhB,UAAU,CAACe,GAAG,CAAIC,IAAI,IACvBd,aAAA,CAACP,cAAc;IAACsB,GAAG,EAAGD,IAAI,CAACE,IAAM;IAACF,IAAI,EAAGA;EAAM,CAAE,CAChD,CACQ,CACJ,CACP,CAAC;AAEL;AAEA,gBAAe,CAAE;EAAE,GAAGG;AAAM,CAAC,KAC5BjB,aAAA,CAACV,mBAAmB,QACnBU,aAAA,CAACL,YAAY;EAAA,GAAMsB;AAAK,CAAI,CACR,CACrB"}
1
+ {"version":3,"names":["__","__experimentalItemGroup","ItemGroup","__experimentalVStack","VStack","__experimentalHStack","HStack","Button","Tooltip","typography","useContext","FontLibraryProvider","FontLibraryContext","FontLibraryModal","FontFamilyItem","Subtitle","FontFamilies","modalTabOpen","toggleModal","themeFonts","customFonts","createElement","Fragment","onRequestClose","initialTabName","spacing","justify","level","text","onClick","icon","size","isBordered","isSeparated","map","font","key","slug","FontFamiliesComponent","props","process","env","IS_GUTENBERG_PLUGIN","undefined"],"sources":["@wordpress/edit-site/src/components/global-styles/font-families.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n} from '@wordpress/components';\nimport { typography } from '@wordpress/icons';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontLibraryProvider, {\n\tFontLibraryContext,\n} from './font-library-modal/context';\nimport FontLibraryModal from './font-library-modal';\nimport FontFamilyItem from './font-family-item';\nimport Subtitle from './subtitle';\n\nfunction FontFamilies() {\n\tconst { modalTabOpen, toggleModal, themeFonts, customFonts } =\n\t\tuseContext( FontLibraryContext );\n\n\treturn (\n\t\t<>\n\t\t\t{ !! modalTabOpen && (\n\t\t\t\t<FontLibraryModal\n\t\t\t\t\tonRequestClose={ () => toggleModal() }\n\t\t\t\t\tinitialTabName={ modalTabOpen }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t<Subtitle level={ 3 }>{ __( 'Fonts' ) }</Subtitle>\n\t\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t\t<Tooltip text={ __( 'Manage fonts' ) }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\ttoggleModal( 'installed-fonts' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-label={ __( 'Manage fonts' ) }\n\t\t\t\t\t\t\t\ticon={ typography }\n\t\t\t\t\t\t\t\tsize={ 'small' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t{ customFonts.map( ( font ) => (\n\t\t\t\t\t\t<FontFamilyItem key={ font.slug } font={ font } />\n\t\t\t\t\t) ) }\n\t\t\t\t\t{ themeFonts.map( ( font ) => (\n\t\t\t\t\t\t<FontFamilyItem key={ font.slug } font={ font } />\n\t\t\t\t\t) ) }\n\t\t\t\t</ItemGroup>\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nconst FontFamiliesComponent = ( { ...props } ) => (\n\t<FontLibraryProvider>\n\t\t<FontFamilies { ...props } />\n\t</FontLibraryProvider>\n);\n\nexport default process.env.IS_GUTENBERG_PLUGIN\n\t? FontFamiliesComponent\n\t: undefined;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,uBAAuB,IAAIC,SAAS,EACpCC,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,MAAM,EACNC,OAAO,QACD,uBAAuB;AAC9B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,mBAAmB,IACzBC,kBAAkB,QACZ,8BAA8B;AACrC,OAAOC,gBAAgB,MAAM,sBAAsB;AACnD,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,OAAOC,QAAQ,MAAM,YAAY;AAEjC,SAASC,YAAYA,CAAA,EAAG;EACvB,MAAM;IAAEC,YAAY;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAY,CAAC,GAC3DV,UAAU,CAAEE,kBAAmB,CAAC;EAEjC,OACCS,aAAA,CAAAC,QAAA,QACG,CAAC,CAAEL,YAAY,IAChBI,aAAA,CAACR,gBAAgB;IAChBU,cAAc,EAAGA,CAAA,KAAML,WAAW,CAAC,CAAG;IACtCM,cAAc,EAAGP;EAAc,CAC/B,CACD,EAEDI,aAAA,CAACjB,MAAM;IAACqB,OAAO,EAAG;EAAG,GACpBJ,aAAA,CAACf,MAAM;IAACoB,OAAO,EAAC;EAAe,GAC9BL,aAAA,CAACN,QAAQ;IAACY,KAAK,EAAG;EAAG,GAAG3B,EAAE,CAAE,OAAQ,CAAa,CAAC,EAClDqB,aAAA,CAACf,MAAM;IAACoB,OAAO,EAAC;EAAU,GACzBL,aAAA,CAACb,OAAO;IAACoB,IAAI,EAAG5B,EAAE,CAAE,cAAe;EAAG,GACrCqB,aAAA,CAACd,MAAM;IACNsB,OAAO,EAAGA,CAAA,KACTX,WAAW,CAAE,iBAAkB,CAC/B;IACD,cAAalB,EAAE,CAAE,cAAe,CAAG;IACnC8B,IAAI,EAAGrB,UAAY;IACnBsB,IAAI,EAAG;EAAS,CAChB,CACO,CACF,CACD,CAAC,EACTV,aAAA,CAACnB,SAAS;IAAC8B,UAAU;IAACC,WAAW;EAAA,GAC9Bb,WAAW,CAACc,GAAG,CAAIC,IAAI,IACxBd,aAAA,CAACP,cAAc;IAACsB,GAAG,EAAGD,IAAI,CAACE,IAAM;IAACF,IAAI,EAAGA;EAAM,CAAE,CAChD,CAAC,EACDhB,UAAU,CAACe,GAAG,CAAIC,IAAI,IACvBd,aAAA,CAACP,cAAc;IAACsB,GAAG,EAAGD,IAAI,CAACE,IAAM;IAACF,IAAI,EAAGA;EAAM,CAAE,CAChD,CACQ,CACJ,CACP,CAAC;AAEL;AAEA,MAAMG,qBAAqB,GAAGA,CAAE;EAAE,GAAGC;AAAM,CAAC,KAC3ClB,aAAA,CAACV,mBAAmB,QACnBU,aAAA,CAACL,YAAY;EAAA,GAAMuB;AAAK,CAAI,CACR,CACrB;AAED,eAAeC,OAAO,CAACC,GAAG,CAACC,mBAAmB,GAC3CJ,qBAAqB,GACrBK,SAAS"}
@@ -31,7 +31,9 @@ function CollectionFontDetails({
31
31
  face: face,
32
32
  key: `face${i}`,
33
33
  handleToggleVariant: handleToggleVariant,
34
- selected: isFontFontFaceInOutline(font.slug, face, fontToInstallOutline)
34
+ selected: isFontFontFaceInOutline(font.slug, font.fontFace ? face : null,
35
+ // If the font has no fontFace, we want to check if the font is in the outline
36
+ fontToInstallOutline)
35
37
  }))), createElement(Spacer, {
36
38
  margin: 8
37
39
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalVStack","VStack","__experimentalSpacer","Spacer","CollectionFontVariant","isFontFontFaceInOutline","sortFontFaces","CollectionFontDetails","font","handleToggleVariant","fontToInstallOutline","fontFaces","fontFace","length","fontFamily","fontStyle","fontWeight","createElement","Fragment","margin","spacing","map","face","i","key","selected","slug"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/collection-font-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport CollectionFontVariant from './collection-font-variant';\nimport { isFontFontFaceInOutline } from './utils/fonts-outline';\nimport { sortFontFaces } from './utils/sort-font-faces';\n\nfunction CollectionFontDetails( {\n\tfont,\n\thandleToggleVariant,\n\tfontToInstallOutline,\n} ) {\n\tconst fontFaces =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? sortFontFaces( font.fontFace )\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\t\tfontWeight: '400',\n\t\t\t\t\t},\n\t\t\t ];\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t{ fontFaces.map( ( face, i ) => (\n\t\t\t\t\t<CollectionFontVariant\n\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\thandleToggleVariant={ handleToggleVariant }\n\t\t\t\t\t\tselected={ isFontFontFaceInOutline(\n\t\t\t\t\t\t\tfont.slug,\n\t\t\t\t\t\t\tface,\n\t\t\t\t\t\t\tfontToInstallOutline\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t\t<Spacer margin={ 8 } />\n\t\t</>\n\t);\n}\n\nexport default CollectionFontDetails;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;;AAE9B;AACA;AACA;AACA,OAAOC,qBAAqB,MAAM,2BAA2B;AAC7D,SAASC,uBAAuB,QAAQ,uBAAuB;AAC/D,SAASC,aAAa,QAAQ,yBAAyB;AAEvD,SAASC,qBAAqBA,CAAE;EAC/BC,IAAI;EACJC,mBAAmB;EACnBC;AACD,CAAC,EAAG;EACH,MAAMC,SAAS,GACdH,IAAI,CAACI,QAAQ,IAAIJ,IAAI,CAACI,QAAQ,CAACC,MAAM,GAClCP,aAAa,CAAEE,IAAI,CAACI,QAAS,CAAC,GAC9B,CACA;IACCE,UAAU,EAAEN,IAAI,CAACM,UAAU;IAC3BC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE;EACb,CAAC,CACA;EAEL,OACCC,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACd,MAAM;IAACgB,MAAM,EAAG;EAAG,CAAE,CAAC,EACvBF,aAAA,CAAChB,MAAM;IAACmB,OAAO,EAAG;EAAG,GACpBH,aAAA,CAACd,MAAM;IAACgB,MAAM,EAAG;EAAG,CAAE,CAAC,EACrBR,SAAS,CAACU,GAAG,CAAE,CAAEC,IAAI,EAAEC,CAAC,KACzBN,aAAA,CAACb,qBAAqB;IACrBI,IAAI,EAAGA,IAAM;IACbc,IAAI,EAAGA,IAAM;IACbE,GAAG,EAAI,OAAOD,CAAG,EAAG;IACpBd,mBAAmB,EAAGA,mBAAqB;IAC3CgB,QAAQ,EAAGpB,uBAAuB,CACjCG,IAAI,CAACkB,IAAI,EACTJ,IAAI,EACJZ,oBACD;EAAG,CACH,CACA,CACK,CAAC,EACTO,aAAA,CAACd,MAAM;IAACgB,MAAM,EAAG;EAAG,CAAE,CACrB,CAAC;AAEL;AAEA,eAAeZ,qBAAqB"}
1
+ {"version":3,"names":["__experimentalVStack","VStack","__experimentalSpacer","Spacer","CollectionFontVariant","isFontFontFaceInOutline","sortFontFaces","CollectionFontDetails","font","handleToggleVariant","fontToInstallOutline","fontFaces","fontFace","length","fontFamily","fontStyle","fontWeight","createElement","Fragment","margin","spacing","map","face","i","key","selected","slug"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/collection-font-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport CollectionFontVariant from './collection-font-variant';\nimport { isFontFontFaceInOutline } from './utils/fonts-outline';\nimport { sortFontFaces } from './utils/sort-font-faces';\n\nfunction CollectionFontDetails( {\n\tfont,\n\thandleToggleVariant,\n\tfontToInstallOutline,\n} ) {\n\tconst fontFaces =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? sortFontFaces( font.fontFace )\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\t\tfontWeight: '400',\n\t\t\t\t\t},\n\t\t\t ];\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t{ fontFaces.map( ( face, i ) => (\n\t\t\t\t\t<CollectionFontVariant\n\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\thandleToggleVariant={ handleToggleVariant }\n\t\t\t\t\t\tselected={ isFontFontFaceInOutline(\n\t\t\t\t\t\t\tfont.slug,\n\t\t\t\t\t\t\tfont.fontFace ? face : null, // If the font has no fontFace, we want to check if the font is in the outline\n\t\t\t\t\t\t\tfontToInstallOutline\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t\t<Spacer margin={ 8 } />\n\t\t</>\n\t);\n}\n\nexport default CollectionFontDetails;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;;AAE9B;AACA;AACA;AACA,OAAOC,qBAAqB,MAAM,2BAA2B;AAC7D,SAASC,uBAAuB,QAAQ,uBAAuB;AAC/D,SAASC,aAAa,QAAQ,yBAAyB;AAEvD,SAASC,qBAAqBA,CAAE;EAC/BC,IAAI;EACJC,mBAAmB;EACnBC;AACD,CAAC,EAAG;EACH,MAAMC,SAAS,GACdH,IAAI,CAACI,QAAQ,IAAIJ,IAAI,CAACI,QAAQ,CAACC,MAAM,GAClCP,aAAa,CAAEE,IAAI,CAACI,QAAS,CAAC,GAC9B,CACA;IACCE,UAAU,EAAEN,IAAI,CAACM,UAAU;IAC3BC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE;EACb,CAAC,CACA;EAEL,OACCC,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACd,MAAM;IAACgB,MAAM,EAAG;EAAG,CAAE,CAAC,EACvBF,aAAA,CAAChB,MAAM;IAACmB,OAAO,EAAG;EAAG,GACpBH,aAAA,CAACd,MAAM;IAACgB,MAAM,EAAG;EAAG,CAAE,CAAC,EACrBR,SAAS,CAACU,GAAG,CAAE,CAAEC,IAAI,EAAEC,CAAC,KACzBN,aAAA,CAACb,qBAAqB;IACrBI,IAAI,EAAGA,IAAM;IACbc,IAAI,EAAGA,IAAM;IACbE,GAAG,EAAI,OAAOD,CAAG,EAAG;IACpBd,mBAAmB,EAAGA,mBAAqB;IAC3CgB,QAAQ,EAAGpB,uBAAuB,CACjCG,IAAI,CAACkB,IAAI,EACTlB,IAAI,CAACI,QAAQ,GAAGU,IAAI,GAAG,IAAI;IAAE;IAC7BZ,oBACD;EAAG,CACH,CACA,CACK,CAAC,EACTO,aAAA,CAACd,MAAM;IAACgB,MAAM,EAAG;EAAG,CAAE,CACrB,CAAC;AAEL;AAEA,eAAeZ,qBAAqB"}
@@ -6,8 +6,6 @@ import { createContext, useState, useEffect } from '@wordpress/element';
6
6
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
7
7
  import { useSelect, useDispatch } from '@wordpress/data';
8
8
  import { useEntityRecord, useEntityRecords, store as coreStore } from '@wordpress/core-data';
9
- import { store as noticesStore } from '@wordpress/notices';
10
- import { __ } from '@wordpress/i18n';
11
9
 
12
10
  /**
13
11
  * Internal dependencies
@@ -39,9 +37,6 @@ function FontLibraryProvider({
39
37
  });
40
38
  const globalStyles = useEntityRecord('root', 'globalStyles', globalStylesId);
41
39
  const fontFamiliesHasChanges = !!globalStyles?.edits?.settings?.typography?.fontFamilies;
42
- const {
43
- createErrorNotice
44
- } = useDispatch(noticesStore);
45
40
  const [isInstalling, setIsInstalling] = useState(false);
46
41
  const [refreshKey, setRefreshKey] = useState(0);
47
42
  const refreshLibrary = () => {
@@ -153,7 +148,8 @@ function FontLibraryProvider({
153
148
  // Prepare formData to install.
154
149
  const formData = makeFormDataFromFontFamilies(fonts);
155
150
  // Install the fonts (upload the font files to the server and create the post in the database).
156
- const fontsInstalled = await fetchInstallFonts(formData);
151
+ const response = await fetchInstallFonts(formData);
152
+ const fontsInstalled = response?.successes || [];
157
153
  // Get intersecting font faces between the fonts we tried to installed and the fonts that were installed
158
154
  // (to avoid activating a non installed font).
159
155
  const fontToBeActivated = getIntersectingFontFaces(fontsInstalled, fonts);
@@ -163,35 +159,33 @@ function FontLibraryProvider({
163
159
  saveSpecifiedEntityEdits('root', 'globalStyles', globalStylesId, ['settings.typography.fontFamilies']);
164
160
  refreshLibrary();
165
161
  setIsInstalling(false);
166
- return true;
167
- } catch (e) {
168
- // eslint-disable-next-line no-console
169
- console.error(e);
170
- createErrorNotice(__('Error installing fonts.'), {
171
- type: 'snackbar'
172
- });
162
+ return response;
163
+ } catch (error) {
173
164
  setIsInstalling(false);
174
- return false;
165
+ return {
166
+ errors: [error]
167
+ };
175
168
  }
176
169
  }
177
170
  async function uninstallFont(font) {
178
171
  try {
179
172
  // Uninstall the font (remove the font files from the server and the post from the database).
180
- await fetchUninstallFonts([font]);
173
+ const response = await fetchUninstallFonts([font]);
181
174
  // Deactivate the font family (remove the font family from the global styles).
182
- deactivateFontFamily(font);
183
- // Save the global styles to the database.
184
- await saveSpecifiedEntityEdits('root', 'globalStyles', globalStylesId, ['settings.typography.fontFamilies']);
175
+ if (!response.errors) {
176
+ deactivateFontFamily(font);
177
+ // Save the global styles to the database.
178
+ await saveSpecifiedEntityEdits('root', 'globalStyles', globalStylesId, ['settings.typography.fontFamilies']);
179
+ }
185
180
  // Refresh the library (the the library font families from database).
186
181
  refreshLibrary();
187
- return true;
188
- } catch (e) {
182
+ return response;
183
+ } catch (error) {
189
184
  // eslint-disable-next-line no-console
190
- console.error(e);
191
- createErrorNotice(__('Error uninstalling fonts.'), {
192
- type: 'snackbar'
193
- });
194
- return false;
185
+ console.error(error);
186
+ return {
187
+ errors: [error]
188
+ };
195
189
  }
196
190
  }
197
191
  const deactivateFontFamily = font => {
@@ -215,10 +209,12 @@ function FontLibraryProvider({
215
209
  });
216
210
  // Add custom fonts to the browser.
217
211
  fontsToAdd.forEach(font => {
218
- font.fontFace.forEach(face => {
219
- // Load font faces just in the iframe because they already are in the document.
220
- loadFontFaceInBrowser(face, getDisplaySrcFromFontFace(face.src), 'iframe');
221
- });
212
+ if (font.fontFace) {
213
+ font.fontFace.forEach(face => {
214
+ // Load font faces just in the iframe because they already are in the document.
215
+ loadFontFaceInBrowser(face, getDisplaySrcFromFontFace(face.src), 'iframe');
216
+ });
217
+ }
222
218
  });
223
219
  };
224
220
  const toggleActivateFont = (font, face) => {
@@ -240,7 +236,7 @@ function FontLibraryProvider({
240
236
  // Get the src of the font.
241
237
  const src = getDisplaySrcFromFontFace(fontFace.src, themeUrl);
242
238
  // If the font is already loaded, don't load it again.
243
- if (loadedFontUrls.has(src)) return;
239
+ if (!src || loadedFontUrls.has(src)) return;
244
240
  // Load the font in the browser.
245
241
  loadFontFaceInBrowser(fontFace, src, 'document');
246
242
  // Add the font to the loaded fonts list.