@wordpress/edit-site 5.20.1 → 5.21.1-next.f8d8eceb.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/actions/index.js +121 -0
- package/build/components/actions/index.js.map +1 -0
- package/build/components/add-new-template/add-custom-template-modal-content.js +17 -13
- package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
- package/build/components/block-editor/resize-handle.js +2 -1
- package/build/components/block-editor/resize-handle.js.map +1 -1
- package/build/components/block-editor/use-site-editor-settings.js +12 -4
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +10 -6
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/dataviews/context.js +15 -0
- package/build/components/dataviews/context.js.map +1 -0
- package/build/components/dataviews/dataviews.js +50 -33
- package/build/components/dataviews/dataviews.js.map +1 -1
- package/build/components/dataviews/filters.js +74 -0
- package/build/components/dataviews/filters.js.map +1 -0
- package/build/components/dataviews/in-filter.js +49 -0
- package/build/components/dataviews/in-filter.js.map +1 -0
- package/build/components/dataviews/index.js +0 -7
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews/item-actions.js +62 -0
- package/build/components/dataviews/item-actions.js.map +1 -0
- package/build/components/dataviews/pagination.js +74 -45
- package/build/components/dataviews/pagination.js.map +1 -1
- package/build/components/dataviews/{text-filter.js → search.js} +21 -15
- package/build/components/dataviews/search.js.map +1 -0
- package/build/components/dataviews/view-actions.js +94 -56
- package/build/components/dataviews/view-actions.js.map +1 -1
- package/build/components/dataviews/view-grid.js +59 -0
- package/build/components/dataviews/view-grid.js.map +1 -0
- package/build/components/dataviews/view-list.js +283 -0
- package/build/components/dataviews/view-list.js.map +1 -0
- package/build/components/editor/index.js +2 -1
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +16 -10
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +20 -6
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/screen-block.js +2 -10
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-root.js +1 -2
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/ui.js +3 -4
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/layout/index.js +10 -2
- package/build/components/layout/index.js.map +1 -1
- package/build/components/media/index.js +34 -0
- package/build/components/media/index.js.map +1 -0
- package/build/components/page-actions/index.js +0 -2
- package/build/components/page-actions/index.js.map +1 -1
- package/build/components/page-pages/default-views.js +60 -0
- package/build/components/page-pages/default-views.js.map +1 -0
- package/build/components/page-pages/index.js +174 -107
- package/build/components/page-pages/index.js.map +1 -1
- package/build/components/page-patterns/delete-category-menu-item.js +89 -0
- package/build/components/page-patterns/delete-category-menu-item.js.map +1 -0
- package/build/components/page-patterns/duplicate-menu-item.js +52 -131
- package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build/components/page-patterns/grid-item.js +1 -0
- package/build/components/page-patterns/grid-item.js.map +1 -1
- package/build/components/page-patterns/header.js +25 -3
- package/build/components/page-patterns/header.js.map +1 -1
- package/build/components/page-patterns/rename-category-menu-item.js +49 -0
- package/build/components/page-patterns/rename-category-menu-item.js.map +1 -0
- package/build/components/page-patterns/rename-menu-item.js +1 -1
- package/build/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +1 -0
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/pattern-modal/duplicate.js +65 -0
- package/build/components/pattern-modal/duplicate.js.map +1 -0
- package/build/components/pattern-modal/index.js +24 -0
- package/build/components/pattern-modal/index.js.map +1 -0
- package/build/components/pattern-modal/rename.js +42 -0
- package/build/components/pattern-modal/rename.js.map +1 -0
- package/build/components/sidebar/index.js +3 -1
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +72 -0
- package/build/components/sidebar-dataviews/index.js.map +1 -0
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js +3 -0
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -2
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -3
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +29 -0
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -0
- package/build/components/sidebar-navigation-screen-template/home-template-details.js +12 -1
- package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build/hooks/commands/use-common-commands.js +1 -2
- package/build/hooks/commands/use-common-commands.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +50 -0
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build/lock-unlock.js +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/store/selectors.js +4 -5
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/actions/index.js +108 -0
- package/build-module/components/actions/index.js.map +1 -0
- package/build-module/components/add-new-template/add-custom-template-modal-content.js +16 -12
- package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
- package/build-module/components/block-editor/resize-handle.js +2 -1
- package/build-module/components/block-editor/resize-handle.js.map +1 -1
- package/build-module/components/block-editor/use-site-editor-settings.js +12 -4
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +10 -6
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/dataviews/context.js +7 -0
- package/build-module/components/dataviews/context.js.map +1 -0
- package/build-module/components/dataviews/dataviews.js +49 -32
- package/build-module/components/dataviews/dataviews.js.map +1 -1
- package/build-module/components/dataviews/filters.js +66 -0
- package/build-module/components/dataviews/filters.js.map +1 -0
- package/build-module/components/dataviews/in-filter.js +41 -0
- package/build-module/components/dataviews/in-filter.js.map +1 -0
- package/build-module/components/dataviews/index.js +0 -1
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews/item-actions.js +55 -0
- package/build-module/components/dataviews/item-actions.js.map +1 -0
- package/build-module/components/dataviews/pagination.js +73 -46
- package/build-module/components/dataviews/pagination.js.map +1 -1
- package/build-module/components/dataviews/search.js +42 -0
- package/build-module/components/dataviews/search.js.map +1 -0
- package/build-module/components/dataviews/view-actions.js +95 -54
- package/build-module/components/dataviews/view-actions.js.map +1 -1
- package/build-module/components/dataviews/view-grid.js +51 -0
- package/build-module/components/dataviews/view-grid.js.map +1 -0
- package/build-module/components/dataviews/view-list.js +274 -0
- package/build-module/components/dataviews/view-list.js.map +1 -0
- package/build-module/components/editor/index.js +2 -1
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +16 -10
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +20 -6
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +2 -10
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-root.js +1 -2
- package/build-module/components/global-styles/screen-root.js.map +1 -1
- package/build-module/components/global-styles/ui.js +3 -4
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/layout/index.js +11 -3
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/media/index.js +26 -0
- package/build-module/components/media/index.js.map +1 -0
- package/build-module/components/page-actions/index.js +0 -2
- package/build-module/components/page-actions/index.js.map +1 -1
- package/build-module/components/page-pages/default-views.js +53 -0
- package/build-module/components/page-pages/default-views.js.map +1 -0
- package/build-module/components/page-pages/index.js +175 -110
- package/build-module/components/page-pages/index.js.map +1 -1
- package/build-module/components/page-patterns/delete-category-menu-item.js +82 -0
- package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -0
- package/build-module/components/page-patterns/duplicate-menu-item.js +54 -133
- package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/grid-item.js +1 -0
- package/build-module/components/page-patterns/grid-item.js.map +1 -1
- package/build-module/components/page-patterns/header.js +26 -4
- package/build-module/components/page-patterns/header.js.map +1 -1
- package/build-module/components/page-patterns/rename-category-menu-item.js +42 -0
- package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -0
- package/build-module/components/page-patterns/rename-menu-item.js +1 -1
- package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +1 -0
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/pattern-modal/duplicate.js +57 -0
- package/build-module/components/pattern-modal/duplicate.js.map +1 -0
- package/build-module/components/pattern-modal/index.js +14 -0
- package/build-module/components/pattern-modal/index.js.map +1 -0
- package/build-module/components/pattern-modal/rename.js +34 -0
- package/build-module/components/pattern-modal/rename.js.map +1 -0
- package/build-module/components/sidebar/index.js +3 -1
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +64 -0
- package/build-module/components/sidebar-dataviews/index.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +3 -0
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -2
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -3
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +22 -0
- package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +12 -1
- package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build-module/hooks/commands/use-common-commands.js +1 -2
- package/build-module/hooks/commands/use-common-commands.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +51 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-module/lock-unlock.js +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/store/selectors.js +4 -5
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +48 -11
- package/build-style/style.css +48 -11
- package/package.json +40 -40
- package/src/components/actions/index.js +123 -0
- package/src/components/add-new-template/add-custom-template-modal-content.js +22 -17
- package/src/components/block-editor/resize-handle.js +1 -0
- package/src/components/block-editor/use-site-editor-settings.js +21 -13
- package/src/components/create-template-part-modal/index.js +9 -5
- package/src/components/dataviews/README.md +194 -0
- package/src/components/dataviews/context.js +7 -0
- package/src/components/dataviews/dataviews.js +55 -34
- package/src/components/dataviews/filters.js +75 -0
- package/src/components/dataviews/in-filter.js +45 -0
- package/src/components/dataviews/index.js +0 -1
- package/src/components/dataviews/item-actions.js +69 -0
- package/src/components/dataviews/pagination.js +80 -59
- package/src/components/dataviews/search.js +41 -0
- package/src/components/dataviews/style.scss +18 -3
- package/src/components/dataviews/view-actions.js +108 -63
- package/src/components/dataviews/view-grid.js +65 -0
- package/src/components/dataviews/view-list.js +348 -0
- package/src/components/editor/index.js +2 -0
- package/src/components/global-styles/font-library-modal/context.js +17 -11
- package/src/components/global-styles/font-library-modal/font-collection.js +19 -11
- package/src/components/global-styles/screen-block.js +2 -9
- package/src/components/global-styles/screen-root.js +1 -2
- package/src/components/global-styles/style.scss +16 -4
- package/src/components/global-styles/ui.js +1 -2
- package/src/components/layout/index.js +12 -4
- package/src/components/media/index.js +25 -0
- package/src/components/page-actions/index.js +1 -7
- package/src/components/page-pages/default-views.js +58 -0
- package/src/components/page-pages/index.js +181 -108
- package/src/components/page-pages/style.scss +3 -0
- package/src/components/page-patterns/delete-category-menu-item.js +104 -0
- package/src/components/page-patterns/duplicate-menu-item.js +68 -181
- package/src/components/page-patterns/grid-item.js +1 -0
- package/src/components/page-patterns/header.js +42 -6
- package/src/components/page-patterns/rename-category-menu-item.js +45 -0
- package/src/components/page-patterns/rename-menu-item.js +2 -2
- package/src/components/page-patterns/style.scss +8 -0
- package/src/components/page-patterns/use-patterns.js +5 -0
- package/src/components/pattern-modal/duplicate.js +53 -0
- package/src/components/pattern-modal/index.js +19 -0
- package/src/components/pattern-modal/rename.js +29 -0
- package/src/components/sidebar/index.js +2 -0
- package/src/components/sidebar-dataviews/index.js +65 -0
- package/src/components/sidebar-edit-mode/template-panel/last-revision.js +4 -0
- package/src/components/sidebar-navigation-screen/style.scss +17 -5
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +2 -7
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -8
- package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js +32 -0
- package/src/components/sidebar-navigation-screen-template/home-template-details.js +21 -7
- package/src/hooks/commands/use-common-commands.js +1 -2
- package/src/hooks/commands/use-edit-mode-commands.js +43 -0
- package/src/lock-unlock.js +1 -1
- package/src/store/selectors.js +9 -10
- package/src/style.scss +1 -0
- package/build/components/dataviews/list-view.js +0 -89
- package/build/components/dataviews/list-view.js.map +0 -1
- package/build/components/dataviews/text-filter.js.map +0 -1
- package/build-module/components/dataviews/list-view.js +0 -80
- package/build-module/components/dataviews/list-view.js.map +0 -1
- package/build-module/components/dataviews/text-filter.js +0 -36
- package/build-module/components/dataviews/text-filter.js.map +0 -1
- package/src/components/dataviews/list-view.js +0 -106
- package/src/components/dataviews/text-filter.js +0 -37
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
|
|
6
|
+
// DEFAULT_STATUSES is intentionally sorted. Items do not have spaces in between them.
|
|
7
|
+
// The reason for that is to match the default statuses coming from the endpoint
|
|
8
|
+
// (entity request and useEffect to update the view).
|
|
9
|
+
export const DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All statuses but 'trash'.
|
|
10
|
+
|
|
11
|
+
const DEFAULT_PAGE_BASE = {
|
|
12
|
+
type: 'list',
|
|
13
|
+
search: '',
|
|
14
|
+
filters: {
|
|
15
|
+
status: DEFAULT_STATUSES
|
|
16
|
+
},
|
|
17
|
+
page: 1,
|
|
18
|
+
perPage: 5,
|
|
19
|
+
sort: {
|
|
20
|
+
field: 'date',
|
|
21
|
+
direction: 'desc'
|
|
22
|
+
},
|
|
23
|
+
visibleFilters: ['author', 'status'],
|
|
24
|
+
// All fields are visible by default, so it's
|
|
25
|
+
// better to keep track of the hidden ones.
|
|
26
|
+
hiddenFields: ['date', 'featured-image'],
|
|
27
|
+
layout: {}
|
|
28
|
+
};
|
|
29
|
+
const DEFAULT_VIEWS = [{
|
|
30
|
+
title: __('All'),
|
|
31
|
+
slug: 'all',
|
|
32
|
+
view: DEFAULT_PAGE_BASE
|
|
33
|
+
}, {
|
|
34
|
+
title: __('Drafts'),
|
|
35
|
+
slug: 'drafts',
|
|
36
|
+
view: {
|
|
37
|
+
...DEFAULT_PAGE_BASE,
|
|
38
|
+
filters: {
|
|
39
|
+
status: 'draft'
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}, {
|
|
43
|
+
title: __('Trash'),
|
|
44
|
+
slug: 'trash',
|
|
45
|
+
view: {
|
|
46
|
+
...DEFAULT_PAGE_BASE,
|
|
47
|
+
filters: {
|
|
48
|
+
status: 'trash'
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}];
|
|
52
|
+
export default DEFAULT_VIEWS;
|
|
53
|
+
//# sourceMappingURL=default-views.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -2,89 +2,128 @@ import { createElement } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* WordPress dependencies
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
6
|
-
import { addQueryArgs } from '@wordpress/url';
|
|
7
|
-
import { VisuallyHidden, __experimentalHeading as Heading, __experimentalVStack as VStack } from '@wordpress/components';
|
|
5
|
+
import { __experimentalHeading as Heading, __experimentalVStack as VStack } from '@wordpress/components';
|
|
8
6
|
import { __ } from '@wordpress/i18n';
|
|
9
7
|
import { useEntityRecords } from '@wordpress/core-data';
|
|
10
8
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
11
|
-
import { useState,
|
|
9
|
+
import { useState, useMemo, useCallback, useEffect } from '@wordpress/element';
|
|
10
|
+
import { dateI18n, getDate, getSettings } from '@wordpress/date';
|
|
11
|
+
import { privateApis as routerPrivateApis } from '@wordpress/router';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Internal dependencies
|
|
15
15
|
*/
|
|
16
16
|
import Page from '../page';
|
|
17
17
|
import Link from '../routes/link';
|
|
18
|
-
import
|
|
19
|
-
import {
|
|
18
|
+
import { DataViews } from '../dataviews';
|
|
19
|
+
import { DEFAULT_STATUSES, default as DEFAULT_VIEWS } from './default-views';
|
|
20
|
+
import { useTrashPostAction, postRevisionsAction, viewPostAction, useEditPostAction } from '../actions';
|
|
21
|
+
import Media from '../media';
|
|
22
|
+
import { unlock } from '../../lock-unlock';
|
|
23
|
+
const {
|
|
24
|
+
useLocation
|
|
25
|
+
} = unlock(routerPrivateApis);
|
|
20
26
|
const EMPTY_ARRAY = [];
|
|
27
|
+
const defaultConfigPerViewType = {
|
|
28
|
+
list: {},
|
|
29
|
+
grid: {
|
|
30
|
+
mediaField: 'featured-image'
|
|
31
|
+
}
|
|
32
|
+
};
|
|
21
33
|
export default function PagePages() {
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
const {
|
|
35
|
+
params: {
|
|
36
|
+
path,
|
|
37
|
+
activeView = 'all'
|
|
38
|
+
}
|
|
39
|
+
} = useLocation();
|
|
40
|
+
const initialView = DEFAULT_VIEWS.find(({
|
|
41
|
+
slug
|
|
42
|
+
}) => slug === activeView).view;
|
|
43
|
+
const [view, setView] = useState(initialView);
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
setView(DEFAULT_VIEWS.find(({
|
|
46
|
+
slug
|
|
47
|
+
}) => slug === activeView).view);
|
|
48
|
+
}, [path, activeView]);
|
|
32
49
|
// Request post statuses to get the proper labels.
|
|
33
|
-
const
|
|
50
|
+
const {
|
|
51
|
+
records: statuses
|
|
52
|
+
} = useEntityRecords('root', 'status');
|
|
53
|
+
const defaultStatuses = useMemo(() => {
|
|
54
|
+
return statuses === null ? DEFAULT_STATUSES : statuses.filter(({
|
|
55
|
+
slug
|
|
56
|
+
}) => slug !== 'trash').map(({
|
|
57
|
+
slug
|
|
58
|
+
}) => slug).sort().join();
|
|
59
|
+
}, [statuses]);
|
|
34
60
|
useEffect(() => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
61
|
+
// Only update the view if the statuses received from the endpoint
|
|
62
|
+
// are different from the DEFAULT_STATUSES provided initially.
|
|
63
|
+
//
|
|
64
|
+
// The pages endpoint depends on the status endpoint via the status filter.
|
|
65
|
+
// Initially, this code filters the pages request by DEFAULT_STATUTES,
|
|
66
|
+
// instead of using the default (publish).
|
|
67
|
+
// https://developer.wordpress.org/rest-api/reference/pages/#list-pages
|
|
68
|
+
//
|
|
69
|
+
// By doing so, it avoids a second request to the pages endpoint
|
|
70
|
+
// upon receiving the statuses when they are the same (most common scenario).
|
|
71
|
+
if (DEFAULT_STATUSES !== defaultStatuses) {
|
|
72
|
+
setView({
|
|
73
|
+
...view,
|
|
74
|
+
filters: {
|
|
75
|
+
...view.filters,
|
|
76
|
+
status: defaultStatuses
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}, [defaultStatuses]);
|
|
49
81
|
const queryArgs = useMemo(() => ({
|
|
50
|
-
per_page:
|
|
51
|
-
page:
|
|
52
|
-
// tanstack starts from zero.
|
|
82
|
+
per_page: view.perPage,
|
|
83
|
+
page: view.page,
|
|
53
84
|
_embed: 'author',
|
|
54
|
-
order:
|
|
55
|
-
orderby:
|
|
56
|
-
search:
|
|
57
|
-
|
|
58
|
-
}), [
|
|
85
|
+
order: view.sort?.direction,
|
|
86
|
+
orderby: view.sort?.field,
|
|
87
|
+
search: view.search,
|
|
88
|
+
...view.filters
|
|
89
|
+
}), [view]);
|
|
59
90
|
const {
|
|
60
|
-
records,
|
|
61
|
-
isResolving:
|
|
91
|
+
records: pages,
|
|
92
|
+
isResolving: isLoadingPages,
|
|
93
|
+
totalItems,
|
|
94
|
+
totalPages
|
|
62
95
|
} = useEntityRecords('postType', 'page', queryArgs);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
method: 'HEAD',
|
|
71
|
-
parse: false
|
|
72
|
-
}).then(res => {
|
|
73
|
-
const totalPages = parseInt(res.headers.get('X-WP-TotalPages'));
|
|
74
|
-
const totalItems = parseInt(res.headers.get('X-WP-Total'));
|
|
75
|
-
setPaginationInfo({
|
|
76
|
-
totalPages,
|
|
77
|
-
totalItems
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
// Status should not make extra request if already did..
|
|
81
|
-
}, [globalFilter, pageSize, reset]);
|
|
96
|
+
const {
|
|
97
|
+
records: authors
|
|
98
|
+
} = useEntityRecords('root', 'user');
|
|
99
|
+
const paginationInfo = useMemo(() => ({
|
|
100
|
+
totalItems,
|
|
101
|
+
totalPages
|
|
102
|
+
}), [totalItems, totalPages]);
|
|
82
103
|
const fields = useMemo(() => [{
|
|
104
|
+
id: 'featured-image',
|
|
105
|
+
header: __('Featured Image'),
|
|
106
|
+
getValue: ({
|
|
107
|
+
item
|
|
108
|
+
}) => item.featured_media,
|
|
109
|
+
render: ({
|
|
110
|
+
item,
|
|
111
|
+
view: currentView
|
|
112
|
+
}) => !!item.featured_media ? createElement(Media, {
|
|
113
|
+
className: "edit-site-page-pages__featured-image",
|
|
114
|
+
id: item.featured_media,
|
|
115
|
+
size: currentView.type === 'list' ? ['thumbnail', 'medium', 'large', 'full'] : ['large', 'full', 'medium', 'thumbnail']
|
|
116
|
+
}) : null,
|
|
117
|
+
enableSorting: false
|
|
118
|
+
}, {
|
|
83
119
|
header: __('Title'),
|
|
84
120
|
id: 'title',
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
121
|
+
getValue: ({
|
|
122
|
+
item
|
|
123
|
+
}) => item.title?.rendered || item.slug,
|
|
124
|
+
render: ({
|
|
125
|
+
item
|
|
126
|
+
}) => {
|
|
88
127
|
return createElement(VStack, {
|
|
89
128
|
spacing: 1
|
|
90
129
|
}, createElement(Heading, {
|
|
@@ -92,11 +131,11 @@ export default function PagePages() {
|
|
|
92
131
|
level: 5
|
|
93
132
|
}, createElement(Link, {
|
|
94
133
|
params: {
|
|
95
|
-
postId:
|
|
96
|
-
postType:
|
|
134
|
+
postId: item.id,
|
|
135
|
+
postType: item.type,
|
|
97
136
|
canvas: 'edit'
|
|
98
137
|
}
|
|
99
|
-
}, decodeEntities(
|
|
138
|
+
}, decodeEntities(item.title?.rendered || item.slug) || __('(no title)'))));
|
|
100
139
|
},
|
|
101
140
|
maxWidth: 400,
|
|
102
141
|
sortingFn: 'alphanumeric',
|
|
@@ -104,63 +143,89 @@ export default function PagePages() {
|
|
|
104
143
|
}, {
|
|
105
144
|
header: __('Author'),
|
|
106
145
|
id: 'author',
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
146
|
+
getValue: ({
|
|
147
|
+
item
|
|
148
|
+
}) => item._embedded?.author[0]?.name,
|
|
149
|
+
render: ({
|
|
150
|
+
item
|
|
151
|
+
}) => {
|
|
152
|
+
const author = item._embedded?.author[0];
|
|
110
153
|
return createElement("a", {
|
|
111
154
|
href: `user-edit.php?user_id=${author.id}`
|
|
112
155
|
}, author.name);
|
|
113
|
-
}
|
|
156
|
+
},
|
|
157
|
+
filters: ['enumeration'],
|
|
158
|
+
elements: authors?.map(({
|
|
159
|
+
id,
|
|
160
|
+
name
|
|
161
|
+
}) => ({
|
|
162
|
+
value: id,
|
|
163
|
+
label: name
|
|
164
|
+
})) || []
|
|
114
165
|
}, {
|
|
115
|
-
header: 'Status',
|
|
166
|
+
header: __('Status'),
|
|
116
167
|
id: 'status',
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
postId: page.id,
|
|
125
|
-
onRemove: () => setResetQuery()
|
|
126
|
-
});
|
|
168
|
+
getValue: ({
|
|
169
|
+
item
|
|
170
|
+
}) => {
|
|
171
|
+
var _statuses$find$name;
|
|
172
|
+
return (_statuses$find$name = statuses?.find(({
|
|
173
|
+
slug
|
|
174
|
+
}) => slug === item.status)?.name) !== null && _statuses$find$name !== void 0 ? _statuses$find$name : item.status;
|
|
127
175
|
},
|
|
128
|
-
|
|
129
|
-
|
|
176
|
+
filters: [{
|
|
177
|
+
type: 'enumeration',
|
|
178
|
+
id: 'status',
|
|
179
|
+
resetValue: defaultStatuses
|
|
180
|
+
}],
|
|
181
|
+
elements: statuses?.map(({
|
|
182
|
+
slug,
|
|
183
|
+
name
|
|
184
|
+
}) => ({
|
|
185
|
+
value: slug,
|
|
186
|
+
label: name
|
|
187
|
+
})) || [],
|
|
188
|
+
enableSorting: false
|
|
189
|
+
}, {
|
|
190
|
+
header: __('Date'),
|
|
191
|
+
id: 'date',
|
|
192
|
+
getValue: ({
|
|
193
|
+
item
|
|
194
|
+
}) => item.date,
|
|
195
|
+
render: ({
|
|
196
|
+
item
|
|
197
|
+
}) => {
|
|
198
|
+
const formattedDate = dateI18n(getSettings().formats.datetimeAbbreviated, getDate(item.date));
|
|
199
|
+
return createElement("time", null, formattedDate);
|
|
200
|
+
}
|
|
201
|
+
}], [defaultStatuses, statuses, authors]);
|
|
202
|
+
const trashPostAction = useTrashPostAction();
|
|
203
|
+
const editPostAction = useEditPostAction();
|
|
204
|
+
const actions = useMemo(() => [viewPostAction, trashPostAction, editPostAction, postRevisionsAction], [trashPostAction, editPostAction]);
|
|
205
|
+
const onChangeView = useCallback(viewUpdater => {
|
|
206
|
+
let updatedView = typeof viewUpdater === 'function' ? viewUpdater(view) : viewUpdater;
|
|
207
|
+
if (updatedView.type !== view.type) {
|
|
208
|
+
updatedView = {
|
|
209
|
+
...updatedView,
|
|
210
|
+
layout: {
|
|
211
|
+
...defaultConfigPerViewType[updatedView.type]
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
setView(updatedView);
|
|
216
|
+
}, [view, setView]);
|
|
130
217
|
|
|
131
218
|
// TODO: we need to handle properly `data={ data || EMPTY_ARRAY }` for when `isLoading`.
|
|
132
219
|
return createElement(Page, {
|
|
133
220
|
title: __('Pages')
|
|
134
221
|
}, createElement(DataViews, {
|
|
135
222
|
paginationInfo: paginationInfo,
|
|
136
|
-
data: records || EMPTY_ARRAY,
|
|
137
|
-
isLoading: isLoading,
|
|
138
223
|
fields: fields,
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
state: {
|
|
145
|
-
sorting,
|
|
146
|
-
globalFilter,
|
|
147
|
-
pagination
|
|
148
|
-
},
|
|
149
|
-
pageCount: paginationInfo?.totalPages,
|
|
150
|
-
onSortingChange: setSorting,
|
|
151
|
-
onGlobalFilterChange: value => {
|
|
152
|
-
setGlobalFilter(value);
|
|
153
|
-
setPagination({
|
|
154
|
-
pageIndex: 0,
|
|
155
|
-
pageSize
|
|
156
|
-
});
|
|
157
|
-
},
|
|
158
|
-
// TODO: check these callbacks and maybe reset the query when needed...
|
|
159
|
-
onPaginationChange: setPagination,
|
|
160
|
-
meta: {
|
|
161
|
-
resetQuery: setResetQuery
|
|
162
|
-
}
|
|
163
|
-
}
|
|
224
|
+
actions: actions,
|
|
225
|
+
data: pages || EMPTY_ARRAY,
|
|
226
|
+
isLoading: isLoadingPages,
|
|
227
|
+
view: view,
|
|
228
|
+
onChangeView: onChangeView
|
|
164
229
|
}));
|
|
165
230
|
}
|
|
166
231
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["apiFetch","addQueryArgs","VisuallyHidden","__experimentalHeading","Heading","__experimentalVStack","VStack","__","useEntityRecords","decodeEntities","useState","useEffect","useMemo","Page","Link","PageActions","DataViews","PAGE_SIZE_VALUES","EMPTY_ARRAY","PagePages","reset","setResetQuery","v","globalFilter","setGlobalFilter","paginationInfo","setPaginationInfo","pageIndex","pageSize","setPagination","postStatuses","setPostStatuses","path","then","pagination","sorting","setSorting","order","orderby","queryArgs","per_page","page","_embed","desc","id","search","status","records","isResolving","isLoading","_fields","method","parse","res","totalPages","parseInt","headers","get","totalItems","fields","header","accessorFn","title","rendered","slug","cell","props","row","original","createElement","spacing","as","level","params","postId","postType","type","canvas","getValue","maxWidth","sortingFn","enableHiding","_embedded","author","name","href","onRemove","data","options","manualSorting","manualFiltering","manualPagination","enableRowSelection","state","pageCount","onSortingChange","onGlobalFilterChange","value","onPaginationChange","meta","resetQuery"],"sources":["@wordpress/edit-site/src/components/page-pages/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport {\n\tVisuallyHidden,\n\t__experimentalHeading as Heading,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Link from '../routes/link';\nimport PageActions from '../page-actions';\nimport { DataViews, PAGE_SIZE_VALUES } from '../dataviews';\n\nconst EMPTY_ARRAY = [];\n\nexport default function PagePages() {\n\tconst [ reset, setResetQuery ] = useState( ( v ) => ! v );\n\tconst [ globalFilter, setGlobalFilter ] = useState( '' );\n\tconst [ paginationInfo, setPaginationInfo ] = useState();\n\tconst [ { pageIndex, pageSize }, setPagination ] = useState( {\n\t\tpageIndex: 0,\n\t\tpageSize: PAGE_SIZE_VALUES[ 0 ],\n\t} );\n\t// Request post statuses to get the proper labels.\n\tconst [ postStatuses, setPostStatuses ] = useState( EMPTY_ARRAY );\n\tuseEffect( () => {\n\t\tapiFetch( {\n\t\t\tpath: '/wp/v2/statuses',\n\t\t} ).then( setPostStatuses );\n\t}, [] );\n\n\t// TODO: probably memo other objects passed as state(ex:https://tanstack.com/table/v8/docs/examples/react/pagination-controlled).\n\tconst pagination = useMemo(\n\t\t() => ( { pageIndex, pageSize } ),\n\t\t[ pageIndex, pageSize ]\n\t);\n\tconst [ sorting, setSorting ] = useState( [\n\t\t{ order: 'desc', orderby: 'date' },\n\t] );\n\tconst queryArgs = useMemo(\n\t\t() => ( {\n\t\t\tper_page: pageSize,\n\t\t\tpage: pageIndex + 1, // tanstack starts from zero.\n\t\t\t_embed: 'author',\n\t\t\torder: sorting[ 0 ]?.desc ? 'desc' : 'asc',\n\t\t\torderby: sorting[ 0 ]?.id,\n\t\t\tsearch: globalFilter,\n\t\t\tstatus: [ 'publish', 'draft' ],\n\t\t} ),\n\t\t[\n\t\t\tglobalFilter,\n\t\t\tsorting[ 0 ]?.id,\n\t\t\tsorting[ 0 ]?.desc,\n\t\t\tpageSize,\n\t\t\tpageIndex,\n\t\t\treset,\n\t\t]\n\t);\n\tconst { records, isResolving: isLoading } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\tqueryArgs\n\t);\n\tuseEffect( () => {\n\t\t// Make extra request to handle controlled pagination.\n\t\tapiFetch( {\n\t\t\tpath: addQueryArgs( '/wp/v2/pages', {\n\t\t\t\t...queryArgs,\n\t\t\t\t_fields: 'id',\n\t\t\t} ),\n\t\t\tmethod: 'HEAD',\n\t\t\tparse: false,\n\t\t} ).then( ( res ) => {\n\t\t\tconst totalPages = parseInt( res.headers.get( 'X-WP-TotalPages' ) );\n\t\t\tconst totalItems = parseInt( res.headers.get( 'X-WP-Total' ) );\n\t\t\tsetPaginationInfo( {\n\t\t\t\ttotalPages,\n\t\t\t\ttotalItems,\n\t\t\t} );\n\t\t} );\n\t\t// Status should not make extra request if already did..\n\t}, [ globalFilter, pageSize, reset ] );\n\n\tconst fields = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\taccessorFn: ( page ) => page.title?.rendered || page.slug,\n\t\t\t\tcell: ( props ) => {\n\t\t\t\t\tconst page = props.row.original;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t<Heading as=\"h3\" level={ 5 }>\n\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\t\t\tpostId: page.id,\n\t\t\t\t\t\t\t\t\t\tpostType: page.type,\n\t\t\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ decodeEntities( props.getValue() ) }\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tsortingFn: 'alphanumeric',\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\taccessorFn: ( page ) => page._embedded?.author[ 0 ]?.name,\n\t\t\t\tcell: ( props ) => {\n\t\t\t\t\tconst author = props.row.original._embedded?.author[ 0 ];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<a href={ `user-edit.php?user_id=${ author.id }` }>\n\t\t\t\t\t\t\t{ author.name }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: 'Status',\n\t\t\t\tid: 'status',\n\t\t\t\tcell: ( props ) =>\n\t\t\t\t\tpostStatuses[ props.row.original.status ]?.name,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: <VisuallyHidden>{ __( 'Actions' ) }</VisuallyHidden>,\n\t\t\t\tid: 'actions',\n\t\t\t\tcell: ( props ) => {\n\t\t\t\t\tconst page = props.row.original;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<PageActions\n\t\t\t\t\t\t\tpostId={ page.id }\n\t\t\t\t\t\t\tonRemove={ () => setResetQuery() }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t],\n\t\t[ postStatuses ]\n\t);\n\n\t// TODO: we need to handle properly `data={ data || EMPTY_ARRAY }` for when `isLoading`.\n\treturn (\n\t\t<Page title={ __( 'Pages' ) }>\n\t\t\t<DataViews\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tdata={ records || EMPTY_ARRAY }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\tfields={ fields }\n\t\t\t\toptions={ {\n\t\t\t\t\tmanualSorting: true,\n\t\t\t\t\tmanualFiltering: true,\n\t\t\t\t\tmanualPagination: true,\n\t\t\t\t\tenableRowSelection: true,\n\t\t\t\t\tstate: {\n\t\t\t\t\t\tsorting,\n\t\t\t\t\t\tglobalFilter,\n\t\t\t\t\t\tpagination,\n\t\t\t\t\t},\n\t\t\t\t\tpageCount: paginationInfo?.totalPages,\n\t\t\t\t\tonSortingChange: setSorting,\n\t\t\t\t\tonGlobalFilterChange: ( value ) => {\n\t\t\t\t\t\tsetGlobalFilter( value );\n\t\t\t\t\t\tsetPagination( { pageIndex: 0, pageSize } );\n\t\t\t\t\t},\n\t\t\t\t\t// TODO: check these callbacks and maybe reset the query when needed...\n\t\t\t\t\tonPaginationChange: setPagination,\n\t\t\t\t\tmeta: { resetQuery: setResetQuery },\n\t\t\t\t} }\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["__experimentalHeading","Heading","__experimentalVStack","VStack","__","useEntityRecords","decodeEntities","useState","useMemo","useCallback","useEffect","dateI18n","getDate","getSettings","privateApis","routerPrivateApis","Page","Link","DataViews","DEFAULT_STATUSES","default","DEFAULT_VIEWS","useTrashPostAction","postRevisionsAction","viewPostAction","useEditPostAction","Media","unlock","useLocation","EMPTY_ARRAY","defaultConfigPerViewType","list","grid","mediaField","PagePages","params","path","activeView","initialView","find","slug","view","setView","records","statuses","defaultStatuses","filter","map","sort","join","filters","status","queryArgs","per_page","perPage","page","_embed","order","direction","orderby","field","search","pages","isResolving","isLoadingPages","totalItems","totalPages","authors","paginationInfo","fields","id","header","getValue","item","featured_media","render","currentView","createElement","className","size","type","enableSorting","title","rendered","spacing","as","level","postId","postType","canvas","maxWidth","sortingFn","enableHiding","_embedded","author","name","href","elements","value","label","_statuses$find$name","resetValue","date","formattedDate","formats","datetimeAbbreviated","trashPostAction","editPostAction","actions","onChangeView","viewUpdater","updatedView","layout","data","isLoading"],"sources":["@wordpress/edit-site/src/components/page-pages/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHeading as Heading,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Link from '../routes/link';\nimport { DataViews } from '../dataviews';\nimport { DEFAULT_STATUSES, default as DEFAULT_VIEWS } from './default-views';\nimport {\n\tuseTrashPostAction,\n\tpostRevisionsAction,\n\tviewPostAction,\n\tuseEditPostAction,\n} from '../actions';\nimport Media from '../media';\nimport { unlock } from '../../lock-unlock';\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\nconst defaultConfigPerViewType = {\n\tlist: {},\n\tgrid: {\n\t\tmediaField: 'featured-image',\n\t},\n};\n\nexport default function PagePages() {\n\tconst {\n\t\tparams: { path, activeView = 'all' },\n\t} = useLocation();\n\tconst initialView = DEFAULT_VIEWS.find(\n\t\t( { slug } ) => slug === activeView\n\t).view;\n\tconst [ view, setView ] = useState( initialView );\n\tuseEffect( () => {\n\t\tsetView(\n\t\t\tDEFAULT_VIEWS.find( ( { slug } ) => slug === activeView ).view\n\t\t);\n\t}, [ path, activeView ] );\n\t// Request post statuses to get the proper labels.\n\tconst { records: statuses } = useEntityRecords( 'root', 'status' );\n\tconst defaultStatuses = useMemo( () => {\n\t\treturn statuses === null\n\t\t\t? DEFAULT_STATUSES\n\t\t\t: statuses\n\t\t\t\t\t.filter( ( { slug } ) => slug !== 'trash' )\n\t\t\t\t\t.map( ( { slug } ) => slug )\n\t\t\t\t\t.sort()\n\t\t\t\t\t.join();\n\t}, [ statuses ] );\n\n\tuseEffect( () => {\n\t\t// Only update the view if the statuses received from the endpoint\n\t\t// are different from the DEFAULT_STATUSES provided initially.\n\t\t//\n\t\t// The pages endpoint depends on the status endpoint via the status filter.\n\t\t// Initially, this code filters the pages request by DEFAULT_STATUTES,\n\t\t// instead of using the default (publish).\n\t\t// https://developer.wordpress.org/rest-api/reference/pages/#list-pages\n\t\t//\n\t\t// By doing so, it avoids a second request to the pages endpoint\n\t\t// upon receiving the statuses when they are the same (most common scenario).\n\t\tif ( DEFAULT_STATUSES !== defaultStatuses ) {\n\t\t\tsetView( {\n\t\t\t\t...view,\n\t\t\t\tfilters: {\n\t\t\t\t\t...view.filters,\n\t\t\t\t\tstatus: defaultStatuses,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [ defaultStatuses ] );\n\n\tconst queryArgs = useMemo(\n\t\t() => ( {\n\t\t\tper_page: view.perPage,\n\t\t\tpage: view.page,\n\t\t\t_embed: 'author',\n\t\t\torder: view.sort?.direction,\n\t\t\torderby: view.sort?.field,\n\t\t\tsearch: view.search,\n\t\t\t...view.filters,\n\t\t} ),\n\t\t[ view ]\n\t);\n\tconst {\n\t\trecords: pages,\n\t\tisResolving: isLoadingPages,\n\t\ttotalItems,\n\t\ttotalPages,\n\t} = useEntityRecords( 'postType', 'page', queryArgs );\n\n\tconst { records: authors } = useEntityRecords( 'root', 'user' );\n\n\tconst paginationInfo = useMemo(\n\t\t() => ( {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t} ),\n\t\t[ totalItems, totalPages ]\n\t);\n\n\tconst fields = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: 'featured-image',\n\t\t\t\theader: __( 'Featured Image' ),\n\t\t\t\tgetValue: ( { item } ) => item.featured_media,\n\t\t\t\trender: ( { item, view: currentView } ) =>\n\t\t\t\t\t!! item.featured_media ? (\n\t\t\t\t\t\t<Media\n\t\t\t\t\t\t\tclassName=\"edit-site-page-pages__featured-image\"\n\t\t\t\t\t\t\tid={ item.featured_media }\n\t\t\t\t\t\t\tsize={\n\t\t\t\t\t\t\t\tcurrentView.type === 'list'\n\t\t\t\t\t\t\t\t\t? [ 'thumbnail', 'medium', 'large', 'full' ]\n\t\t\t\t\t\t\t\t\t: [ 'large', 'full', 'medium', 'thumbnail' ]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered || item.slug,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t<Heading as=\"h3\" level={ 5 }>\n\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\t\t\tpostId: item.id,\n\t\t\t\t\t\t\t\t\t\tpostType: item.type,\n\t\t\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\titem.title?.rendered || item.slug\n\t\t\t\t\t\t\t\t\t) || __( '(no title)' ) }\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tsortingFn: 'alphanumeric',\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\tgetValue: ( { item } ) => item._embedded?.author[ 0 ]?.name,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tconst author = item._embedded?.author[ 0 ];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<a href={ `user-edit.php?user_id=${ author.id }` }>\n\t\t\t\t\t\t\t{ author.name }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tfilters: [ 'enumeration' ],\n\t\t\t\telements:\n\t\t\t\t\tauthors?.map( ( { id, name } ) => ( {\n\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t} ) ) || [],\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Status' ),\n\t\t\t\tid: 'status',\n\t\t\t\tgetValue: ( { item } ) =>\n\t\t\t\t\tstatuses?.find( ( { slug } ) => slug === item.status )\n\t\t\t\t\t\t?.name ?? item.status,\n\t\t\t\tfilters: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'enumeration',\n\t\t\t\t\t\tid: 'status',\n\t\t\t\t\t\tresetValue: defaultStatuses,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\telements:\n\t\t\t\t\tstatuses?.map( ( { slug, name } ) => ( {\n\t\t\t\t\t\tvalue: slug,\n\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t} ) ) || [],\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Date' ),\n\t\t\t\tid: 'date',\n\t\t\t\tgetValue: ( { item } ) => item.date,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tconst formattedDate = dateI18n(\n\t\t\t\t\t\tgetSettings().formats.datetimeAbbreviated,\n\t\t\t\t\t\tgetDate( item.date )\n\t\t\t\t\t);\n\t\t\t\t\treturn <time>{ formattedDate }</time>;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t[ defaultStatuses, statuses, authors ]\n\t);\n\n\tconst trashPostAction = useTrashPostAction();\n\tconst editPostAction = useEditPostAction();\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\tviewPostAction,\n\t\t\ttrashPostAction,\n\t\t\teditPostAction,\n\t\t\tpostRevisionsAction,\n\t\t],\n\t\t[ trashPostAction, editPostAction ]\n\t);\n\tconst onChangeView = useCallback(\n\t\t( viewUpdater ) => {\n\t\t\tlet updatedView =\n\t\t\t\ttypeof viewUpdater === 'function'\n\t\t\t\t\t? viewUpdater( view )\n\t\t\t\t\t: viewUpdater;\n\t\t\tif ( updatedView.type !== view.type ) {\n\t\t\t\tupdatedView = {\n\t\t\t\t\t...updatedView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ updatedView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tsetView( updatedView );\n\t\t},\n\t\t[ view, setView ]\n\t);\n\n\t// TODO: we need to handle properly `data={ data || EMPTY_ARRAY }` for when `isLoading`.\n\treturn (\n\t\t<Page title={ __( 'Pages' ) }>\n\t\t\t<DataViews\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\tfields={ fields }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ pages || EMPTY_ARRAY }\n\t\t\t\tisLoading={ isLoadingPages }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t/>\n\t\t</Page>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { createElement, Fragment } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* WordPress dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { MenuItem, __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';
|
|
6
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
7
|
+
import { useDispatch } from '@wordpress/data';
|
|
8
|
+
import { useState } from '@wordpress/element';
|
|
9
|
+
import { decodeEntities } from '@wordpress/html-entities';
|
|
10
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
11
|
+
import { store as noticesStore } from '@wordpress/notices';
|
|
12
|
+
import { privateApis as routerPrivateApis } from '@wordpress/router';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
import { unlock } from '../../lock-unlock';
|
|
18
|
+
import { PATTERN_TYPES, PATTERN_DEFAULT_CATEGORY } from '../../utils/constants';
|
|
19
|
+
const {
|
|
20
|
+
useHistory
|
|
21
|
+
} = unlock(routerPrivateApis);
|
|
22
|
+
export default function DeleteCategoryMenuItem({
|
|
23
|
+
category,
|
|
24
|
+
onClose
|
|
25
|
+
}) {
|
|
26
|
+
const [isModalOpen, setIsModalOpen] = useState(false);
|
|
27
|
+
const history = useHistory();
|
|
28
|
+
const {
|
|
29
|
+
createSuccessNotice,
|
|
30
|
+
createErrorNotice
|
|
31
|
+
} = useDispatch(noticesStore);
|
|
32
|
+
const {
|
|
33
|
+
deleteEntityRecord,
|
|
34
|
+
invalidateResolution
|
|
35
|
+
} = useDispatch(coreStore);
|
|
36
|
+
const onDelete = async () => {
|
|
37
|
+
try {
|
|
38
|
+
await deleteEntityRecord('taxonomy', 'wp_pattern_category', category.id, {
|
|
39
|
+
force: true
|
|
40
|
+
}, {
|
|
41
|
+
throwOnError: true
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Prevent the need to refresh the page to get up-to-date categories
|
|
45
|
+
// and pattern categorization.
|
|
46
|
+
invalidateResolution('getUserPatternCategories');
|
|
47
|
+
invalidateResolution('getEntityRecords', ['postType', PATTERN_TYPES.user, {
|
|
48
|
+
per_page: -1
|
|
49
|
+
}]);
|
|
50
|
+
createSuccessNotice(sprintf( /* translators: The pattern category's name */
|
|
51
|
+
__('"%s" deleted.'), category.label), {
|
|
52
|
+
type: 'snackbar',
|
|
53
|
+
id: 'pattern-category-delete'
|
|
54
|
+
});
|
|
55
|
+
onClose?.();
|
|
56
|
+
history.push({
|
|
57
|
+
path: `/patterns`,
|
|
58
|
+
categoryType: PATTERN_TYPES.theme,
|
|
59
|
+
categoryId: PATTERN_DEFAULT_CATEGORY
|
|
60
|
+
});
|
|
61
|
+
} catch (error) {
|
|
62
|
+
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : __('An error occurred while deleting the pattern category.');
|
|
63
|
+
createErrorNotice(errorMessage, {
|
|
64
|
+
type: 'snackbar',
|
|
65
|
+
id: 'pattern-category-delete'
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
return createElement(Fragment, null, createElement(MenuItem, {
|
|
70
|
+
isDestructive: true,
|
|
71
|
+
onClick: () => setIsModalOpen(true)
|
|
72
|
+
}, __('Delete')), createElement(ConfirmDialog, {
|
|
73
|
+
isOpen: isModalOpen,
|
|
74
|
+
onConfirm: onDelete,
|
|
75
|
+
onCancel: () => setIsModalOpen(false),
|
|
76
|
+
confirmButtonText: __('Delete'),
|
|
77
|
+
className: "edit-site-patterns__delete-modal"
|
|
78
|
+
}, sprintf(
|
|
79
|
+
// translators: %s: The pattern category's name.
|
|
80
|
+
__('Are you sure you want to delete the category "%s"? The patterns will not be deleted.'), decodeEntities(category.label))));
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=delete-category-menu-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MenuItem","__experimentalConfirmDialog","ConfirmDialog","store","coreStore","useDispatch","useState","decodeEntities","__","sprintf","noticesStore","privateApis","routerPrivateApis","unlock","PATTERN_TYPES","PATTERN_DEFAULT_CATEGORY","useHistory","DeleteCategoryMenuItem","category","onClose","isModalOpen","setIsModalOpen","history","createSuccessNotice","createErrorNotice","deleteEntityRecord","invalidateResolution","onDelete","id","force","throwOnError","user","per_page","label","type","push","path","categoryType","theme","categoryId","error","errorMessage","message","code","createElement","Fragment","isDestructive","onClick","isOpen","onConfirm","onCancel","confirmButtonText","className"],"sources":["@wordpress/edit-site/src/components/page-patterns/delete-category-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tMenuItem,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { PATTERN_TYPES, PATTERN_DEFAULT_CATEGORY } from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function DeleteCategoryMenuItem( { category, onClose } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst history = useHistory();\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord, invalidateResolution } =\n\t\tuseDispatch( coreStore );\n\n\tconst onDelete = async () => {\n\t\ttry {\n\t\t\tawait deleteEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\t'wp_pattern_category',\n\t\t\t\tcategory.id,\n\t\t\t\t{ force: true },\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Prevent the need to refresh the page to get up-to-date categories\n\t\t\t// and pattern categorization.\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\tinvalidateResolution( 'getEntityRecords', [\n\t\t\t\t'postType',\n\t\t\t\tPATTERN_TYPES.user,\n\t\t\t\t{ per_page: -1 },\n\t\t\t] );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: The pattern category's name */\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\tcategory.label\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'pattern-category-delete' }\n\t\t\t);\n\n\t\t\tonClose?.();\n\t\t\thistory.push( {\n\t\t\t\tpath: `/patterns`,\n\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while deleting the pattern category.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-delete',\n\t\t\t} );\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem isDestructive onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Delete' ) }\n\t\t\t</MenuItem>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ isModalOpen }\n\t\t\t\tonConfirm={ onDelete }\n\t\t\t\tonCancel={ () => setIsModalOpen( false ) }\n\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\tclassName=\"edit-site-patterns__delete-modal\"\n\t\t\t>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %s: The pattern category's name.\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete the category \"%s\"? The patterns will not be deleted.'\n\t\t\t\t\t),\n\t\t\t\t\tdecodeEntities( category.label )\n\t\t\t\t) }\n\t\t\t</ConfirmDialog>\n\t\t</>\n\t);\n}\n"],"mappings":"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"}
|