@wordpress/edit-site 5.21.1-next.f8d8eceb.0 → 5.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/page-pages/default-views.js +2 -0
  3. package/build/components/page-pages/default-views.js.map +1 -1
  4. package/build/components/page-patterns/rename-category-menu-item.js +27 -9
  5. package/build/components/page-patterns/rename-category-menu-item.js.map +1 -1
  6. package/build/components/save-button/index.js +4 -2
  7. package/build/components/save-button/index.js.map +1 -1
  8. package/build/components/sidebar-dataviews/index.js +5 -3
  9. package/build/components/sidebar-dataviews/index.js.map +1 -1
  10. package/build/components/sidebar-navigation-screen-page/page-details.js +1 -1
  11. package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  12. package/build/utils/use-activate-theme.js +8 -0
  13. package/build/utils/use-activate-theme.js.map +1 -1
  14. package/build-module/components/page-pages/default-views.js +2 -0
  15. package/build-module/components/page-pages/default-views.js.map +1 -1
  16. package/build-module/components/page-patterns/rename-category-menu-item.js +25 -9
  17. package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -1
  18. package/build-module/components/save-button/index.js +4 -2
  19. package/build-module/components/save-button/index.js.map +1 -1
  20. package/build-module/components/sidebar-dataviews/index.js +5 -3
  21. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  22. package/build-module/components/sidebar-navigation-screen-page/page-details.js +1 -1
  23. package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
  24. package/build-module/utils/use-activate-theme.js +8 -0
  25. package/build-module/utils/use-activate-theme.js.map +1 -1
  26. package/package.json +40 -40
  27. package/src/components/page-pages/default-views.js +2 -0
  28. package/src/components/page-patterns/rename-category-menu-item.js +29 -12
  29. package/src/components/save-button/index.js +10 -5
  30. package/src/components/sidebar-dataviews/index.js +4 -3
  31. package/src/components/sidebar-navigation-screen-page/page-details.js +3 -1
  32. package/src/utils/use-activate-theme.js +5 -0
  33. package/build/components/dataviews/context.js +0 -15
  34. package/build/components/dataviews/context.js.map +0 -1
  35. package/build-module/components/dataviews/context.js +0 -7
  36. package/build-module/components/dataviews/context.js.map +0 -1
  37. package/src/components/dataviews/context.js +0 -7
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 5.22.0 (2023-11-02)
6
+
5
7
  ## 5.21.0 (2023-10-18)
6
8
 
7
9
  ## 5.20.0 (2023-10-05)
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.DEFAULT_STATUSES = void 0;
7
7
  var _i18n = require("@wordpress/i18n");
8
+ var _icons = require("@wordpress/icons");
8
9
  /**
9
10
  * WordPress dependencies
10
11
  */
@@ -48,6 +49,7 @@ const DEFAULT_VIEWS = [{
48
49
  }, {
49
50
  title: (0, _i18n.__)('Trash'),
50
51
  slug: 'trash',
52
+ icon: _icons.trash,
51
53
  view: {
52
54
  ...DEFAULT_PAGE_BASE,
53
55
  filters: {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","DEFAULT_STATUSES","exports","DEFAULT_PAGE_BASE","type","search","filters","status","page","perPage","sort","field","direction","visibleFilters","hiddenFields","layout","DEFAULT_VIEWS","title","__","slug","view","_default","default"],"sources":["@wordpress/edit-site/src/components/page-pages/default-views.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n// DEFAULT_STATUSES is intentionally sorted. Items do not have spaces in between them.\n// The reason for that is to match the default statuses coming from the endpoint\n// (entity request and useEffect to update the view).\nexport const DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All statuses but 'trash'.\n\nconst DEFAULT_PAGE_BASE = {\n\ttype: 'list',\n\tsearch: '',\n\tfilters: {\n\t\tstatus: DEFAULT_STATUSES,\n\t},\n\tpage: 1,\n\tperPage: 5,\n\tsort: {\n\t\tfield: 'date',\n\t\tdirection: 'desc',\n\t},\n\tvisibleFilters: [ 'author', 'status' ],\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'date', 'featured-image' ],\n\tlayout: {},\n};\n\nconst DEFAULT_VIEWS = [\n\t{\n\t\ttitle: __( 'All' ),\n\t\tslug: 'all',\n\t\tview: DEFAULT_PAGE_BASE,\n\t},\n\t{\n\t\ttitle: __( 'Drafts' ),\n\t\tslug: 'drafts',\n\t\tview: {\n\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\tfilters: {\n\t\t\t\tstatus: 'draft',\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\ttitle: __( 'Trash' ),\n\t\tslug: 'trash',\n\t\tview: {\n\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\tfilters: {\n\t\t\t\tstatus: 'trash',\n\t\t\t},\n\t\t},\n\t},\n];\n\nexport default DEFAULT_VIEWS;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAG,sCAAsC,CAAC,CAAC;AAAAC,OAAA,CAAAD,gBAAA,GAAAA,gBAAA;AAExE,MAAME,iBAAiB,GAAG;EACzBC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,EAAE;EACVC,OAAO,EAAE;IACRC,MAAM,EAAEN;EACT,CAAC;EACDO,IAAI,EAAE,CAAC;EACPC,OAAO,EAAE,CAAC;EACVC,IAAI,EAAE;IACLC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE;EACZ,CAAC;EACDC,cAAc,EAAE,CAAE,QAAQ,EAAE,QAAQ,CAAE;EACtC;EACA;EACAC,YAAY,EAAE,CAAE,MAAM,EAAE,gBAAgB,CAAE;EAC1CC,MAAM,EAAE,CAAC;AACV,CAAC;AAED,MAAMC,aAAa,GAAG,CACrB;EACCC,KAAK,EAAE,IAAAC,QAAE,EAAE,KAAM,CAAC;EAClBC,IAAI,EAAE,KAAK;EACXC,IAAI,EAAEjB;AACP,CAAC,EACD;EACCc,KAAK,EAAE,IAAAC,QAAE,EAAE,QAAS,CAAC;EACrBC,IAAI,EAAE,QAAQ;EACdC,IAAI,EAAE;IACL,GAAGjB,iBAAiB;IACpBG,OAAO,EAAE;MACRC,MAAM,EAAE;IACT;EACD;AACD,CAAC,EACD;EACCU,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ,CAAC;EACpBC,IAAI,EAAE,OAAO;EACbC,IAAI,EAAE;IACL,GAAGjB,iBAAiB;IACpBG,OAAO,EAAE;MACRC,MAAM,EAAE;IACT;EACD;AACD,CAAC,CACD;AAAC,IAAAc,QAAA,GAEaL,aAAa;AAAAd,OAAA,CAAAoB,OAAA,GAAAD,QAAA"}
1
+ {"version":3,"names":["_i18n","require","_icons","DEFAULT_STATUSES","exports","DEFAULT_PAGE_BASE","type","search","filters","status","page","perPage","sort","field","direction","visibleFilters","hiddenFields","layout","DEFAULT_VIEWS","title","__","slug","view","icon","trash","_default","default"],"sources":["@wordpress/edit-site/src/components/page-pages/default-views.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { trash } from '@wordpress/icons';\n\n// DEFAULT_STATUSES is intentionally sorted. Items do not have spaces in between them.\n// The reason for that is to match the default statuses coming from the endpoint\n// (entity request and useEffect to update the view).\nexport const DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All statuses but 'trash'.\n\nconst DEFAULT_PAGE_BASE = {\n\ttype: 'list',\n\tsearch: '',\n\tfilters: {\n\t\tstatus: DEFAULT_STATUSES,\n\t},\n\tpage: 1,\n\tperPage: 5,\n\tsort: {\n\t\tfield: 'date',\n\t\tdirection: 'desc',\n\t},\n\tvisibleFilters: [ 'author', 'status' ],\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'date', 'featured-image' ],\n\tlayout: {},\n};\n\nconst DEFAULT_VIEWS = [\n\t{\n\t\ttitle: __( 'All' ),\n\t\tslug: 'all',\n\t\tview: DEFAULT_PAGE_BASE,\n\t},\n\t{\n\t\ttitle: __( 'Drafts' ),\n\t\tslug: 'drafts',\n\t\tview: {\n\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\tfilters: {\n\t\t\t\tstatus: 'draft',\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\ttitle: __( 'Trash' ),\n\t\tslug: 'trash',\n\t\ticon: trash,\n\t\tview: {\n\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\tfilters: {\n\t\t\t\tstatus: 'trash',\n\t\t\t},\n\t\t},\n\t},\n];\n\nexport default DEFAULT_VIEWS;\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACO,MAAME,gBAAgB,GAAG,sCAAsC,CAAC,CAAC;AAAAC,OAAA,CAAAD,gBAAA,GAAAA,gBAAA;AAExE,MAAME,iBAAiB,GAAG;EACzBC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,EAAE;EACVC,OAAO,EAAE;IACRC,MAAM,EAAEN;EACT,CAAC;EACDO,IAAI,EAAE,CAAC;EACPC,OAAO,EAAE,CAAC;EACVC,IAAI,EAAE;IACLC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE;EACZ,CAAC;EACDC,cAAc,EAAE,CAAE,QAAQ,EAAE,QAAQ,CAAE;EACtC;EACA;EACAC,YAAY,EAAE,CAAE,MAAM,EAAE,gBAAgB,CAAE;EAC1CC,MAAM,EAAE,CAAC;AACV,CAAC;AAED,MAAMC,aAAa,GAAG,CACrB;EACCC,KAAK,EAAE,IAAAC,QAAE,EAAE,KAAM,CAAC;EAClBC,IAAI,EAAE,KAAK;EACXC,IAAI,EAAEjB;AACP,CAAC,EACD;EACCc,KAAK,EAAE,IAAAC,QAAE,EAAE,QAAS,CAAC;EACrBC,IAAI,EAAE,QAAQ;EACdC,IAAI,EAAE;IACL,GAAGjB,iBAAiB;IACpBG,OAAO,EAAE;MACRC,MAAM,EAAE;IACT;EACD;AACD,CAAC,EACD;EACCU,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ,CAAC;EACpBC,IAAI,EAAE,OAAO;EACbE,IAAI,EAAEC,YAAK;EACXF,IAAI,EAAE;IACL,GAAGjB,iBAAiB;IACpBG,OAAO,EAAE;MACRC,MAAM,EAAE;IACT;EACD;AACD,CAAC,CACD;AAAC,IAAAgB,QAAA,GAEaP,aAAa;AAAAd,OAAA,CAAAsB,OAAA,GAAAD,QAAA"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
@@ -9,6 +10,7 @@ var _components = require("@wordpress/components");
9
10
  var _element = require("@wordpress/element");
10
11
  var _i18n = require("@wordpress/i18n");
11
12
  var _patterns = require("@wordpress/patterns");
13
+ var _usePatternCategories = _interopRequireDefault(require("../sidebar-navigation-screen-patterns/use-pattern-categories"));
12
14
  var _lockUnlock = require("../../lock-unlock");
13
15
  /**
14
16
  * WordPress dependencies
@@ -18,6 +20,10 @@ var _lockUnlock = require("../../lock-unlock");
18
20
  * Internal dependencies
19
21
  */
20
22
 
23
+ /**
24
+ * Internal dependencies
25
+ */
26
+
21
27
  const {
22
28
  RenamePatternCategoryModal
23
29
  } = (0, _lockUnlock.unlock)(_patterns.privateApis);
@@ -26,7 +32,20 @@ function RenameCategoryMenuItem({
26
32
  onClose
27
33
  }) {
28
34
  const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
29
-
35
+ return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.MenuItem, {
36
+ onClick: () => setIsModalOpen(true)
37
+ }, (0, _i18n.__)('Rename')), isModalOpen && (0, _react.createElement)(RenameModal, {
38
+ category: category,
39
+ onClose: () => {
40
+ setIsModalOpen(false);
41
+ onClose();
42
+ }
43
+ }));
44
+ }
45
+ function RenameModal({
46
+ category,
47
+ onClose
48
+ }) {
30
49
  // User created pattern categories have their properties updated when
31
50
  // retrieved via `getUserPatternCategories`. The rename modal expects an
32
51
  // object that will match the pattern category entity.
@@ -35,15 +54,14 @@ function RenameCategoryMenuItem({
35
54
  slug: category.slug,
36
55
  name: category.label
37
56
  };
38
- return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.MenuItem, {
39
- onClick: () => setIsModalOpen(true)
40
- }, (0, _i18n.__)('Rename')), isModalOpen && (0, _react.createElement)(RenamePatternCategoryModal, {
57
+
58
+ // Optimization - only use pattern categories when the modal is open.
59
+ const existingCategories = (0, _usePatternCategories.default)();
60
+ return (0, _react.createElement)(RenamePatternCategoryModal, {
41
61
  category: normalizedCategory,
42
- onClose: () => {
43
- setIsModalOpen(false);
44
- onClose();
45
- },
62
+ existingCategories: existingCategories,
63
+ onClose: onClose,
46
64
  overlayClassName: "edit-site-list__rename-modal"
47
- }));
65
+ });
48
66
  }
49
67
  //# sourceMappingURL=rename-category-menu-item.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_i18n","_patterns","_lockUnlock","RenamePatternCategoryModal","unlock","patternsPrivateApis","RenameCategoryMenuItem","category","onClose","isModalOpen","setIsModalOpen","useState","normalizedCategory","id","slug","name","label","_react","createElement","Fragment","MenuItem","onClick","__","overlayClassName"],"sources":["@wordpress/edit-site/src/components/page-patterns/rename-category-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { RenamePatternCategoryModal } = unlock( patternsPrivateApis );\n\nexport default function RenameCategoryMenuItem( { category, onClose } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\t// User created pattern categories have their properties updated when\n\t// retrieved via `getUserPatternCategories`. The rename modal expects an\n\t// object that will match the pattern category entity.\n\tconst normalizedCategory = {\n\t\tid: category.id,\n\t\tslug: category.slug,\n\t\tname: category.label,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<RenamePatternCategoryModal\n\t\t\t\t\tcategory={ normalizedCategory }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"edit-site-list__rename-modal\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAKA,IAAAI,WAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGA,MAAM;EAAEK;AAA2B,CAAC,GAAG,IAAAC,kBAAM,EAAEC,qBAAoB,CAAC;AAErD,SAASC,sBAAsBA,CAAE;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,EAAG;EACvE,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;;EAEzD;EACA;EACA;EACA,MAAMC,kBAAkB,GAAG;IAC1BC,EAAE,EAAEN,QAAQ,CAACM,EAAE;IACfC,IAAI,EAAEP,QAAQ,CAACO,IAAI;IACnBC,IAAI,EAAER,QAAQ,CAACS;EAChB,CAAC;EAED,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAACrB,WAAA,CAAAuB,QAAQ;IAACC,OAAO,EAAGA,CAAA,KAAMX,cAAc,CAAE,IAAK;EAAG,GAC/C,IAAAY,QAAE,EAAE,QAAS,CACN,CAAC,EACTb,WAAW,IACZ,IAAAQ,MAAA,CAAAC,aAAA,EAACf,0BAA0B;IAC1BI,QAAQ,EAAGK,kBAAoB;IAC/BJ,OAAO,EAAGA,CAAA,KAAM;MACfE,cAAc,CAAE,KAAM,CAAC;MACvBF,OAAO,CAAC,CAAC;IACV,CAAG;IACHe,gBAAgB,EAAC;EAA8B,CAC/C,CAED,CAAC;AAEL"}
1
+ {"version":3,"names":["_components","require","_element","_i18n","_patterns","_usePatternCategories","_interopRequireDefault","_lockUnlock","RenamePatternCategoryModal","unlock","patternsPrivateApis","RenameCategoryMenuItem","category","onClose","isModalOpen","setIsModalOpen","useState","_react","createElement","Fragment","MenuItem","onClick","__","RenameModal","normalizedCategory","id","slug","name","label","existingCategories","usePatternCategories","overlayClassName"],"sources":["@wordpress/edit-site/src/components/page-patterns/rename-category-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n/**\n * Internal dependencies\n */\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { RenamePatternCategoryModal } = unlock( patternsPrivateApis );\n\nexport default function RenameCategoryMenuItem( { category, onClose } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<RenameModal\n\t\t\t\t\tcategory={ category }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction RenameModal( { category, onClose } ) {\n\t// User created pattern categories have their properties updated when\n\t// retrieved via `getUserPatternCategories`. The rename modal expects an\n\t// object that will match the pattern category entity.\n\tconst normalizedCategory = {\n\t\tid: category.id,\n\t\tslug: category.slug,\n\t\tname: category.label,\n\t};\n\n\t// Optimization - only use pattern categories when the modal is open.\n\tconst existingCategories = usePatternCategories();\n\n\treturn (\n\t\t<RenamePatternCategoryModal\n\t\t\tcategory={ normalizedCategory }\n\t\t\texistingCategories={ existingCategories }\n\t\t\tonClose={ onClose }\n\t\t\toverlayClassName=\"edit-site-list__rename-modal\"\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAIA,IAAAI,qBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAKA,IAAAM,WAAA,GAAAN,OAAA;AAfA;AACA;AACA;;AAKA;AACA;AACA;;AAGA;AACA;AACA;;AAGA,MAAM;EAAEO;AAA2B,CAAC,GAAG,IAAAC,kBAAM,EAAEC,qBAAoB,CAAC;AAErD,SAASC,sBAAsBA,CAAE;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,EAAG;EACvE,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAEzD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAClB,WAAA,CAAAoB,QAAQ;IAACC,OAAO,EAAGA,CAAA,KAAMN,cAAc,CAAE,IAAK;EAAG,GAC/C,IAAAO,QAAE,EAAE,QAAS,CACN,CAAC,EACTR,WAAW,IACZ,IAAAG,MAAA,CAAAC,aAAA,EAACK,WAAW;IACXX,QAAQ,EAAGA,QAAU;IACrBC,OAAO,EAAGA,CAAA,KAAM;MACfE,cAAc,CAAE,KAAM,CAAC;MACvBF,OAAO,CAAC,CAAC;IACV;EAAG,CACH,CAED,CAAC;AAEL;AAEA,SAASU,WAAWA,CAAE;EAAEX,QAAQ;EAAEC;AAAQ,CAAC,EAAG;EAC7C;EACA;EACA;EACA,MAAMW,kBAAkB,GAAG;IAC1BC,EAAE,EAAEb,QAAQ,CAACa,EAAE;IACfC,IAAI,EAAEd,QAAQ,CAACc,IAAI;IACnBC,IAAI,EAAEf,QAAQ,CAACgB;EAChB,CAAC;;EAED;EACA,MAAMC,kBAAkB,GAAG,IAAAC,6BAAoB,EAAC,CAAC;EAEjD,OACC,IAAAb,MAAA,CAAAC,aAAA,EAACV,0BAA0B;IAC1BI,QAAQ,EAAGY,kBAAoB;IAC/BK,kBAAkB,EAAGA,kBAAoB;IACzChB,OAAO,EAAGA,OAAS;IACnBkB,gBAAgB,EAAC;EAA8B,CAC/C,CAAC;AAEJ"}
@@ -35,15 +35,17 @@ function SaveButton({
35
35
  } = (0, _data.useSelect)(select => {
36
36
  const {
37
37
  __experimentalGetDirtyEntityRecords,
38
- isSavingEntityRecord
38
+ isSavingEntityRecord,
39
+ isResolving
39
40
  } = select(_coreData.store);
40
41
  const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
41
42
  const {
42
43
  isSaveViewOpened
43
44
  } = select(_store.store);
45
+ const isActivatingTheme = isResolving('activateTheme');
44
46
  return {
45
47
  isDirty: dirtyEntityRecords.length > 0,
46
- isSaving: dirtyEntityRecords.some(record => isSavingEntityRecord(record.kind, record.name, record.key)),
48
+ isSaving: dirtyEntityRecords.some(record => isSavingEntityRecord(record.kind, record.name, record.key)) || isActivatingTheme,
47
49
  isSaveViewOpen: isSaveViewOpened()
48
50
  };
49
51
  }, []);
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_components","_i18n","_coreData","_keycodes","_store","_isPreviewingTheme","SaveButton","className","variant","showTooltip","defaultLabel","icon","__next40pxDefaultSize","isDirty","isSaving","isSaveViewOpen","useSelect","select","__experimentalGetDirtyEntityRecords","isSavingEntityRecord","coreStore","dirtyEntityRecords","isSaveViewOpened","editSiteStore","length","some","record","kind","name","key","setIsSaveViewOpened","useDispatch","activateSaveEnabled","isPreviewingTheme","disabled","getLabel","__","label","_react","createElement","Button","isBusy","onClick","undefined","shortcut","displayShortcut","primary"],"sources":["@wordpress/edit-site/src/components/save-button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\n\nexport default function SaveButton( {\n\tclassName = 'edit-site-save-button__button',\n\tvariant = 'primary',\n\tshowTooltip = true,\n\tdefaultLabel,\n\ticon,\n\t__next40pxDefaultSize = false,\n} ) {\n\tconst { isDirty, isSaving, isSaveViewOpen } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetDirtyEntityRecords, isSavingEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\tconst { isSaveViewOpened } = select( editSiteStore );\n\t\treturn {\n\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\tisSaving: dirtyEntityRecords.some( ( record ) =>\n\t\t\t\tisSavingEntityRecord( record.kind, record.name, record.key )\n\t\t\t),\n\t\t\tisSaveViewOpen: isSaveViewOpened(),\n\t\t};\n\t}, [] );\n\tconst { setIsSaveViewOpened } = useDispatch( editSiteStore );\n\n\tconst activateSaveEnabled = isPreviewingTheme() || isDirty;\n\tconst disabled = isSaving || ! activateSaveEnabled;\n\n\tconst getLabel = () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tif ( isSaving ) {\n\t\t\t\treturn __( 'Activating' );\n\t\t\t} else if ( disabled ) {\n\t\t\t\treturn __( 'Saved' );\n\t\t\t} else if ( isDirty ) {\n\t\t\t\treturn __( 'Activate & Save' );\n\t\t\t}\n\t\t\treturn __( 'Activate' );\n\t\t}\n\n\t\tif ( isSaving ) {\n\t\t\treturn __( 'Saving' );\n\t\t} else if ( disabled ) {\n\t\t\treturn __( 'Saved' );\n\t\t} else if ( defaultLabel ) {\n\t\t\treturn defaultLabel;\n\t\t}\n\t\treturn __( 'Save' );\n\t};\n\tconst label = getLabel();\n\n\treturn (\n\t\t<Button\n\t\t\tvariant={ variant }\n\t\t\tclassName={ className }\n\t\t\taria-disabled={ disabled }\n\t\t\taria-expanded={ isSaveViewOpen }\n\t\t\tisBusy={ isSaving }\n\t\t\tonClick={ disabled ? undefined : () => setIsSaveViewOpened( true ) }\n\t\t\tlabel={ label }\n\t\t\t/*\n\t\t\t * We want the tooltip to show the keyboard shortcut only when the\n\t\t\t * button does something, i.e. when it's not disabled.\n\t\t\t */\n\t\t\tshortcut={ disabled ? undefined : displayShortcut.primary( 's' ) }\n\t\t\t/*\n\t\t\t * Displaying the keyboard shortcut conditionally makes the tooltip\n\t\t\t * itself show conditionally. This would trigger a full-rerendering\n\t\t\t * of the button that we want to avoid. By setting `showTooltip`,\n\t\t\t & the tooltip is always rendered even when there's no keyboard shortcut.\n\t\t\t */\n\t\t\tshowTooltip={ showTooltip }\n\t\t\ticon={ icon }\n\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t>\n\t\t\t{ label }\n\t\t</Button>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_data","require","_components","_i18n","_coreData","_keycodes","_store","_isPreviewingTheme","SaveButton","className","variant","showTooltip","defaultLabel","icon","__next40pxDefaultSize","isDirty","isSaving","isSaveViewOpen","useSelect","select","__experimentalGetDirtyEntityRecords","isSavingEntityRecord","isResolving","coreStore","dirtyEntityRecords","isSaveViewOpened","editSiteStore","isActivatingTheme","length","some","record","kind","name","key","setIsSaveViewOpened","useDispatch","activateSaveEnabled","isPreviewingTheme","disabled","getLabel","__","label","_react","createElement","Button","isBusy","onClick","undefined","shortcut","displayShortcut","primary"],"sources":["@wordpress/edit-site/src/components/save-button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\n\nexport default function SaveButton( {\n\tclassName = 'edit-site-save-button__button',\n\tvariant = 'primary',\n\tshowTooltip = true,\n\tdefaultLabel,\n\ticon,\n\t__next40pxDefaultSize = false,\n} ) {\n\tconst { isDirty, isSaving, isSaveViewOpen } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\tisSavingEntityRecord,\n\t\t\tisResolving,\n\t\t} = select( coreStore );\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\tconst { isSaveViewOpened } = select( editSiteStore );\n\t\tconst isActivatingTheme = isResolving( 'activateTheme' );\n\t\treturn {\n\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\tisSaving:\n\t\t\t\tdirtyEntityRecords.some( ( record ) =>\n\t\t\t\t\tisSavingEntityRecord( record.kind, record.name, record.key )\n\t\t\t\t) || isActivatingTheme,\n\t\t\tisSaveViewOpen: isSaveViewOpened(),\n\t\t};\n\t}, [] );\n\tconst { setIsSaveViewOpened } = useDispatch( editSiteStore );\n\n\tconst activateSaveEnabled = isPreviewingTheme() || isDirty;\n\tconst disabled = isSaving || ! activateSaveEnabled;\n\n\tconst getLabel = () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tif ( isSaving ) {\n\t\t\t\treturn __( 'Activating' );\n\t\t\t} else if ( disabled ) {\n\t\t\t\treturn __( 'Saved' );\n\t\t\t} else if ( isDirty ) {\n\t\t\t\treturn __( 'Activate & Save' );\n\t\t\t}\n\t\t\treturn __( 'Activate' );\n\t\t}\n\n\t\tif ( isSaving ) {\n\t\t\treturn __( 'Saving' );\n\t\t} else if ( disabled ) {\n\t\t\treturn __( 'Saved' );\n\t\t} else if ( defaultLabel ) {\n\t\t\treturn defaultLabel;\n\t\t}\n\t\treturn __( 'Save' );\n\t};\n\tconst label = getLabel();\n\n\treturn (\n\t\t<Button\n\t\t\tvariant={ variant }\n\t\t\tclassName={ className }\n\t\t\taria-disabled={ disabled }\n\t\t\taria-expanded={ isSaveViewOpen }\n\t\t\tisBusy={ isSaving }\n\t\t\tonClick={ disabled ? undefined : () => setIsSaveViewOpened( true ) }\n\t\t\tlabel={ label }\n\t\t\t/*\n\t\t\t * We want the tooltip to show the keyboard shortcut only when the\n\t\t\t * button does something, i.e. when it's not disabled.\n\t\t\t */\n\t\t\tshortcut={ disabled ? undefined : displayShortcut.primary( 's' ) }\n\t\t\t/*\n\t\t\t * Displaying the keyboard shortcut conditionally makes the tooltip\n\t\t\t * itself show conditionally. This would trigger a full-rerendering\n\t\t\t * of the button that we want to avoid. By setting `showTooltip`,\n\t\t\t & the tooltip is always rendered even when there's no keyboard shortcut.\n\t\t\t */\n\t\t\tshowTooltip={ showTooltip }\n\t\t\ticon={ icon }\n\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t>\n\t\t\t{ label }\n\t\t</Button>\n\t);\n}\n"],"mappings":"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"}
@@ -33,20 +33,21 @@ function getDataViewIcon(dataview) {
33
33
  }
34
34
  function DataViewItem({
35
35
  dataview,
36
- isActive
36
+ isActive,
37
+ icon
37
38
  }) {
38
39
  const {
39
40
  params: {
40
41
  path
41
42
  }
42
43
  } = useLocation();
43
- const icon = getDataViewIcon(dataview);
44
+ const _icon = icon || getDataViewIcon(dataview);
44
45
  const linkInfo = (0, _link.useLink)({
45
46
  path,
46
47
  activeView: dataview.slug
47
48
  });
48
49
  return (0, _react.createElement)(_sidebarNavigationItem.default, {
49
- icon: icon,
50
+ icon: _icon,
50
51
  ...linkInfo,
51
52
  "aria-current": isActive ? 'true' : undefined
52
53
  }, dataview.title);
@@ -64,6 +65,7 @@ function DataViewsSidebarContent() {
64
65
  return (0, _react.createElement)(_components.__experimentalItemGroup, null, _defaultViews.default.map(dataview => {
65
66
  return (0, _react.createElement)(DataViewItem, {
66
67
  key: dataview.slug,
68
+ icon: dataview.icon,
67
69
  dataview: dataview,
68
70
  isActive: dataview.slug === activeView
69
71
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_icons","_router","_link","_defaultViews","_interopRequireDefault","_lockUnlock","_sidebarNavigationItem","useLocation","unlock","routerPrivateApis","getDataViewIcon","dataview","icons","list","page","grid","columns","view","type","DataViewItem","isActive","params","path","icon","linkInfo","useLink","activeView","slug","_react","createElement","default","undefined","title","DataViewsSidebarContent","__experimentalItemGroup","DEFAULT_VIEWS","map","key"],"sources":["@wordpress/edit-site/src/components/sidebar-dataviews/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { page, columns } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { useLink } from '../routes/link';\nimport { default as DEFAULT_VIEWS } from '../page-pages/default-views';\nimport { unlock } from '../../lock-unlock';\nconst { useLocation } = unlock( routerPrivateApis );\nimport SidebarNavigationItem from '../sidebar-navigation-item';\n\nfunction getDataViewIcon( dataview ) {\n\tconst icons = { list: page, grid: columns };\n\treturn icons[ dataview.view.type ];\n}\n\nfunction DataViewItem( { dataview, isActive } ) {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\n\tconst icon = getDataViewIcon( dataview );\n\n\tconst linkInfo = useLink( {\n\t\tpath,\n\t\tactiveView: dataview.slug,\n\t} );\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\ticon={ icon }\n\t\t\t{ ...linkInfo }\n\t\t\taria-current={ isActive ? 'true' : undefined }\n\t\t>\n\t\t\t{ dataview.title }\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function DataViewsSidebarContent() {\n\tconst {\n\t\tparams: { path, activeView = 'all' },\n\t} = useLocation();\n\tif ( ! path || path !== '/pages' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ItemGroup>\n\t\t\t{ DEFAULT_VIEWS.map( ( dataview ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DataViewItem\n\t\t\t\t\t\tkey={ dataview.slug }\n\t\t\t\t\t\tdataview={ dataview }\n\t\t\t\t\t\tisActive={ dataview.slug === activeView }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ItemGroup>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAKA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAEA,IAAAO,sBAAA,GAAAF,sBAAA,CAAAL,OAAA;AAdA;AACA;AACA;;AAKA;AACA;AACA;;AAIA,MAAM;EAAEQ;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAGnD,SAASC,eAAeA,CAAEC,QAAQ,EAAG;EACpC,MAAMC,KAAK,GAAG;IAAEC,IAAI,EAAEC,WAAI;IAAEC,IAAI,EAAEC;EAAQ,CAAC;EAC3C,OAAOJ,KAAK,CAAED,QAAQ,CAACM,IAAI,CAACC,IAAI,CAAE;AACnC;AAEA,SAASC,YAAYA,CAAE;EAAER,QAAQ;EAAES;AAAS,CAAC,EAAG;EAC/C,MAAM;IACLC,MAAM,EAAE;MAAEC;IAAK;EAChB,CAAC,GAAGf,WAAW,CAAC,CAAC;EAEjB,MAAMgB,IAAI,GAAGb,eAAe,CAAEC,QAAS,CAAC;EAExC,MAAMa,QAAQ,GAAG,IAAAC,aAAO,EAAE;IACzBH,IAAI;IACJI,UAAU,EAAEf,QAAQ,CAACgB;EACtB,CAAE,CAAC;EACH,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACvB,sBAAA,CAAAwB,OAAqB;IACrBP,IAAI,EAAGA,IAAM;IAAA,GACRC,QAAQ;IACb,gBAAeJ,QAAQ,GAAG,MAAM,GAAGW;EAAW,GAE5CpB,QAAQ,CAACqB,KACW,CAAC;AAE1B;AAEe,SAASC,uBAAuBA,CAAA,EAAG;EACjD,MAAM;IACLZ,MAAM,EAAE;MAAEC,IAAI;MAAEI,UAAU,GAAG;IAAM;EACpC,CAAC,GAAGnB,WAAW,CAAC,CAAC;EACjB,IAAK,CAAEe,IAAI,IAAIA,IAAI,KAAK,QAAQ,EAAG;IAClC,OAAO,IAAI;EACZ;EAEA,OACC,IAAAM,MAAA,CAAAC,aAAA,EAAC/B,WAAA,CAAAoC,uBAAS,QACPC,qBAAa,CAACC,GAAG,CAAIzB,QAAQ,IAAM;IACpC,OACC,IAAAiB,MAAA,CAAAC,aAAA,EAACV,YAAY;MACZkB,GAAG,EAAG1B,QAAQ,CAACgB,IAAM;MACrBhB,QAAQ,EAAGA,QAAU;MACrBS,QAAQ,EAAGT,QAAQ,CAACgB,IAAI,KAAKD;IAAY,CACzC,CAAC;EAEJ,CAAE,CACQ,CAAC;AAEd"}
1
+ {"version":3,"names":["_components","require","_icons","_router","_link","_defaultViews","_interopRequireDefault","_lockUnlock","_sidebarNavigationItem","useLocation","unlock","routerPrivateApis","getDataViewIcon","dataview","icons","list","page","grid","columns","view","type","DataViewItem","isActive","icon","params","path","_icon","linkInfo","useLink","activeView","slug","_react","createElement","default","undefined","title","DataViewsSidebarContent","__experimentalItemGroup","DEFAULT_VIEWS","map","key"],"sources":["@wordpress/edit-site/src/components/sidebar-dataviews/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { page, columns } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { useLink } from '../routes/link';\nimport { default as DEFAULT_VIEWS } from '../page-pages/default-views';\nimport { unlock } from '../../lock-unlock';\nconst { useLocation } = unlock( routerPrivateApis );\nimport SidebarNavigationItem from '../sidebar-navigation-item';\n\nfunction getDataViewIcon( dataview ) {\n\tconst icons = { list: page, grid: columns };\n\treturn icons[ dataview.view.type ];\n}\n\nfunction DataViewItem( { dataview, isActive, icon } ) {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\n\tconst _icon = icon || getDataViewIcon( dataview );\n\n\tconst linkInfo = useLink( {\n\t\tpath,\n\t\tactiveView: dataview.slug,\n\t} );\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\ticon={ _icon }\n\t\t\t{ ...linkInfo }\n\t\t\taria-current={ isActive ? 'true' : undefined }\n\t\t>\n\t\t\t{ dataview.title }\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function DataViewsSidebarContent() {\n\tconst {\n\t\tparams: { path, activeView = 'all' },\n\t} = useLocation();\n\tif ( ! path || path !== '/pages' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ItemGroup>\n\t\t\t{ DEFAULT_VIEWS.map( ( dataview ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DataViewItem\n\t\t\t\t\t\tkey={ dataview.slug }\n\t\t\t\t\t\ticon={ dataview.icon }\n\t\t\t\t\t\tdataview={ dataview }\n\t\t\t\t\t\tisActive={ dataview.slug === activeView }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ItemGroup>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAKA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAEA,IAAAO,sBAAA,GAAAF,sBAAA,CAAAL,OAAA;AAdA;AACA;AACA;;AAKA;AACA;AACA;;AAIA,MAAM;EAAEQ;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;AAGnD,SAASC,eAAeA,CAAEC,QAAQ,EAAG;EACpC,MAAMC,KAAK,GAAG;IAAEC,IAAI,EAAEC,WAAI;IAAEC,IAAI,EAAEC;EAAQ,CAAC;EAC3C,OAAOJ,KAAK,CAAED,QAAQ,CAACM,IAAI,CAACC,IAAI,CAAE;AACnC;AAEA,SAASC,YAAYA,CAAE;EAAER,QAAQ;EAAES,QAAQ;EAAEC;AAAK,CAAC,EAAG;EACrD,MAAM;IACLC,MAAM,EAAE;MAAEC;IAAK;EAChB,CAAC,GAAGhB,WAAW,CAAC,CAAC;EAEjB,MAAMiB,KAAK,GAAGH,IAAI,IAAIX,eAAe,CAAEC,QAAS,CAAC;EAEjD,MAAMc,QAAQ,GAAG,IAAAC,aAAO,EAAE;IACzBH,IAAI;IACJI,UAAU,EAAEhB,QAAQ,CAACiB;EACtB,CAAE,CAAC;EACH,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACxB,sBAAA,CAAAyB,OAAqB;IACrBV,IAAI,EAAGG,KAAO;IAAA,GACTC,QAAQ;IACb,gBAAeL,QAAQ,GAAG,MAAM,GAAGY;EAAW,GAE5CrB,QAAQ,CAACsB,KACW,CAAC;AAE1B;AAEe,SAASC,uBAAuBA,CAAA,EAAG;EACjD,MAAM;IACLZ,MAAM,EAAE;MAAEC,IAAI;MAAEI,UAAU,GAAG;IAAM;EACpC,CAAC,GAAGpB,WAAW,CAAC,CAAC;EACjB,IAAK,CAAEgB,IAAI,IAAIA,IAAI,KAAK,QAAQ,EAAG;IAClC,OAAO,IAAI;EACZ;EAEA,OACC,IAAAM,MAAA,CAAAC,aAAA,EAAChC,WAAA,CAAAqC,uBAAS,QACPC,qBAAa,CAACC,GAAG,CAAI1B,QAAQ,IAAM;IACpC,OACC,IAAAkB,MAAA,CAAAC,aAAA,EAACX,YAAY;MACZmB,GAAG,EAAG3B,QAAQ,CAACiB,IAAM;MACrBP,IAAI,EAAGV,QAAQ,CAACU,IAAM;MACtBV,QAAQ,EAAGA,QAAU;MACrBS,QAAQ,EAAGT,QAAQ,CAACiB,IAAI,KAAKD;IAAY,CACzC,CAAC;EAEJ,CAAE,CACQ,CAAC;AAEd"}
@@ -43,7 +43,7 @@ function getPageDetails(page) {
43
43
  label: (0, _i18n.__)('Slug'),
44
44
  value: (0, _react.createElement)(_components.__experimentalTruncate, {
45
45
  numberOfLines: 1
46
- }, (0, _url.safeDecodeURIComponent)(page.slug))
46
+ }, (0, _url.safeDecodeURIComponent)(page.slug || page.generated_slug))
47
47
  }];
48
48
  if (page?.templateTitle) {
49
49
  details.push({
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_wordcount","_data","_htmlEntities","_coreData","_url","_statusLabel","_interopRequireDefault","_lockUnlock","_store","_sidebarNavigationScreenDetailsPanel","_constants","AVERAGE_READING_RATE","getPageDetails","page","details","label","__","value","_react","createElement","default","status","password","date","short","__experimentalTruncate","numberOfLines","safeDecodeURIComponent","slug","templateTitle","push","decodeEntities","parentTitle","wordCountType","_x","wordsCounted","content","rendered","wordCount","readingTime","Math","round","isPostsPage","toLocaleString","sprintf","PageDetails","id","record","useEntityRecord","useSelect","select","getEditedPostContext","unlock","editSiteStore","postContext","templates","coreStore","getEntityRecords","TEMPLATE_POST_TYPE","per_page","templateSlug","postType","_templateTitle","find","template","title","_parentTitle","parent","getEntityRecord","_fields","siteSettings","page_for_posts","SidebarNavigationScreenDetailsPanel","spacing","map","SidebarNavigationScreenDetailsPanelRow","key","SidebarNavigationScreenDetailsPanelLabel","SidebarNavigationScreenDetailsPanelValue"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-page/page-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { __experimentalTruncate as Truncate } from '@wordpress/components';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport { useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore, useEntityRecord } from '@wordpress/core-data';\nimport { safeDecodeURIComponent } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport StatusLabel from './status-label';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n\tSidebarNavigationScreenDetailsPanelLabel,\n\tSidebarNavigationScreenDetailsPanelValue,\n} from '../sidebar-navigation-screen-details-panel';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n// Taken from packages/editor/src/components/time-to-read/index.js.\nconst AVERAGE_READING_RATE = 189;\n\nfunction getPageDetails( page ) {\n\tif ( ! page ) {\n\t\treturn [];\n\t}\n\n\tconst details = [\n\t\t{\n\t\t\tlabel: __( 'Status' ),\n\t\t\tvalue: (\n\t\t\t\t<StatusLabel\n\t\t\t\t\tstatus={ page?.password ? 'protected' : page.status }\n\t\t\t\t\tdate={ page?.date }\n\t\t\t\t\tshort\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tlabel: __( 'Slug' ),\n\t\t\tvalue: (\n\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t{ safeDecodeURIComponent( page.slug ) }\n\t\t\t\t</Truncate>\n\t\t\t),\n\t\t},\n\t];\n\n\tif ( page?.templateTitle ) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Template' ),\n\t\t\tvalue: decodeEntities( page.templateTitle ),\n\t\t} );\n\t}\n\n\tif ( page?.parentTitle ) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Parent' ),\n\t\t\tvalue: decodeEntities( page.parentTitle || __( '(no title)' ) ),\n\t\t} );\n\t}\n\n\t/*\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\tconst wordsCounted = page?.content?.rendered\n\t\t? wordCount( page.content.rendered, wordCountType )\n\t\t: 0;\n\tconst readingTime = Math.round( wordsCounted / AVERAGE_READING_RATE );\n\n\tif ( wordsCounted && ! page?.isPostsPage ) {\n\t\tdetails.push(\n\t\t\t{\n\t\t\t\tlabel: __( 'Words' ),\n\t\t\t\tvalue: wordsCounted.toLocaleString() || __( 'Unknown' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Time to read' ),\n\t\t\t\tvalue:\n\t\t\t\t\treadingTime > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: is the number of minutes. */\n\t\t\t\t\t\t\t\t__( '%s mins' ),\n\t\t\t\t\t\t\t\treadingTime.toLocaleString()\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( '< 1 min' ),\n\t\t\t}\n\t\t);\n\t}\n\treturn details;\n}\n\nexport default function PageDetails( { id } ) {\n\tconst { record } = useEntityRecord( 'postType', 'page', id );\n\tconst { parentTitle, templateTitle, isPostsPage } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostContext } = unlock( select( editSiteStore ) );\n\t\t\tconst postContext = getEditedPostContext();\n\t\t\tconst templates = select( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{ per_page: -1 }\n\t\t\t);\n\t\t\t// Template title.\n\t\t\tconst templateSlug =\n\t\t\t\t// Checks that the post type matches the current theme's post type, otherwise\n\t\t\t\t// the templateSlug returns 'home'.\n\t\t\t\tpostContext?.postType === 'page'\n\t\t\t\t\t? postContext?.templateSlug\n\t\t\t\t\t: null;\n\t\t\tconst _templateTitle =\n\t\t\t\ttemplates && templateSlug\n\t\t\t\t\t? templates.find(\n\t\t\t\t\t\t\t( template ) => template.slug === templateSlug\n\t\t\t\t\t )?.title?.rendered\n\t\t\t\t\t: null;\n\n\t\t\t// Parent page title.\n\t\t\tconst _parentTitle = record?.parent\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\trecord.parent,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t_fields: [ 'title' ],\n\t\t\t\t\t\t}\n\t\t\t\t )?.title?.rendered\n\t\t\t\t: null;\n\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\n\t\t\treturn {\n\t\t\t\tparentTitle: _parentTitle,\n\t\t\t\ttemplateTitle: _templateTitle,\n\t\t\t\tisPostsPage: record?.id === siteSettings?.page_for_posts,\n\t\t\t};\n\t\t},\n\t\t[ record?.parent, record?.id ]\n\t);\n\treturn (\n\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\tspacing={ 5 }\n\t\t\ttitle={ __( 'Details' ) }\n\t\t>\n\t\t\t{ getPageDetails( {\n\t\t\t\tparentTitle,\n\t\t\t\ttemplateTitle,\n\t\t\t\tisPostsPage,\n\t\t\t\t...record,\n\t\t\t} ).map( ( { label, value } ) => (\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow key={ label }>\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t{ value }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t) ) }\n\t\t</SidebarNavigationScreenDetailsPanel>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_components","_wordcount","_data","_htmlEntities","_coreData","_url","_statusLabel","_interopRequireDefault","_lockUnlock","_store","_sidebarNavigationScreenDetailsPanel","_constants","AVERAGE_READING_RATE","getPageDetails","page","details","label","__","value","_react","createElement","default","status","password","date","short","__experimentalTruncate","numberOfLines","safeDecodeURIComponent","slug","generated_slug","templateTitle","push","decodeEntities","parentTitle","wordCountType","_x","wordsCounted","content","rendered","wordCount","readingTime","Math","round","isPostsPage","toLocaleString","sprintf","PageDetails","id","record","useEntityRecord","useSelect","select","getEditedPostContext","unlock","editSiteStore","postContext","templates","coreStore","getEntityRecords","TEMPLATE_POST_TYPE","per_page","templateSlug","postType","_templateTitle","find","template","title","_parentTitle","parent","getEntityRecord","_fields","siteSettings","page_for_posts","SidebarNavigationScreenDetailsPanel","spacing","map","SidebarNavigationScreenDetailsPanelRow","key","SidebarNavigationScreenDetailsPanelLabel","SidebarNavigationScreenDetailsPanelValue"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-page/page-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { __experimentalTruncate as Truncate } from '@wordpress/components';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport { useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore, useEntityRecord } from '@wordpress/core-data';\nimport { safeDecodeURIComponent } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport StatusLabel from './status-label';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n\tSidebarNavigationScreenDetailsPanelLabel,\n\tSidebarNavigationScreenDetailsPanelValue,\n} from '../sidebar-navigation-screen-details-panel';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n// Taken from packages/editor/src/components/time-to-read/index.js.\nconst AVERAGE_READING_RATE = 189;\n\nfunction getPageDetails( page ) {\n\tif ( ! page ) {\n\t\treturn [];\n\t}\n\n\tconst details = [\n\t\t{\n\t\t\tlabel: __( 'Status' ),\n\t\t\tvalue: (\n\t\t\t\t<StatusLabel\n\t\t\t\t\tstatus={ page?.password ? 'protected' : page.status }\n\t\t\t\t\tdate={ page?.date }\n\t\t\t\t\tshort\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tlabel: __( 'Slug' ),\n\t\t\tvalue: (\n\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t{ safeDecodeURIComponent(\n\t\t\t\t\t\tpage.slug || page.generated_slug\n\t\t\t\t\t) }\n\t\t\t\t</Truncate>\n\t\t\t),\n\t\t},\n\t];\n\n\tif ( page?.templateTitle ) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Template' ),\n\t\t\tvalue: decodeEntities( page.templateTitle ),\n\t\t} );\n\t}\n\n\tif ( page?.parentTitle ) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Parent' ),\n\t\t\tvalue: decodeEntities( page.parentTitle || __( '(no title)' ) ),\n\t\t} );\n\t}\n\n\t/*\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\tconst wordsCounted = page?.content?.rendered\n\t\t? wordCount( page.content.rendered, wordCountType )\n\t\t: 0;\n\tconst readingTime = Math.round( wordsCounted / AVERAGE_READING_RATE );\n\n\tif ( wordsCounted && ! page?.isPostsPage ) {\n\t\tdetails.push(\n\t\t\t{\n\t\t\t\tlabel: __( 'Words' ),\n\t\t\t\tvalue: wordsCounted.toLocaleString() || __( 'Unknown' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Time to read' ),\n\t\t\t\tvalue:\n\t\t\t\t\treadingTime > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: is the number of minutes. */\n\t\t\t\t\t\t\t\t__( '%s mins' ),\n\t\t\t\t\t\t\t\treadingTime.toLocaleString()\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( '< 1 min' ),\n\t\t\t}\n\t\t);\n\t}\n\treturn details;\n}\n\nexport default function PageDetails( { id } ) {\n\tconst { record } = useEntityRecord( 'postType', 'page', id );\n\tconst { parentTitle, templateTitle, isPostsPage } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostContext } = unlock( select( editSiteStore ) );\n\t\t\tconst postContext = getEditedPostContext();\n\t\t\tconst templates = select( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{ per_page: -1 }\n\t\t\t);\n\t\t\t// Template title.\n\t\t\tconst templateSlug =\n\t\t\t\t// Checks that the post type matches the current theme's post type, otherwise\n\t\t\t\t// the templateSlug returns 'home'.\n\t\t\t\tpostContext?.postType === 'page'\n\t\t\t\t\t? postContext?.templateSlug\n\t\t\t\t\t: null;\n\t\t\tconst _templateTitle =\n\t\t\t\ttemplates && templateSlug\n\t\t\t\t\t? templates.find(\n\t\t\t\t\t\t\t( template ) => template.slug === templateSlug\n\t\t\t\t\t )?.title?.rendered\n\t\t\t\t\t: null;\n\n\t\t\t// Parent page title.\n\t\t\tconst _parentTitle = record?.parent\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\trecord.parent,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t_fields: [ 'title' ],\n\t\t\t\t\t\t}\n\t\t\t\t )?.title?.rendered\n\t\t\t\t: null;\n\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\n\t\t\treturn {\n\t\t\t\tparentTitle: _parentTitle,\n\t\t\t\ttemplateTitle: _templateTitle,\n\t\t\t\tisPostsPage: record?.id === siteSettings?.page_for_posts,\n\t\t\t};\n\t\t},\n\t\t[ record?.parent, record?.id ]\n\t);\n\treturn (\n\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\tspacing={ 5 }\n\t\t\ttitle={ __( 'Details' ) }\n\t\t>\n\t\t\t{ getPageDetails( {\n\t\t\t\tparentTitle,\n\t\t\t\ttemplateTitle,\n\t\t\t\tisPostsPage,\n\t\t\t\t...record,\n\t\t\t} ).map( ( { label, value } ) => (\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow key={ label }>\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t{ value }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t) ) }\n\t\t</SidebarNavigationScreenDetailsPanel>\n\t);\n}\n"],"mappings":"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"}
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useActivateTheme = useActivateTheme;
7
+ var _coreData = require("@wordpress/core-data");
8
+ var _data = require("@wordpress/data");
7
9
  var _router = require("@wordpress/router");
8
10
  var _lockUnlock = require("../lock-unlock");
9
11
  var _isPreviewingTheme = require("./is-previewing-theme");
@@ -28,10 +30,16 @@ const {
28
30
  function useActivateTheme() {
29
31
  const history = useHistory();
30
32
  const location = useLocation();
33
+ const {
34
+ startResolution,
35
+ finishResolution
36
+ } = (0, _data.useDispatch)(_coreData.store);
31
37
  return async () => {
32
38
  if ((0, _isPreviewingTheme.isPreviewingTheme)()) {
33
39
  const activationURL = 'themes.php?action=activate&stylesheet=' + (0, _isPreviewingTheme.currentlyPreviewingTheme)() + '&_wpnonce=' + window.WP_BLOCK_THEME_ACTIVATE_NONCE;
40
+ startResolution('activateTheme');
34
41
  await window.fetch(activationURL);
42
+ finishResolution('activateTheme');
35
43
  const {
36
44
  wp_theme_preview: themePreview,
37
45
  ...params
@@ -1 +1 @@
1
- {"version":3,"names":["_router","require","_lockUnlock","_isPreviewingTheme","useHistory","useLocation","unlock","routerPrivateApis","useActivateTheme","history","location","isPreviewingTheme","activationURL","currentlyPreviewingTheme","window","WP_BLOCK_THEME_ACTIVATE_NONCE","fetch","wp_theme_preview","themePreview","params","replace"],"sources":["@wordpress/edit-site/src/utils/use-activate-theme.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from './is-previewing-theme';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\n/**\n * This should be refactored to use the REST API, once the REST API can activate themes.\n *\n * @return {Function} A function that activates the theme.\n */\nexport function useActivateTheme() {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\n\treturn async () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tconst activationURL =\n\t\t\t\t'themes.php?action=activate&stylesheet=' +\n\t\t\t\tcurrentlyPreviewingTheme() +\n\t\t\t\t'&_wpnonce=' +\n\t\t\t\twindow.WP_BLOCK_THEME_ACTIVATE_NONCE;\n\t\t\tawait window.fetch( activationURL );\n\t\t\tconst { wp_theme_preview: themePreview, ...params } =\n\t\t\t\tlocation.params;\n\t\t\thistory.replace( params );\n\t\t}\n\t};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAOA,MAAM;EAAEG,UAAU;EAAEC;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;;AAE/D;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAAA,EAAG;EAClC,MAAMC,OAAO,GAAGL,UAAU,CAAC,CAAC;EAC5B,MAAMM,QAAQ,GAAGL,WAAW,CAAC,CAAC;EAE9B,OAAO,YAAY;IAClB,IAAK,IAAAM,oCAAiB,EAAC,CAAC,EAAG;MAC1B,MAAMC,aAAa,GAClB,wCAAwC,GACxC,IAAAC,2CAAwB,EAAC,CAAC,GAC1B,YAAY,GACZC,MAAM,CAACC,6BAA6B;MACrC,MAAMD,MAAM,CAACE,KAAK,CAAEJ,aAAc,CAAC;MACnC,MAAM;QAAEK,gBAAgB,EAAEC,YAAY;QAAE,GAAGC;MAAO,CAAC,GAClDT,QAAQ,CAACS,MAAM;MAChBV,OAAO,CAACW,OAAO,CAAED,MAAO,CAAC;IAC1B;EACD,CAAC;AACF"}
1
+ {"version":3,"names":["_coreData","require","_data","_router","_lockUnlock","_isPreviewingTheme","useHistory","useLocation","unlock","routerPrivateApis","useActivateTheme","history","location","startResolution","finishResolution","useDispatch","coreStore","isPreviewingTheme","activationURL","currentlyPreviewingTheme","window","WP_BLOCK_THEME_ACTIVATE_NONCE","fetch","wp_theme_preview","themePreview","params","replace"],"sources":["@wordpress/edit-site/src/utils/use-activate-theme.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from './is-previewing-theme';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\n/**\n * This should be refactored to use the REST API, once the REST API can activate themes.\n *\n * @return {Function} A function that activates the theme.\n */\nexport function useActivateTheme() {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst { startResolution, finishResolution } = useDispatch( coreStore );\n\n\treturn async () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tconst activationURL =\n\t\t\t\t'themes.php?action=activate&stylesheet=' +\n\t\t\t\tcurrentlyPreviewingTheme() +\n\t\t\t\t'&_wpnonce=' +\n\t\t\t\twindow.WP_BLOCK_THEME_ACTIVATE_NONCE;\n\t\t\tstartResolution( 'activateTheme' );\n\t\t\tawait window.fetch( activationURL );\n\t\t\tfinishResolution( 'activateTheme' );\n\t\t\tconst { wp_theme_preview: themePreview, ...params } =\n\t\t\t\tlocation.params;\n\t\t\thistory.replace( params );\n\t\t}\n\t};\n}\n"],"mappings":";;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAKA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AAXA;AACA;AACA;;AAKA;AACA;AACA;;AAOA,MAAM;EAAEK,UAAU;EAAEC;AAAY,CAAC,GAAG,IAAAC,kBAAM,EAAEC,mBAAkB,CAAC;;AAE/D;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAAA,EAAG;EAClC,MAAMC,OAAO,GAAGL,UAAU,CAAC,CAAC;EAC5B,MAAMM,QAAQ,GAAGL,WAAW,CAAC,CAAC;EAC9B,MAAM;IAAEM,eAAe;IAAEC;EAAiB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,eAAU,CAAC;EAEtE,OAAO,YAAY;IAClB,IAAK,IAAAC,oCAAiB,EAAC,CAAC,EAAG;MAC1B,MAAMC,aAAa,GAClB,wCAAwC,GACxC,IAAAC,2CAAwB,EAAC,CAAC,GAC1B,YAAY,GACZC,MAAM,CAACC,6BAA6B;MACrCR,eAAe,CAAE,eAAgB,CAAC;MAClC,MAAMO,MAAM,CAACE,KAAK,CAAEJ,aAAc,CAAC;MACnCJ,gBAAgB,CAAE,eAAgB,CAAC;MACnC,MAAM;QAAES,gBAAgB,EAAEC,YAAY;QAAE,GAAGC;MAAO,CAAC,GAClDb,QAAQ,CAACa,MAAM;MAChBd,OAAO,CAACe,OAAO,CAAED,MAAO,CAAC;IAC1B;EACD,CAAC;AACF"}
@@ -2,6 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
+ import { trash } from '@wordpress/icons';
5
6
 
6
7
  // DEFAULT_STATUSES is intentionally sorted. Items do not have spaces in between them.
7
8
  // The reason for that is to match the default statuses coming from the endpoint
@@ -42,6 +43,7 @@ const DEFAULT_VIEWS = [{
42
43
  }, {
43
44
  title: __('Trash'),
44
45
  slug: 'trash',
46
+ icon: trash,
45
47
  view: {
46
48
  ...DEFAULT_PAGE_BASE,
47
49
  filters: {
@@ -1 +1 @@
1
- {"version":3,"names":["__","DEFAULT_STATUSES","DEFAULT_PAGE_BASE","type","search","filters","status","page","perPage","sort","field","direction","visibleFilters","hiddenFields","layout","DEFAULT_VIEWS","title","slug","view"],"sources":["@wordpress/edit-site/src/components/page-pages/default-views.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n// DEFAULT_STATUSES is intentionally sorted. Items do not have spaces in between them.\n// The reason for that is to match the default statuses coming from the endpoint\n// (entity request and useEffect to update the view).\nexport const DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All statuses but 'trash'.\n\nconst DEFAULT_PAGE_BASE = {\n\ttype: 'list',\n\tsearch: '',\n\tfilters: {\n\t\tstatus: DEFAULT_STATUSES,\n\t},\n\tpage: 1,\n\tperPage: 5,\n\tsort: {\n\t\tfield: 'date',\n\t\tdirection: 'desc',\n\t},\n\tvisibleFilters: [ 'author', 'status' ],\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'date', 'featured-image' ],\n\tlayout: {},\n};\n\nconst DEFAULT_VIEWS = [\n\t{\n\t\ttitle: __( 'All' ),\n\t\tslug: 'all',\n\t\tview: DEFAULT_PAGE_BASE,\n\t},\n\t{\n\t\ttitle: __( 'Drafts' ),\n\t\tslug: 'drafts',\n\t\tview: {\n\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\tfilters: {\n\t\t\t\tstatus: 'draft',\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\ttitle: __( 'Trash' ),\n\t\tslug: 'trash',\n\t\tview: {\n\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\tfilters: {\n\t\t\t\tstatus: 'trash',\n\t\t\t},\n\t\t},\n\t},\n];\n\nexport default DEFAULT_VIEWS;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG,sCAAsC,CAAC,CAAC;;AAExE,MAAMC,iBAAiB,GAAG;EACzBC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,EAAE;EACVC,OAAO,EAAE;IACRC,MAAM,EAAEL;EACT,CAAC;EACDM,IAAI,EAAE,CAAC;EACPC,OAAO,EAAE,CAAC;EACVC,IAAI,EAAE;IACLC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE;EACZ,CAAC;EACDC,cAAc,EAAE,CAAE,QAAQ,EAAE,QAAQ,CAAE;EACtC;EACA;EACAC,YAAY,EAAE,CAAE,MAAM,EAAE,gBAAgB,CAAE;EAC1CC,MAAM,EAAE,CAAC;AACV,CAAC;AAED,MAAMC,aAAa,GAAG,CACrB;EACCC,KAAK,EAAEhB,EAAE,CAAE,KAAM,CAAC;EAClBiB,IAAI,EAAE,KAAK;EACXC,IAAI,EAAEhB;AACP,CAAC,EACD;EACCc,KAAK,EAAEhB,EAAE,CAAE,QAAS,CAAC;EACrBiB,IAAI,EAAE,QAAQ;EACdC,IAAI,EAAE;IACL,GAAGhB,iBAAiB;IACpBG,OAAO,EAAE;MACRC,MAAM,EAAE;IACT;EACD;AACD,CAAC,EACD;EACCU,KAAK,EAAEhB,EAAE,CAAE,OAAQ,CAAC;EACpBiB,IAAI,EAAE,OAAO;EACbC,IAAI,EAAE;IACL,GAAGhB,iBAAiB;IACpBG,OAAO,EAAE;MACRC,MAAM,EAAE;IACT;EACD;AACD,CAAC,CACD;AAED,eAAeS,aAAa"}
1
+ {"version":3,"names":["__","trash","DEFAULT_STATUSES","DEFAULT_PAGE_BASE","type","search","filters","status","page","perPage","sort","field","direction","visibleFilters","hiddenFields","layout","DEFAULT_VIEWS","title","slug","view","icon"],"sources":["@wordpress/edit-site/src/components/page-pages/default-views.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { trash } from '@wordpress/icons';\n\n// DEFAULT_STATUSES is intentionally sorted. Items do not have spaces in between them.\n// The reason for that is to match the default statuses coming from the endpoint\n// (entity request and useEffect to update the view).\nexport const DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All statuses but 'trash'.\n\nconst DEFAULT_PAGE_BASE = {\n\ttype: 'list',\n\tsearch: '',\n\tfilters: {\n\t\tstatus: DEFAULT_STATUSES,\n\t},\n\tpage: 1,\n\tperPage: 5,\n\tsort: {\n\t\tfield: 'date',\n\t\tdirection: 'desc',\n\t},\n\tvisibleFilters: [ 'author', 'status' ],\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'date', 'featured-image' ],\n\tlayout: {},\n};\n\nconst DEFAULT_VIEWS = [\n\t{\n\t\ttitle: __( 'All' ),\n\t\tslug: 'all',\n\t\tview: DEFAULT_PAGE_BASE,\n\t},\n\t{\n\t\ttitle: __( 'Drafts' ),\n\t\tslug: 'drafts',\n\t\tview: {\n\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\tfilters: {\n\t\t\t\tstatus: 'draft',\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\ttitle: __( 'Trash' ),\n\t\tslug: 'trash',\n\t\ticon: trash,\n\t\tview: {\n\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\tfilters: {\n\t\t\t\tstatus: 'trash',\n\t\t\t},\n\t\t},\n\t},\n];\n\nexport default DEFAULT_VIEWS;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,QAAQ,kBAAkB;;AAExC;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG,sCAAsC,CAAC,CAAC;;AAExE,MAAMC,iBAAiB,GAAG;EACzBC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,EAAE;EACVC,OAAO,EAAE;IACRC,MAAM,EAAEL;EACT,CAAC;EACDM,IAAI,EAAE,CAAC;EACPC,OAAO,EAAE,CAAC;EACVC,IAAI,EAAE;IACLC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE;EACZ,CAAC;EACDC,cAAc,EAAE,CAAE,QAAQ,EAAE,QAAQ,CAAE;EACtC;EACA;EACAC,YAAY,EAAE,CAAE,MAAM,EAAE,gBAAgB,CAAE;EAC1CC,MAAM,EAAE,CAAC;AACV,CAAC;AAED,MAAMC,aAAa,GAAG,CACrB;EACCC,KAAK,EAAEjB,EAAE,CAAE,KAAM,CAAC;EAClBkB,IAAI,EAAE,KAAK;EACXC,IAAI,EAAEhB;AACP,CAAC,EACD;EACCc,KAAK,EAAEjB,EAAE,CAAE,QAAS,CAAC;EACrBkB,IAAI,EAAE,QAAQ;EACdC,IAAI,EAAE;IACL,GAAGhB,iBAAiB;IACpBG,OAAO,EAAE;MACRC,MAAM,EAAE;IACT;EACD;AACD,CAAC,EACD;EACCU,KAAK,EAAEjB,EAAE,CAAE,OAAQ,CAAC;EACpBkB,IAAI,EAAE,OAAO;EACbE,IAAI,EAAEnB,KAAK;EACXkB,IAAI,EAAE;IACL,GAAGhB,iBAAiB;IACpBG,OAAO,EAAE;MACRC,MAAM,EAAE;IACT;EACD;AACD,CAAC,CACD;AAED,eAAeS,aAAa"}
@@ -6,6 +6,10 @@ import { MenuItem } from '@wordpress/components';
6
6
  import { useState } from '@wordpress/element';
7
7
  import { __ } from '@wordpress/i18n';
8
8
  import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';
9
13
 
10
14
  /**
11
15
  * Internal dependencies
@@ -19,7 +23,20 @@ export default function RenameCategoryMenuItem({
19
23
  onClose
20
24
  }) {
21
25
  const [isModalOpen, setIsModalOpen] = useState(false);
22
-
26
+ return createElement(Fragment, null, createElement(MenuItem, {
27
+ onClick: () => setIsModalOpen(true)
28
+ }, __('Rename')), isModalOpen && createElement(RenameModal, {
29
+ category: category,
30
+ onClose: () => {
31
+ setIsModalOpen(false);
32
+ onClose();
33
+ }
34
+ }));
35
+ }
36
+ function RenameModal({
37
+ category,
38
+ onClose
39
+ }) {
23
40
  // User created pattern categories have their properties updated when
24
41
  // retrieved via `getUserPatternCategories`. The rename modal expects an
25
42
  // object that will match the pattern category entity.
@@ -28,15 +45,14 @@ export default function RenameCategoryMenuItem({
28
45
  slug: category.slug,
29
46
  name: category.label
30
47
  };
31
- return createElement(Fragment, null, createElement(MenuItem, {
32
- onClick: () => setIsModalOpen(true)
33
- }, __('Rename')), isModalOpen && createElement(RenamePatternCategoryModal, {
48
+
49
+ // Optimization - only use pattern categories when the modal is open.
50
+ const existingCategories = usePatternCategories();
51
+ return createElement(RenamePatternCategoryModal, {
34
52
  category: normalizedCategory,
35
- onClose: () => {
36
- setIsModalOpen(false);
37
- onClose();
38
- },
53
+ existingCategories: existingCategories,
54
+ onClose: onClose,
39
55
  overlayClassName: "edit-site-list__rename-modal"
40
- }));
56
+ });
41
57
  }
42
58
  //# sourceMappingURL=rename-category-menu-item.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MenuItem","useState","__","privateApis","patternsPrivateApis","unlock","RenamePatternCategoryModal","RenameCategoryMenuItem","category","onClose","isModalOpen","setIsModalOpen","normalizedCategory","id","slug","name","label","createElement","Fragment","onClick","overlayClassName"],"sources":["@wordpress/edit-site/src/components/page-patterns/rename-category-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { RenamePatternCategoryModal } = unlock( patternsPrivateApis );\n\nexport default function RenameCategoryMenuItem( { category, onClose } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\t// User created pattern categories have their properties updated when\n\t// retrieved via `getUserPatternCategories`. The rename modal expects an\n\t// object that will match the pattern category entity.\n\tconst normalizedCategory = {\n\t\tid: category.id,\n\t\tslug: category.slug,\n\t\tname: category.label,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<RenamePatternCategoryModal\n\t\t\t\t\tcategory={ normalizedCategory }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"edit-site-list__rename-modal\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,IAAIC,mBAAmB,QAAQ,qBAAqB;;AAExE;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAA2B,CAAC,GAAGD,MAAM,CAAED,mBAAoB,CAAC;AAEpE,eAAe,SAASG,sBAAsBA,CAAE;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,EAAG;EACvE,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAGV,QAAQ,CAAE,KAAM,CAAC;;EAEzD;EACA;EACA;EACA,MAAMW,kBAAkB,GAAG;IAC1BC,EAAE,EAAEL,QAAQ,CAACK,EAAE;IACfC,IAAI,EAAEN,QAAQ,CAACM,IAAI;IACnBC,IAAI,EAAEP,QAAQ,CAACQ;EAChB,CAAC;EAED,OACCC,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACjB,QAAQ;IAACmB,OAAO,EAAGA,CAAA,KAAMR,cAAc,CAAE,IAAK;EAAG,GAC/CT,EAAE,CAAE,QAAS,CACN,CAAC,EACTQ,WAAW,IACZO,aAAA,CAACX,0BAA0B;IAC1BE,QAAQ,EAAGI,kBAAoB;IAC/BH,OAAO,EAAGA,CAAA,KAAM;MACfE,cAAc,CAAE,KAAM,CAAC;MACvBF,OAAO,CAAC,CAAC;IACV,CAAG;IACHW,gBAAgB,EAAC;EAA8B,CAC/C,CAED,CAAC;AAEL"}
1
+ {"version":3,"names":["MenuItem","useState","__","privateApis","patternsPrivateApis","usePatternCategories","unlock","RenamePatternCategoryModal","RenameCategoryMenuItem","category","onClose","isModalOpen","setIsModalOpen","createElement","Fragment","onClick","RenameModal","normalizedCategory","id","slug","name","label","existingCategories","overlayClassName"],"sources":["@wordpress/edit-site/src/components/page-patterns/rename-category-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n/**\n * Internal dependencies\n */\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { RenamePatternCategoryModal } = unlock( patternsPrivateApis );\n\nexport default function RenameCategoryMenuItem( { category, onClose } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<RenameModal\n\t\t\t\t\tcategory={ category }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction RenameModal( { category, onClose } ) {\n\t// User created pattern categories have their properties updated when\n\t// retrieved via `getUserPatternCategories`. The rename modal expects an\n\t// object that will match the pattern category entity.\n\tconst normalizedCategory = {\n\t\tid: category.id,\n\t\tslug: category.slug,\n\t\tname: category.label,\n\t};\n\n\t// Optimization - only use pattern categories when the modal is open.\n\tconst existingCategories = usePatternCategories();\n\n\treturn (\n\t\t<RenamePatternCategoryModal\n\t\t\tcategory={ normalizedCategory }\n\t\t\texistingCategories={ existingCategories }\n\t\t\tonClose={ onClose }\n\t\t\toverlayClassName=\"edit-site-list__rename-modal\"\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,IAAIC,mBAAmB,QAAQ,qBAAqB;AACxE;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,8DAA8D;;AAE/F;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAA2B,CAAC,GAAGD,MAAM,CAAEF,mBAAoB,CAAC;AAEpE,eAAe,SAASI,sBAAsBA,CAAE;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,EAAG;EACvE,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAGX,QAAQ,CAAE,KAAM,CAAC;EAEzD,OACCY,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACb,QAAQ;IAACe,OAAO,EAAGA,CAAA,KAAMH,cAAc,CAAE,IAAK;EAAG,GAC/CV,EAAE,CAAE,QAAS,CACN,CAAC,EACTS,WAAW,IACZE,aAAA,CAACG,WAAW;IACXP,QAAQ,EAAGA,QAAU;IACrBC,OAAO,EAAGA,CAAA,KAAM;MACfE,cAAc,CAAE,KAAM,CAAC;MACvBF,OAAO,CAAC,CAAC;IACV;EAAG,CACH,CAED,CAAC;AAEL;AAEA,SAASM,WAAWA,CAAE;EAAEP,QAAQ;EAAEC;AAAQ,CAAC,EAAG;EAC7C;EACA;EACA;EACA,MAAMO,kBAAkB,GAAG;IAC1BC,EAAE,EAAET,QAAQ,CAACS,EAAE;IACfC,IAAI,EAAEV,QAAQ,CAACU,IAAI;IACnBC,IAAI,EAAEX,QAAQ,CAACY;EAChB,CAAC;;EAED;EACA,MAAMC,kBAAkB,GAAGjB,oBAAoB,CAAC,CAAC;EAEjD,OACCQ,aAAA,CAACN,0BAA0B;IAC1BE,QAAQ,EAAGQ,kBAAoB;IAC/BK,kBAAkB,EAAGA,kBAAoB;IACzCZ,OAAO,EAAGA,OAAS;IACnBa,gBAAgB,EAAC;EAA8B,CAC/C,CAAC;AAEJ"}
@@ -28,15 +28,17 @@ export default function SaveButton({
28
28
  } = useSelect(select => {
29
29
  const {
30
30
  __experimentalGetDirtyEntityRecords,
31
- isSavingEntityRecord
31
+ isSavingEntityRecord,
32
+ isResolving
32
33
  } = select(coreStore);
33
34
  const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
34
35
  const {
35
36
  isSaveViewOpened
36
37
  } = select(editSiteStore);
38
+ const isActivatingTheme = isResolving('activateTheme');
37
39
  return {
38
40
  isDirty: dirtyEntityRecords.length > 0,
39
- isSaving: dirtyEntityRecords.some(record => isSavingEntityRecord(record.kind, record.name, record.key)),
41
+ isSaving: dirtyEntityRecords.some(record => isSavingEntityRecord(record.kind, record.name, record.key)) || isActivatingTheme,
40
42
  isSaveViewOpen: isSaveViewOpened()
41
43
  };
42
44
  }, []);
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","Button","__","store","coreStore","displayShortcut","editSiteStore","isPreviewingTheme","SaveButton","className","variant","showTooltip","defaultLabel","icon","__next40pxDefaultSize","isDirty","isSaving","isSaveViewOpen","select","__experimentalGetDirtyEntityRecords","isSavingEntityRecord","dirtyEntityRecords","isSaveViewOpened","length","some","record","kind","name","key","setIsSaveViewOpened","activateSaveEnabled","disabled","getLabel","label","createElement","isBusy","onClick","undefined","shortcut","primary"],"sources":["@wordpress/edit-site/src/components/save-button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\n\nexport default function SaveButton( {\n\tclassName = 'edit-site-save-button__button',\n\tvariant = 'primary',\n\tshowTooltip = true,\n\tdefaultLabel,\n\ticon,\n\t__next40pxDefaultSize = false,\n} ) {\n\tconst { isDirty, isSaving, isSaveViewOpen } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetDirtyEntityRecords, isSavingEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\tconst { isSaveViewOpened } = select( editSiteStore );\n\t\treturn {\n\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\tisSaving: dirtyEntityRecords.some( ( record ) =>\n\t\t\t\tisSavingEntityRecord( record.kind, record.name, record.key )\n\t\t\t),\n\t\t\tisSaveViewOpen: isSaveViewOpened(),\n\t\t};\n\t}, [] );\n\tconst { setIsSaveViewOpened } = useDispatch( editSiteStore );\n\n\tconst activateSaveEnabled = isPreviewingTheme() || isDirty;\n\tconst disabled = isSaving || ! activateSaveEnabled;\n\n\tconst getLabel = () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tif ( isSaving ) {\n\t\t\t\treturn __( 'Activating' );\n\t\t\t} else if ( disabled ) {\n\t\t\t\treturn __( 'Saved' );\n\t\t\t} else if ( isDirty ) {\n\t\t\t\treturn __( 'Activate & Save' );\n\t\t\t}\n\t\t\treturn __( 'Activate' );\n\t\t}\n\n\t\tif ( isSaving ) {\n\t\t\treturn __( 'Saving' );\n\t\t} else if ( disabled ) {\n\t\t\treturn __( 'Saved' );\n\t\t} else if ( defaultLabel ) {\n\t\t\treturn defaultLabel;\n\t\t}\n\t\treturn __( 'Save' );\n\t};\n\tconst label = getLabel();\n\n\treturn (\n\t\t<Button\n\t\t\tvariant={ variant }\n\t\t\tclassName={ className }\n\t\t\taria-disabled={ disabled }\n\t\t\taria-expanded={ isSaveViewOpen }\n\t\t\tisBusy={ isSaving }\n\t\t\tonClick={ disabled ? undefined : () => setIsSaveViewOpened( true ) }\n\t\t\tlabel={ label }\n\t\t\t/*\n\t\t\t * We want the tooltip to show the keyboard shortcut only when the\n\t\t\t * button does something, i.e. when it's not disabled.\n\t\t\t */\n\t\t\tshortcut={ disabled ? undefined : displayShortcut.primary( 's' ) }\n\t\t\t/*\n\t\t\t * Displaying the keyboard shortcut conditionally makes the tooltip\n\t\t\t * itself show conditionally. This would trigger a full-rerendering\n\t\t\t * of the button that we want to avoid. By setting `showTooltip`,\n\t\t\t & the tooltip is always rendered even when there's no keyboard shortcut.\n\t\t\t */\n\t\t\tshowTooltip={ showTooltip }\n\t\t\ticon={ icon }\n\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t>\n\t\t\t{ label }\n\t\t</Button>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useSelect","useDispatch","Button","__","store","coreStore","displayShortcut","editSiteStore","isPreviewingTheme","SaveButton","className","variant","showTooltip","defaultLabel","icon","__next40pxDefaultSize","isDirty","isSaving","isSaveViewOpen","select","__experimentalGetDirtyEntityRecords","isSavingEntityRecord","isResolving","dirtyEntityRecords","isSaveViewOpened","isActivatingTheme","length","some","record","kind","name","key","setIsSaveViewOpened","activateSaveEnabled","disabled","getLabel","label","createElement","isBusy","onClick","undefined","shortcut","primary"],"sources":["@wordpress/edit-site/src/components/save-button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\n\nexport default function SaveButton( {\n\tclassName = 'edit-site-save-button__button',\n\tvariant = 'primary',\n\tshowTooltip = true,\n\tdefaultLabel,\n\ticon,\n\t__next40pxDefaultSize = false,\n} ) {\n\tconst { isDirty, isSaving, isSaveViewOpen } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\tisSavingEntityRecord,\n\t\t\tisResolving,\n\t\t} = select( coreStore );\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\tconst { isSaveViewOpened } = select( editSiteStore );\n\t\tconst isActivatingTheme = isResolving( 'activateTheme' );\n\t\treturn {\n\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\tisSaving:\n\t\t\t\tdirtyEntityRecords.some( ( record ) =>\n\t\t\t\t\tisSavingEntityRecord( record.kind, record.name, record.key )\n\t\t\t\t) || isActivatingTheme,\n\t\t\tisSaveViewOpen: isSaveViewOpened(),\n\t\t};\n\t}, [] );\n\tconst { setIsSaveViewOpened } = useDispatch( editSiteStore );\n\n\tconst activateSaveEnabled = isPreviewingTheme() || isDirty;\n\tconst disabled = isSaving || ! activateSaveEnabled;\n\n\tconst getLabel = () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tif ( isSaving ) {\n\t\t\t\treturn __( 'Activating' );\n\t\t\t} else if ( disabled ) {\n\t\t\t\treturn __( 'Saved' );\n\t\t\t} else if ( isDirty ) {\n\t\t\t\treturn __( 'Activate & Save' );\n\t\t\t}\n\t\t\treturn __( 'Activate' );\n\t\t}\n\n\t\tif ( isSaving ) {\n\t\t\treturn __( 'Saving' );\n\t\t} else if ( disabled ) {\n\t\t\treturn __( 'Saved' );\n\t\t} else if ( defaultLabel ) {\n\t\t\treturn defaultLabel;\n\t\t}\n\t\treturn __( 'Save' );\n\t};\n\tconst label = getLabel();\n\n\treturn (\n\t\t<Button\n\t\t\tvariant={ variant }\n\t\t\tclassName={ className }\n\t\t\taria-disabled={ disabled }\n\t\t\taria-expanded={ isSaveViewOpen }\n\t\t\tisBusy={ isSaving }\n\t\t\tonClick={ disabled ? undefined : () => setIsSaveViewOpened( true ) }\n\t\t\tlabel={ label }\n\t\t\t/*\n\t\t\t * We want the tooltip to show the keyboard shortcut only when the\n\t\t\t * button does something, i.e. when it's not disabled.\n\t\t\t */\n\t\t\tshortcut={ disabled ? undefined : displayShortcut.primary( 's' ) }\n\t\t\t/*\n\t\t\t * Displaying the keyboard shortcut conditionally makes the tooltip\n\t\t\t * itself show conditionally. This would trigger a full-rerendering\n\t\t\t * of the button that we want to avoid. By setting `showTooltip`,\n\t\t\t & the tooltip is always rendered even when there's no keyboard shortcut.\n\t\t\t */\n\t\t\tshowTooltip={ showTooltip }\n\t\t\ticon={ icon }\n\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t>\n\t\t\t{ label }\n\t\t</Button>\n\t);\n}\n"],"mappings":"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"}
@@ -25,20 +25,21 @@ function getDataViewIcon(dataview) {
25
25
  }
26
26
  function DataViewItem({
27
27
  dataview,
28
- isActive
28
+ isActive,
29
+ icon
29
30
  }) {
30
31
  const {
31
32
  params: {
32
33
  path
33
34
  }
34
35
  } = useLocation();
35
- const icon = getDataViewIcon(dataview);
36
+ const _icon = icon || getDataViewIcon(dataview);
36
37
  const linkInfo = useLink({
37
38
  path,
38
39
  activeView: dataview.slug
39
40
  });
40
41
  return createElement(SidebarNavigationItem, {
41
- icon: icon,
42
+ icon: _icon,
42
43
  ...linkInfo,
43
44
  "aria-current": isActive ? 'true' : undefined
44
45
  }, dataview.title);
@@ -56,6 +57,7 @@ export default function DataViewsSidebarContent() {
56
57
  return createElement(ItemGroup, null, DEFAULT_VIEWS.map(dataview => {
57
58
  return createElement(DataViewItem, {
58
59
  key: dataview.slug,
60
+ icon: dataview.icon,
59
61
  dataview: dataview,
60
62
  isActive: dataview.slug === activeView
61
63
  });
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalItemGroup","ItemGroup","page","columns","privateApis","routerPrivateApis","useLink","default","DEFAULT_VIEWS","unlock","useLocation","SidebarNavigationItem","getDataViewIcon","dataview","icons","list","grid","view","type","DataViewItem","isActive","params","path","icon","linkInfo","activeView","slug","createElement","undefined","title","DataViewsSidebarContent","map","key"],"sources":["@wordpress/edit-site/src/components/sidebar-dataviews/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { page, columns } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { useLink } from '../routes/link';\nimport { default as DEFAULT_VIEWS } from '../page-pages/default-views';\nimport { unlock } from '../../lock-unlock';\nconst { useLocation } = unlock( routerPrivateApis );\nimport SidebarNavigationItem from '../sidebar-navigation-item';\n\nfunction getDataViewIcon( dataview ) {\n\tconst icons = { list: page, grid: columns };\n\treturn icons[ dataview.view.type ];\n}\n\nfunction DataViewItem( { dataview, isActive } ) {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\n\tconst icon = getDataViewIcon( dataview );\n\n\tconst linkInfo = useLink( {\n\t\tpath,\n\t\tactiveView: dataview.slug,\n\t} );\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\ticon={ icon }\n\t\t\t{ ...linkInfo }\n\t\t\taria-current={ isActive ? 'true' : undefined }\n\t\t>\n\t\t\t{ dataview.title }\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function DataViewsSidebarContent() {\n\tconst {\n\t\tparams: { path, activeView = 'all' },\n\t} = useLocation();\n\tif ( ! path || path !== '/pages' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ItemGroup>\n\t\t\t{ DEFAULT_VIEWS.map( ( dataview ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DataViewItem\n\t\t\t\t\t\tkey={ dataview.slug }\n\t\t\t\t\t\tdataview={ dataview }\n\t\t\t\t\t\tisActive={ dataview.slug === activeView }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ItemGroup>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,uBAAuB,IAAIC,SAAS,QAAQ,uBAAuB;AAC5E,SAASC,IAAI,EAAEC,OAAO,QAAQ,kBAAkB;AAChD,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,OAAO,IAAIC,aAAa,QAAQ,6BAA6B;AACtE,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,MAAM;EAAEC;AAAY,CAAC,GAAGD,MAAM,CAAEJ,iBAAkB,CAAC;AACnD,OAAOM,qBAAqB,MAAM,4BAA4B;AAE9D,SAASC,eAAeA,CAAEC,QAAQ,EAAG;EACpC,MAAMC,KAAK,GAAG;IAAEC,IAAI,EAAEb,IAAI;IAAEc,IAAI,EAAEb;EAAQ,CAAC;EAC3C,OAAOW,KAAK,CAAED,QAAQ,CAACI,IAAI,CAACC,IAAI,CAAE;AACnC;AAEA,SAASC,YAAYA,CAAE;EAAEN,QAAQ;EAAEO;AAAS,CAAC,EAAG;EAC/C,MAAM;IACLC,MAAM,EAAE;MAAEC;IAAK;EAChB,CAAC,GAAGZ,WAAW,CAAC,CAAC;EAEjB,MAAMa,IAAI,GAAGX,eAAe,CAAEC,QAAS,CAAC;EAExC,MAAMW,QAAQ,GAAGlB,OAAO,CAAE;IACzBgB,IAAI;IACJG,UAAU,EAAEZ,QAAQ,CAACa;EACtB,CAAE,CAAC;EACH,OACCC,aAAA,CAAChB,qBAAqB;IACrBY,IAAI,EAAGA,IAAM;IAAA,GACRC,QAAQ;IACb,gBAAeJ,QAAQ,GAAG,MAAM,GAAGQ;EAAW,GAE5Cf,QAAQ,CAACgB,KACW,CAAC;AAE1B;AAEA,eAAe,SAASC,uBAAuBA,CAAA,EAAG;EACjD,MAAM;IACLT,MAAM,EAAE;MAAEC,IAAI;MAAEG,UAAU,GAAG;IAAM;EACpC,CAAC,GAAGf,WAAW,CAAC,CAAC;EACjB,IAAK,CAAEY,IAAI,IAAIA,IAAI,KAAK,QAAQ,EAAG;IAClC,OAAO,IAAI;EACZ;EAEA,OACCK,aAAA,CAAC1B,SAAS,QACPO,aAAa,CAACuB,GAAG,CAAIlB,QAAQ,IAAM;IACpC,OACCc,aAAA,CAACR,YAAY;MACZa,GAAG,EAAGnB,QAAQ,CAACa,IAAM;MACrBb,QAAQ,EAAGA,QAAU;MACrBO,QAAQ,EAAGP,QAAQ,CAACa,IAAI,KAAKD;IAAY,CACzC,CAAC;EAEJ,CAAE,CACQ,CAAC;AAEd"}
1
+ {"version":3,"names":["__experimentalItemGroup","ItemGroup","page","columns","privateApis","routerPrivateApis","useLink","default","DEFAULT_VIEWS","unlock","useLocation","SidebarNavigationItem","getDataViewIcon","dataview","icons","list","grid","view","type","DataViewItem","isActive","icon","params","path","_icon","linkInfo","activeView","slug","createElement","undefined","title","DataViewsSidebarContent","map","key"],"sources":["@wordpress/edit-site/src/components/sidebar-dataviews/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { page, columns } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { useLink } from '../routes/link';\nimport { default as DEFAULT_VIEWS } from '../page-pages/default-views';\nimport { unlock } from '../../lock-unlock';\nconst { useLocation } = unlock( routerPrivateApis );\nimport SidebarNavigationItem from '../sidebar-navigation-item';\n\nfunction getDataViewIcon( dataview ) {\n\tconst icons = { list: page, grid: columns };\n\treturn icons[ dataview.view.type ];\n}\n\nfunction DataViewItem( { dataview, isActive, icon } ) {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\n\tconst _icon = icon || getDataViewIcon( dataview );\n\n\tconst linkInfo = useLink( {\n\t\tpath,\n\t\tactiveView: dataview.slug,\n\t} );\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\ticon={ _icon }\n\t\t\t{ ...linkInfo }\n\t\t\taria-current={ isActive ? 'true' : undefined }\n\t\t>\n\t\t\t{ dataview.title }\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function DataViewsSidebarContent() {\n\tconst {\n\t\tparams: { path, activeView = 'all' },\n\t} = useLocation();\n\tif ( ! path || path !== '/pages' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ItemGroup>\n\t\t\t{ DEFAULT_VIEWS.map( ( dataview ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DataViewItem\n\t\t\t\t\t\tkey={ dataview.slug }\n\t\t\t\t\t\ticon={ dataview.icon }\n\t\t\t\t\t\tdataview={ dataview }\n\t\t\t\t\t\tisActive={ dataview.slug === activeView }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ItemGroup>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,uBAAuB,IAAIC,SAAS,QAAQ,uBAAuB;AAC5E,SAASC,IAAI,EAAEC,OAAO,QAAQ,kBAAkB;AAChD,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,OAAO,IAAIC,aAAa,QAAQ,6BAA6B;AACtE,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,MAAM;EAAEC;AAAY,CAAC,GAAGD,MAAM,CAAEJ,iBAAkB,CAAC;AACnD,OAAOM,qBAAqB,MAAM,4BAA4B;AAE9D,SAASC,eAAeA,CAAEC,QAAQ,EAAG;EACpC,MAAMC,KAAK,GAAG;IAAEC,IAAI,EAAEb,IAAI;IAAEc,IAAI,EAAEb;EAAQ,CAAC;EAC3C,OAAOW,KAAK,CAAED,QAAQ,CAACI,IAAI,CAACC,IAAI,CAAE;AACnC;AAEA,SAASC,YAAYA,CAAE;EAAEN,QAAQ;EAAEO,QAAQ;EAAEC;AAAK,CAAC,EAAG;EACrD,MAAM;IACLC,MAAM,EAAE;MAAEC;IAAK;EAChB,CAAC,GAAGb,WAAW,CAAC,CAAC;EAEjB,MAAMc,KAAK,GAAGH,IAAI,IAAIT,eAAe,CAAEC,QAAS,CAAC;EAEjD,MAAMY,QAAQ,GAAGnB,OAAO,CAAE;IACzBiB,IAAI;IACJG,UAAU,EAAEb,QAAQ,CAACc;EACtB,CAAE,CAAC;EACH,OACCC,aAAA,CAACjB,qBAAqB;IACrBU,IAAI,EAAGG,KAAO;IAAA,GACTC,QAAQ;IACb,gBAAeL,QAAQ,GAAG,MAAM,GAAGS;EAAW,GAE5ChB,QAAQ,CAACiB,KACW,CAAC;AAE1B;AAEA,eAAe,SAASC,uBAAuBA,CAAA,EAAG;EACjD,MAAM;IACLT,MAAM,EAAE;MAAEC,IAAI;MAAEG,UAAU,GAAG;IAAM;EACpC,CAAC,GAAGhB,WAAW,CAAC,CAAC;EACjB,IAAK,CAAEa,IAAI,IAAIA,IAAI,KAAK,QAAQ,EAAG;IAClC,OAAO,IAAI;EACZ;EAEA,OACCK,aAAA,CAAC3B,SAAS,QACPO,aAAa,CAACwB,GAAG,CAAInB,QAAQ,IAAM;IACpC,OACCe,aAAA,CAACT,YAAY;MACZc,GAAG,EAAGpB,QAAQ,CAACc,IAAM;MACrBN,IAAI,EAAGR,QAAQ,CAACQ,IAAM;MACtBR,QAAQ,EAAGA,QAAU;MACrBO,QAAQ,EAAGP,QAAQ,CAACc,IAAI,KAAKD;IAAY,CACzC,CAAC;EAEJ,CAAE,CACQ,CAAC;AAEd"}
@@ -36,7 +36,7 @@ function getPageDetails(page) {
36
36
  label: __('Slug'),
37
37
  value: createElement(Truncate, {
38
38
  numberOfLines: 1
39
- }, safeDecodeURIComponent(page.slug))
39
+ }, safeDecodeURIComponent(page.slug || page.generated_slug))
40
40
  }];
41
41
  if (page?.templateTitle) {
42
42
  details.push({
@@ -1 +1 @@
1
- {"version":3,"names":["__","_x","sprintf","__experimentalTruncate","Truncate","count","wordCount","useSelect","decodeEntities","store","coreStore","useEntityRecord","safeDecodeURIComponent","StatusLabel","unlock","editSiteStore","SidebarNavigationScreenDetailsPanel","SidebarNavigationScreenDetailsPanelRow","SidebarNavigationScreenDetailsPanelLabel","SidebarNavigationScreenDetailsPanelValue","TEMPLATE_POST_TYPE","AVERAGE_READING_RATE","getPageDetails","page","details","label","value","createElement","status","password","date","short","numberOfLines","slug","templateTitle","push","parentTitle","wordCountType","wordsCounted","content","rendered","readingTime","Math","round","isPostsPage","toLocaleString","PageDetails","id","record","select","getEditedPostContext","postContext","templates","getEntityRecords","per_page","templateSlug","postType","_templateTitle","find","template","title","_parentTitle","parent","getEntityRecord","_fields","siteSettings","page_for_posts","spacing","map","key"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-page/page-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { __experimentalTruncate as Truncate } from '@wordpress/components';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport { useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore, useEntityRecord } from '@wordpress/core-data';\nimport { safeDecodeURIComponent } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport StatusLabel from './status-label';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n\tSidebarNavigationScreenDetailsPanelLabel,\n\tSidebarNavigationScreenDetailsPanelValue,\n} from '../sidebar-navigation-screen-details-panel';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n// Taken from packages/editor/src/components/time-to-read/index.js.\nconst AVERAGE_READING_RATE = 189;\n\nfunction getPageDetails( page ) {\n\tif ( ! page ) {\n\t\treturn [];\n\t}\n\n\tconst details = [\n\t\t{\n\t\t\tlabel: __( 'Status' ),\n\t\t\tvalue: (\n\t\t\t\t<StatusLabel\n\t\t\t\t\tstatus={ page?.password ? 'protected' : page.status }\n\t\t\t\t\tdate={ page?.date }\n\t\t\t\t\tshort\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tlabel: __( 'Slug' ),\n\t\t\tvalue: (\n\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t{ safeDecodeURIComponent( page.slug ) }\n\t\t\t\t</Truncate>\n\t\t\t),\n\t\t},\n\t];\n\n\tif ( page?.templateTitle ) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Template' ),\n\t\t\tvalue: decodeEntities( page.templateTitle ),\n\t\t} );\n\t}\n\n\tif ( page?.parentTitle ) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Parent' ),\n\t\t\tvalue: decodeEntities( page.parentTitle || __( '(no title)' ) ),\n\t\t} );\n\t}\n\n\t/*\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\tconst wordsCounted = page?.content?.rendered\n\t\t? wordCount( page.content.rendered, wordCountType )\n\t\t: 0;\n\tconst readingTime = Math.round( wordsCounted / AVERAGE_READING_RATE );\n\n\tif ( wordsCounted && ! page?.isPostsPage ) {\n\t\tdetails.push(\n\t\t\t{\n\t\t\t\tlabel: __( 'Words' ),\n\t\t\t\tvalue: wordsCounted.toLocaleString() || __( 'Unknown' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Time to read' ),\n\t\t\t\tvalue:\n\t\t\t\t\treadingTime > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: is the number of minutes. */\n\t\t\t\t\t\t\t\t__( '%s mins' ),\n\t\t\t\t\t\t\t\treadingTime.toLocaleString()\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( '< 1 min' ),\n\t\t\t}\n\t\t);\n\t}\n\treturn details;\n}\n\nexport default function PageDetails( { id } ) {\n\tconst { record } = useEntityRecord( 'postType', 'page', id );\n\tconst { parentTitle, templateTitle, isPostsPage } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostContext } = unlock( select( editSiteStore ) );\n\t\t\tconst postContext = getEditedPostContext();\n\t\t\tconst templates = select( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{ per_page: -1 }\n\t\t\t);\n\t\t\t// Template title.\n\t\t\tconst templateSlug =\n\t\t\t\t// Checks that the post type matches the current theme's post type, otherwise\n\t\t\t\t// the templateSlug returns 'home'.\n\t\t\t\tpostContext?.postType === 'page'\n\t\t\t\t\t? postContext?.templateSlug\n\t\t\t\t\t: null;\n\t\t\tconst _templateTitle =\n\t\t\t\ttemplates && templateSlug\n\t\t\t\t\t? templates.find(\n\t\t\t\t\t\t\t( template ) => template.slug === templateSlug\n\t\t\t\t\t )?.title?.rendered\n\t\t\t\t\t: null;\n\n\t\t\t// Parent page title.\n\t\t\tconst _parentTitle = record?.parent\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\trecord.parent,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t_fields: [ 'title' ],\n\t\t\t\t\t\t}\n\t\t\t\t )?.title?.rendered\n\t\t\t\t: null;\n\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\n\t\t\treturn {\n\t\t\t\tparentTitle: _parentTitle,\n\t\t\t\ttemplateTitle: _templateTitle,\n\t\t\t\tisPostsPage: record?.id === siteSettings?.page_for_posts,\n\t\t\t};\n\t\t},\n\t\t[ record?.parent, record?.id ]\n\t);\n\treturn (\n\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\tspacing={ 5 }\n\t\t\ttitle={ __( 'Details' ) }\n\t\t>\n\t\t\t{ getPageDetails( {\n\t\t\t\tparentTitle,\n\t\t\t\ttemplateTitle,\n\t\t\t\tisPostsPage,\n\t\t\t\t...record,\n\t\t\t} ).map( ( { label, value } ) => (\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow key={ label }>\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t{ value }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t) ) }\n\t\t</SidebarNavigationScreenDetailsPanel>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","_x","sprintf","__experimentalTruncate","Truncate","count","wordCount","useSelect","decodeEntities","store","coreStore","useEntityRecord","safeDecodeURIComponent","StatusLabel","unlock","editSiteStore","SidebarNavigationScreenDetailsPanel","SidebarNavigationScreenDetailsPanelRow","SidebarNavigationScreenDetailsPanelLabel","SidebarNavigationScreenDetailsPanelValue","TEMPLATE_POST_TYPE","AVERAGE_READING_RATE","getPageDetails","page","details","label","value","createElement","status","password","date","short","numberOfLines","slug","generated_slug","templateTitle","push","parentTitle","wordCountType","wordsCounted","content","rendered","readingTime","Math","round","isPostsPage","toLocaleString","PageDetails","id","record","select","getEditedPostContext","postContext","templates","getEntityRecords","per_page","templateSlug","postType","_templateTitle","find","template","title","_parentTitle","parent","getEntityRecord","_fields","siteSettings","page_for_posts","spacing","map","key"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-page/page-details.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { __experimentalTruncate as Truncate } from '@wordpress/components';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport { useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore, useEntityRecord } from '@wordpress/core-data';\nimport { safeDecodeURIComponent } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport StatusLabel from './status-label';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n\tSidebarNavigationScreenDetailsPanelLabel,\n\tSidebarNavigationScreenDetailsPanelValue,\n} from '../sidebar-navigation-screen-details-panel';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n// Taken from packages/editor/src/components/time-to-read/index.js.\nconst AVERAGE_READING_RATE = 189;\n\nfunction getPageDetails( page ) {\n\tif ( ! page ) {\n\t\treturn [];\n\t}\n\n\tconst details = [\n\t\t{\n\t\t\tlabel: __( 'Status' ),\n\t\t\tvalue: (\n\t\t\t\t<StatusLabel\n\t\t\t\t\tstatus={ page?.password ? 'protected' : page.status }\n\t\t\t\t\tdate={ page?.date }\n\t\t\t\t\tshort\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tlabel: __( 'Slug' ),\n\t\t\tvalue: (\n\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t{ safeDecodeURIComponent(\n\t\t\t\t\t\tpage.slug || page.generated_slug\n\t\t\t\t\t) }\n\t\t\t\t</Truncate>\n\t\t\t),\n\t\t},\n\t];\n\n\tif ( page?.templateTitle ) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Template' ),\n\t\t\tvalue: decodeEntities( page.templateTitle ),\n\t\t} );\n\t}\n\n\tif ( page?.parentTitle ) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Parent' ),\n\t\t\tvalue: decodeEntities( page.parentTitle || __( '(no title)' ) ),\n\t\t} );\n\t}\n\n\t/*\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\tconst wordsCounted = page?.content?.rendered\n\t\t? wordCount( page.content.rendered, wordCountType )\n\t\t: 0;\n\tconst readingTime = Math.round( wordsCounted / AVERAGE_READING_RATE );\n\n\tif ( wordsCounted && ! page?.isPostsPage ) {\n\t\tdetails.push(\n\t\t\t{\n\t\t\t\tlabel: __( 'Words' ),\n\t\t\t\tvalue: wordsCounted.toLocaleString() || __( 'Unknown' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Time to read' ),\n\t\t\t\tvalue:\n\t\t\t\t\treadingTime > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: is the number of minutes. */\n\t\t\t\t\t\t\t\t__( '%s mins' ),\n\t\t\t\t\t\t\t\treadingTime.toLocaleString()\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( '< 1 min' ),\n\t\t\t}\n\t\t);\n\t}\n\treturn details;\n}\n\nexport default function PageDetails( { id } ) {\n\tconst { record } = useEntityRecord( 'postType', 'page', id );\n\tconst { parentTitle, templateTitle, isPostsPage } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostContext } = unlock( select( editSiteStore ) );\n\t\t\tconst postContext = getEditedPostContext();\n\t\t\tconst templates = select( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{ per_page: -1 }\n\t\t\t);\n\t\t\t// Template title.\n\t\t\tconst templateSlug =\n\t\t\t\t// Checks that the post type matches the current theme's post type, otherwise\n\t\t\t\t// the templateSlug returns 'home'.\n\t\t\t\tpostContext?.postType === 'page'\n\t\t\t\t\t? postContext?.templateSlug\n\t\t\t\t\t: null;\n\t\t\tconst _templateTitle =\n\t\t\t\ttemplates && templateSlug\n\t\t\t\t\t? templates.find(\n\t\t\t\t\t\t\t( template ) => template.slug === templateSlug\n\t\t\t\t\t )?.title?.rendered\n\t\t\t\t\t: null;\n\n\t\t\t// Parent page title.\n\t\t\tconst _parentTitle = record?.parent\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\trecord.parent,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t_fields: [ 'title' ],\n\t\t\t\t\t\t}\n\t\t\t\t )?.title?.rendered\n\t\t\t\t: null;\n\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\n\t\t\treturn {\n\t\t\t\tparentTitle: _parentTitle,\n\t\t\t\ttemplateTitle: _templateTitle,\n\t\t\t\tisPostsPage: record?.id === siteSettings?.page_for_posts,\n\t\t\t};\n\t\t},\n\t\t[ record?.parent, record?.id ]\n\t);\n\treturn (\n\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\tspacing={ 5 }\n\t\t\ttitle={ __( 'Details' ) }\n\t\t>\n\t\t\t{ getPageDetails( {\n\t\t\t\tparentTitle,\n\t\t\t\ttemplateTitle,\n\t\t\t\tisPostsPage,\n\t\t\t\t...record,\n\t\t\t} ).map( ( { label, value } ) => (\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow key={ label }>\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t{ value }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t) ) }\n\t\t</SidebarNavigationScreenDetailsPanel>\n\t);\n}\n"],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
+ import { store as coreStore } from '@wordpress/core-data';
5
+ import { useDispatch } from '@wordpress/data';
4
6
  import { privateApis as routerPrivateApis } from '@wordpress/router';
5
7
 
6
8
  /**
@@ -21,10 +23,16 @@ const {
21
23
  export function useActivateTheme() {
22
24
  const history = useHistory();
23
25
  const location = useLocation();
26
+ const {
27
+ startResolution,
28
+ finishResolution
29
+ } = useDispatch(coreStore);
24
30
  return async () => {
25
31
  if (isPreviewingTheme()) {
26
32
  const activationURL = 'themes.php?action=activate&stylesheet=' + currentlyPreviewingTheme() + '&_wpnonce=' + window.WP_BLOCK_THEME_ACTIVATE_NONCE;
33
+ startResolution('activateTheme');
27
34
  await window.fetch(activationURL);
35
+ finishResolution('activateTheme');
28
36
  const {
29
37
  wp_theme_preview: themePreview,
30
38
  ...params
@@ -1 +1 @@
1
- {"version":3,"names":["privateApis","routerPrivateApis","unlock","isPreviewingTheme","currentlyPreviewingTheme","useHistory","useLocation","useActivateTheme","history","location","activationURL","window","WP_BLOCK_THEME_ACTIVATE_NONCE","fetch","wp_theme_preview","themePreview","params","replace"],"sources":["@wordpress/edit-site/src/utils/use-activate-theme.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from './is-previewing-theme';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\n/**\n * This should be refactored to use the REST API, once the REST API can activate themes.\n *\n * @return {Function} A function that activates the theme.\n */\nexport function useActivateTheme() {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\n\treturn async () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tconst activationURL =\n\t\t\t\t'themes.php?action=activate&stylesheet=' +\n\t\t\t\tcurrentlyPreviewingTheme() +\n\t\t\t\t'&_wpnonce=' +\n\t\t\t\twindow.WP_BLOCK_THEME_ACTIVATE_NONCE;\n\t\t\tawait window.fetch( activationURL );\n\t\t\tconst { wp_theme_preview: themePreview, ...params } =\n\t\t\t\tlocation.params;\n\t\t\thistory.replace( params );\n\t\t}\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SACCC,iBAAiB,EACjBC,wBAAwB,QAClB,uBAAuB;AAE9B,MAAM;EAAEC,UAAU;EAAEC;AAAY,CAAC,GAAGJ,MAAM,CAAED,iBAAkB,CAAC;;AAE/D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,gBAAgBA,CAAA,EAAG;EAClC,MAAMC,OAAO,GAAGH,UAAU,CAAC,CAAC;EAC5B,MAAMI,QAAQ,GAAGH,WAAW,CAAC,CAAC;EAE9B,OAAO,YAAY;IAClB,IAAKH,iBAAiB,CAAC,CAAC,EAAG;MAC1B,MAAMO,aAAa,GAClB,wCAAwC,GACxCN,wBAAwB,CAAC,CAAC,GAC1B,YAAY,GACZO,MAAM,CAACC,6BAA6B;MACrC,MAAMD,MAAM,CAACE,KAAK,CAAEH,aAAc,CAAC;MACnC,MAAM;QAAEI,gBAAgB,EAAEC,YAAY;QAAE,GAAGC;MAAO,CAAC,GAClDP,QAAQ,CAACO,MAAM;MAChBR,OAAO,CAACS,OAAO,CAAED,MAAO,CAAC;IAC1B;EACD,CAAC;AACF"}
1
+ {"version":3,"names":["store","coreStore","useDispatch","privateApis","routerPrivateApis","unlock","isPreviewingTheme","currentlyPreviewingTheme","useHistory","useLocation","useActivateTheme","history","location","startResolution","finishResolution","activationURL","window","WP_BLOCK_THEME_ACTIVATE_NONCE","fetch","wp_theme_preview","themePreview","params","replace"],"sources":["@wordpress/edit-site/src/utils/use-activate-theme.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from './is-previewing-theme';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\n/**\n * This should be refactored to use the REST API, once the REST API can activate themes.\n *\n * @return {Function} A function that activates the theme.\n */\nexport function useActivateTheme() {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst { startResolution, finishResolution } = useDispatch( coreStore );\n\n\treturn async () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tconst activationURL =\n\t\t\t\t'themes.php?action=activate&stylesheet=' +\n\t\t\t\tcurrentlyPreviewingTheme() +\n\t\t\t\t'&_wpnonce=' +\n\t\t\t\twindow.WP_BLOCK_THEME_ACTIVATE_NONCE;\n\t\t\tstartResolution( 'activateTheme' );\n\t\t\tawait window.fetch( activationURL );\n\t\t\tfinishResolution( 'activateTheme' );\n\t\t\tconst { wp_theme_preview: themePreview, ...params } =\n\t\t\t\tlocation.params;\n\t\t\thistory.replace( params );\n\t\t}\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SACCC,iBAAiB,EACjBC,wBAAwB,QAClB,uBAAuB;AAE9B,MAAM;EAAEC,UAAU;EAAEC;AAAY,CAAC,GAAGJ,MAAM,CAAED,iBAAkB,CAAC;;AAE/D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,gBAAgBA,CAAA,EAAG;EAClC,MAAMC,OAAO,GAAGH,UAAU,CAAC,CAAC;EAC5B,MAAMI,QAAQ,GAAGH,WAAW,CAAC,CAAC;EAC9B,MAAM;IAAEI,eAAe;IAAEC;EAAiB,CAAC,GAAGZ,WAAW,CAAED,SAAU,CAAC;EAEtE,OAAO,YAAY;IAClB,IAAKK,iBAAiB,CAAC,CAAC,EAAG;MAC1B,MAAMS,aAAa,GAClB,wCAAwC,GACxCR,wBAAwB,CAAC,CAAC,GAC1B,YAAY,GACZS,MAAM,CAACC,6BAA6B;MACrCJ,eAAe,CAAE,eAAgB,CAAC;MAClC,MAAMG,MAAM,CAACE,KAAK,CAAEH,aAAc,CAAC;MACnCD,gBAAgB,CAAE,eAAgB,CAAC;MACnC,MAAM;QAAEK,gBAAgB,EAAEC,YAAY;QAAE,GAAGC;MAAO,CAAC,GAClDT,QAAQ,CAACS,MAAM;MAChBV,OAAO,CAACW,OAAO,CAAED,MAAO,CAAC;IAC1B;EACD,CAAC;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/edit-site",
3
- "version": "5.21.1-next.f8d8eceb.0",
3
+ "version": "5.22.0",
4
4
  "description": "Edit Site Page module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -28,44 +28,44 @@
28
28
  "dependencies": {
29
29
  "@babel/runtime": "^7.16.0",
30
30
  "@tanstack/react-table": "^8.10.3",
31
- "@wordpress/a11y": "^3.44.1-next.f8d8eceb.0",
32
- "@wordpress/api-fetch": "^6.41.1-next.f8d8eceb.0",
33
- "@wordpress/block-editor": "^12.12.2-next.f8d8eceb.0",
34
- "@wordpress/block-library": "^8.21.1-next.f8d8eceb.0",
35
- "@wordpress/blocks": "^12.21.1-next.f8d8eceb.0",
36
- "@wordpress/commands": "^0.15.1-next.f8d8eceb.0",
37
- "@wordpress/components": "^25.11.1-next.f8d8eceb.0",
38
- "@wordpress/compose": "^6.21.1-next.f8d8eceb.0",
39
- "@wordpress/core-commands": "^0.13.1-next.f8d8eceb.0",
40
- "@wordpress/core-data": "^6.21.1-next.f8d8eceb.0",
41
- "@wordpress/data": "^9.14.1-next.f8d8eceb.0",
42
- "@wordpress/date": "^4.44.1-next.f8d8eceb.0",
43
- "@wordpress/deprecated": "^3.44.1-next.f8d8eceb.0",
44
- "@wordpress/dom": "^3.44.1-next.f8d8eceb.0",
45
- "@wordpress/editor": "^13.21.1-next.f8d8eceb.0",
46
- "@wordpress/element": "^5.21.1-next.f8d8eceb.0",
47
- "@wordpress/escape-html": "^2.44.1-next.f8d8eceb.0",
48
- "@wordpress/hooks": "^3.44.1-next.f8d8eceb.0",
49
- "@wordpress/html-entities": "^3.44.1-next.f8d8eceb.0",
50
- "@wordpress/i18n": "^4.44.1-next.f8d8eceb.0",
51
- "@wordpress/icons": "^9.35.1-next.f8d8eceb.0",
52
- "@wordpress/interface": "^5.21.1-next.f8d8eceb.0",
53
- "@wordpress/keyboard-shortcuts": "^4.21.1-next.f8d8eceb.0",
54
- "@wordpress/keycodes": "^3.44.1-next.f8d8eceb.0",
55
- "@wordpress/media-utils": "^4.35.1-next.f8d8eceb.0",
56
- "@wordpress/notices": "^4.12.1-next.f8d8eceb.0",
57
- "@wordpress/patterns": "^1.5.1-next.f8d8eceb.0",
58
- "@wordpress/plugins": "^6.12.1-next.f8d8eceb.0",
59
- "@wordpress/preferences": "^3.21.1-next.f8d8eceb.0",
60
- "@wordpress/primitives": "^3.42.1-next.f8d8eceb.0",
61
- "@wordpress/private-apis": "^0.26.1-next.f8d8eceb.0",
62
- "@wordpress/reusable-blocks": "^4.21.1-next.f8d8eceb.0",
63
- "@wordpress/router": "^0.13.1-next.f8d8eceb.0",
64
- "@wordpress/style-engine": "^1.27.1-next.f8d8eceb.0",
65
- "@wordpress/url": "^3.45.1-next.f8d8eceb.0",
66
- "@wordpress/viewport": "^5.21.1-next.f8d8eceb.0",
67
- "@wordpress/widgets": "^3.21.1-next.f8d8eceb.0",
68
- "@wordpress/wordcount": "^3.44.1-next.f8d8eceb.0",
31
+ "@wordpress/a11y": "^3.45.0",
32
+ "@wordpress/api-fetch": "^6.42.0",
33
+ "@wordpress/block-editor": "^12.13.0",
34
+ "@wordpress/block-library": "^8.22.0",
35
+ "@wordpress/blocks": "^12.22.0",
36
+ "@wordpress/commands": "^0.16.0",
37
+ "@wordpress/components": "^25.11.0",
38
+ "@wordpress/compose": "^6.22.0",
39
+ "@wordpress/core-commands": "^0.14.0",
40
+ "@wordpress/core-data": "^6.22.0",
41
+ "@wordpress/data": "^9.15.0",
42
+ "@wordpress/date": "^4.45.0",
43
+ "@wordpress/deprecated": "^3.45.0",
44
+ "@wordpress/dom": "^3.45.0",
45
+ "@wordpress/editor": "^13.22.0",
46
+ "@wordpress/element": "^5.22.0",
47
+ "@wordpress/escape-html": "^2.45.0",
48
+ "@wordpress/hooks": "^3.45.0",
49
+ "@wordpress/html-entities": "^3.45.0",
50
+ "@wordpress/i18n": "^4.45.0",
51
+ "@wordpress/icons": "^9.36.0",
52
+ "@wordpress/interface": "^5.22.0",
53
+ "@wordpress/keyboard-shortcuts": "^4.22.0",
54
+ "@wordpress/keycodes": "^3.45.0",
55
+ "@wordpress/media-utils": "^4.36.0",
56
+ "@wordpress/notices": "^4.13.0",
57
+ "@wordpress/patterns": "^1.6.0",
58
+ "@wordpress/plugins": "^6.13.0",
59
+ "@wordpress/preferences": "^3.22.0",
60
+ "@wordpress/primitives": "^3.43.0",
61
+ "@wordpress/private-apis": "^0.27.0",
62
+ "@wordpress/reusable-blocks": "^4.22.0",
63
+ "@wordpress/router": "^0.14.0",
64
+ "@wordpress/style-engine": "^1.28.0",
65
+ "@wordpress/url": "^3.46.0",
66
+ "@wordpress/viewport": "^5.22.0",
67
+ "@wordpress/widgets": "^3.22.0",
68
+ "@wordpress/wordcount": "^3.45.0",
69
69
  "change-case": "^4.1.2",
70
70
  "classnames": "^2.3.1",
71
71
  "colord": "^2.9.2",
@@ -85,5 +85,5 @@
85
85
  "publishConfig": {
86
86
  "access": "public"
87
87
  },
88
- "gitHead": "8d8fd197e202b8104ffb1cb83048efd0a6c3faf4"
88
+ "gitHead": "2a00e87b57b9c27ed2b9b0fd8d423ef3cada72c1"
89
89
  }
@@ -2,6 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
+ import { trash } from '@wordpress/icons';
5
6
 
6
7
  // DEFAULT_STATUSES is intentionally sorted. Items do not have spaces in between them.
7
8
  // The reason for that is to match the default statuses coming from the endpoint
@@ -46,6 +47,7 @@ const DEFAULT_VIEWS = [
46
47
  {
47
48
  title: __( 'Trash' ),
48
49
  slug: 'trash',
50
+ icon: trash,
49
51
  view: {
50
52
  ...DEFAULT_PAGE_BASE,
51
53
  filters: {
@@ -5,6 +5,10 @@ import { MenuItem } from '@wordpress/components';
5
5
  import { useState } from '@wordpress/element';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';
8
12
 
9
13
  /**
10
14
  * Internal dependencies
@@ -16,30 +20,43 @@ const { RenamePatternCategoryModal } = unlock( patternsPrivateApis );
16
20
  export default function RenameCategoryMenuItem( { category, onClose } ) {
17
21
  const [ isModalOpen, setIsModalOpen ] = useState( false );
18
22
 
19
- // User created pattern categories have their properties updated when
20
- // retrieved via `getUserPatternCategories`. The rename modal expects an
21
- // object that will match the pattern category entity.
22
- const normalizedCategory = {
23
- id: category.id,
24
- slug: category.slug,
25
- name: category.label,
26
- };
27
-
28
23
  return (
29
24
  <>
30
25
  <MenuItem onClick={ () => setIsModalOpen( true ) }>
31
26
  { __( 'Rename' ) }
32
27
  </MenuItem>
33
28
  { isModalOpen && (
34
- <RenamePatternCategoryModal
35
- category={ normalizedCategory }
29
+ <RenameModal
30
+ category={ category }
36
31
  onClose={ () => {
37
32
  setIsModalOpen( false );
38
33
  onClose();
39
34
  } }
40
- overlayClassName="edit-site-list__rename-modal"
41
35
  />
42
36
  ) }
43
37
  </>
44
38
  );
45
39
  }
40
+
41
+ function RenameModal( { category, onClose } ) {
42
+ // User created pattern categories have their properties updated when
43
+ // retrieved via `getUserPatternCategories`. The rename modal expects an
44
+ // object that will match the pattern category entity.
45
+ const normalizedCategory = {
46
+ id: category.id,
47
+ slug: category.slug,
48
+ name: category.label,
49
+ };
50
+
51
+ // Optimization - only use pattern categories when the modal is open.
52
+ const existingCategories = usePatternCategories();
53
+
54
+ return (
55
+ <RenamePatternCategoryModal
56
+ category={ normalizedCategory }
57
+ existingCategories={ existingCategories }
58
+ onClose={ onClose }
59
+ overlayClassName="edit-site-list__rename-modal"
60
+ />
61
+ );
62
+ }
@@ -22,15 +22,20 @@ export default function SaveButton( {
22
22
  __next40pxDefaultSize = false,
23
23
  } ) {
24
24
  const { isDirty, isSaving, isSaveViewOpen } = useSelect( ( select ) => {
25
- const { __experimentalGetDirtyEntityRecords, isSavingEntityRecord } =
26
- select( coreStore );
25
+ const {
26
+ __experimentalGetDirtyEntityRecords,
27
+ isSavingEntityRecord,
28
+ isResolving,
29
+ } = select( coreStore );
27
30
  const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
28
31
  const { isSaveViewOpened } = select( editSiteStore );
32
+ const isActivatingTheme = isResolving( 'activateTheme' );
29
33
  return {
30
34
  isDirty: dirtyEntityRecords.length > 0,
31
- isSaving: dirtyEntityRecords.some( ( record ) =>
32
- isSavingEntityRecord( record.kind, record.name, record.key )
33
- ),
35
+ isSaving:
36
+ dirtyEntityRecords.some( ( record ) =>
37
+ isSavingEntityRecord( record.kind, record.name, record.key )
38
+ ) || isActivatingTheme,
34
39
  isSaveViewOpen: isSaveViewOpened(),
35
40
  };
36
41
  }, [] );
@@ -19,12 +19,12 @@ function getDataViewIcon( dataview ) {
19
19
  return icons[ dataview.view.type ];
20
20
  }
21
21
 
22
- function DataViewItem( { dataview, isActive } ) {
22
+ function DataViewItem( { dataview, isActive, icon } ) {
23
23
  const {
24
24
  params: { path },
25
25
  } = useLocation();
26
26
 
27
- const icon = getDataViewIcon( dataview );
27
+ const _icon = icon || getDataViewIcon( dataview );
28
28
 
29
29
  const linkInfo = useLink( {
30
30
  path,
@@ -32,7 +32,7 @@ function DataViewItem( { dataview, isActive } ) {
32
32
  } );
33
33
  return (
34
34
  <SidebarNavigationItem
35
- icon={ icon }
35
+ icon={ _icon }
36
36
  { ...linkInfo }
37
37
  aria-current={ isActive ? 'true' : undefined }
38
38
  >
@@ -55,6 +55,7 @@ export default function DataViewsSidebarContent() {
55
55
  return (
56
56
  <DataViewItem
57
57
  key={ dataview.slug }
58
+ icon={ dataview.icon }
58
59
  dataview={ dataview }
59
60
  isActive={ dataview.slug === activeView }
60
61
  />
@@ -46,7 +46,9 @@ function getPageDetails( page ) {
46
46
  label: __( 'Slug' ),
47
47
  value: (
48
48
  <Truncate numberOfLines={ 1 }>
49
- { safeDecodeURIComponent( page.slug ) }
49
+ { safeDecodeURIComponent(
50
+ page.slug || page.generated_slug
51
+ ) }
50
52
  </Truncate>
51
53
  ),
52
54
  },
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
+ import { store as coreStore } from '@wordpress/core-data';
5
+ import { useDispatch } from '@wordpress/data';
4
6
  import { privateApis as routerPrivateApis } from '@wordpress/router';
5
7
 
6
8
  /**
@@ -22,6 +24,7 @@ const { useHistory, useLocation } = unlock( routerPrivateApis );
22
24
  export function useActivateTheme() {
23
25
  const history = useHistory();
24
26
  const location = useLocation();
27
+ const { startResolution, finishResolution } = useDispatch( coreStore );
25
28
 
26
29
  return async () => {
27
30
  if ( isPreviewingTheme() ) {
@@ -30,7 +33,9 @@ export function useActivateTheme() {
30
33
  currentlyPreviewingTheme() +
31
34
  '&_wpnonce=' +
32
35
  window.WP_BLOCK_THEME_ACTIVATE_NONCE;
36
+ startResolution( 'activateTheme' );
33
37
  await window.fetch( activationURL );
38
+ finishResolution( 'activateTheme' );
34
39
  const { wp_theme_preview: themePreview, ...params } =
35
40
  location.params;
36
41
  history.replace( params );
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _element = require("@wordpress/element");
8
- /**
9
- * WordPress dependencies
10
- */
11
-
12
- const DataviewsContext = (0, _element.createContext)({});
13
- var _default = DataviewsContext;
14
- exports.default = _default;
15
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_element","require","DataviewsContext","createContext","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/dataviews/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\nconst DataviewsContext = createContext( {} );\nexport default DataviewsContext;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA,MAAMC,gBAAgB,GAAG,IAAAC,sBAAa,EAAE,CAAC,CAAE,CAAC;AAAC,IAAAC,QAAA,GAC9BF,gBAAgB;AAAAG,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -1,7 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { createContext } from '@wordpress/element';
5
- const DataviewsContext = createContext({});
6
- export default DataviewsContext;
7
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createContext","DataviewsContext"],"sources":["@wordpress/edit-site/src/components/dataviews/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\nconst DataviewsContext = createContext( {} );\nexport default DataviewsContext;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,oBAAoB;AAElD,MAAMC,gBAAgB,GAAGD,aAAa,CAAE,CAAC,CAAE,CAAC;AAC5C,eAAeC,gBAAgB"}
@@ -1,7 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { createContext } from '@wordpress/element';
5
-
6
- const DataviewsContext = createContext( {} );
7
- export default DataviewsContext;