@wordpress/edit-site 5.20.1 → 5.21.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/trash-post.js +48 -0
- package/build/components/actions/trash-post.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/create-template-part-modal/index.js +10 -6
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/dataviews/dataviews.js +41 -32
- package/build/components/dataviews/dataviews.js.map +1 -1
- package/build/components/dataviews/field-actions.js +30 -0
- package/build/components/dataviews/field-actions.js.map +1 -0
- package/build/components/dataviews/filters.js +61 -0
- package/build/components/dataviews/filters.js.map +1 -0
- package/build/components/dataviews/in-filter.js +51 -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/pagination.js +75 -27
- package/build/components/dataviews/pagination.js.map +1 -1
- package/build/components/dataviews/text-filter.js +18 -12
- package/build/components/dataviews/text-filter.js.map +1 -1
- 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 +1 -2
- 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/index.js +153 -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-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 +49 -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/trash-post.js +41 -0
- package/build-module/components/actions/trash-post.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/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/dataviews.js +40 -31
- package/build-module/components/dataviews/dataviews.js.map +1 -1
- package/build-module/components/dataviews/field-actions.js +22 -0
- package/build-module/components/dataviews/field-actions.js.map +1 -0
- package/build-module/components/dataviews/filters.js +53 -0
- package/build-module/components/dataviews/filters.js.map +1 -0
- package/build-module/components/dataviews/in-filter.js +43 -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/pagination.js +74 -28
- package/build-module/components/dataviews/pagination.js.map +1 -1
- package/build-module/components/dataviews/text-filter.js +19 -13
- package/build-module/components/dataviews/text-filter.js.map +1 -1
- 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 +1 -2
- 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/index.js +156 -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-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 +50 -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 +42 -9
- package/build-style/style.css +42 -9
- package/package.json +40 -40
- package/src/components/actions/trash-post.js +55 -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/create-template-part-modal/index.js +9 -5
- package/src/components/dataviews/README.md +107 -0
- package/src/components/dataviews/dataviews.js +44 -33
- package/src/components/dataviews/field-actions.js +28 -0
- package/src/components/dataviews/filters.js +57 -0
- package/src/components/dataviews/in-filter.js +47 -0
- package/src/components/dataviews/index.js +0 -1
- package/src/components/dataviews/pagination.js +71 -29
- package/src/components/dataviews/style.scss +11 -1
- package/src/components/dataviews/text-filter.js +19 -15
- package/src/components/dataviews/view-actions.js +108 -63
- package/src/components/dataviews/view-grid.js +60 -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 +18 -10
- package/src/components/global-styles/screen-block.js +1 -2
- 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/index.js +156 -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-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 +41 -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-module/components/dataviews/list-view.js +0 -80
- package/build-module/components/dataviews/list-view.js.map +0 -1
- package/src/components/dataviews/list-view.js +0 -106
|
@@ -6,17 +6,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = PagePages;
|
|
8
8
|
var _react = require("react");
|
|
9
|
-
var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
|
|
10
|
-
var _url = require("@wordpress/url");
|
|
11
9
|
var _components = require("@wordpress/components");
|
|
12
10
|
var _i18n = require("@wordpress/i18n");
|
|
13
11
|
var _coreData = require("@wordpress/core-data");
|
|
14
12
|
var _htmlEntities = require("@wordpress/html-entities");
|
|
15
13
|
var _element = require("@wordpress/element");
|
|
14
|
+
var _date = require("@wordpress/date");
|
|
16
15
|
var _page = _interopRequireDefault(require("../page"));
|
|
17
16
|
var _link = _interopRequireDefault(require("../routes/link"));
|
|
18
|
-
var _pageActions = _interopRequireDefault(require("../page-actions"));
|
|
19
17
|
var _dataviews = require("../dataviews");
|
|
18
|
+
var _trashPost = _interopRequireDefault(require("../actions/trash-post"));
|
|
19
|
+
var _media = _interopRequireDefault(require("../media"));
|
|
20
20
|
/**
|
|
21
21
|
* WordPress dependencies
|
|
22
22
|
*/
|
|
@@ -26,73 +26,87 @@ var _dataviews = require("../dataviews");
|
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
28
|
const EMPTY_ARRAY = [];
|
|
29
|
+
const EMPTY_OBJECT = {};
|
|
30
|
+
const defaultConfigPerViewType = {
|
|
31
|
+
list: {},
|
|
32
|
+
grid: {
|
|
33
|
+
mediaField: 'featured-image'
|
|
34
|
+
}
|
|
35
|
+
};
|
|
29
36
|
function PagePages() {
|
|
30
|
-
const [
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
const [view, setView] = (0, _element.useState)({
|
|
38
|
+
type: 'list',
|
|
39
|
+
filters: {
|
|
40
|
+
search: '',
|
|
41
|
+
status: 'publish, draft'
|
|
42
|
+
},
|
|
43
|
+
page: 1,
|
|
44
|
+
perPage: 5,
|
|
45
|
+
sort: {
|
|
46
|
+
field: 'date',
|
|
47
|
+
direction: 'desc'
|
|
48
|
+
},
|
|
49
|
+
visibleFilters: ['search', 'author', 'status'],
|
|
50
|
+
// All fields are visible by default, so it's
|
|
51
|
+
// better to keep track of the hidden ones.
|
|
52
|
+
hiddenFields: ['date', 'featured-image'],
|
|
53
|
+
layout: {}
|
|
39
54
|
});
|
|
40
55
|
// Request post statuses to get the proper labels.
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
// TODO: probably memo other objects passed as state(ex:https://tanstack.com/table/v8/docs/examples/react/pagination-controlled).
|
|
49
|
-
const pagination = (0, _element.useMemo)(() => ({
|
|
50
|
-
pageIndex,
|
|
51
|
-
pageSize
|
|
52
|
-
}), [pageIndex, pageSize]);
|
|
53
|
-
const [sorting, setSorting] = (0, _element.useState)([{
|
|
54
|
-
order: 'desc',
|
|
55
|
-
orderby: 'date'
|
|
56
|
-
}]);
|
|
56
|
+
const {
|
|
57
|
+
records: statuses
|
|
58
|
+
} = (0, _coreData.useEntityRecords)('root', 'status');
|
|
59
|
+
const postStatuses = (0, _element.useMemo)(() => statuses === null ? EMPTY_OBJECT : Object.fromEntries(statuses.map(({
|
|
60
|
+
slug,
|
|
61
|
+
name
|
|
62
|
+
}) => [slug, name])), [statuses]);
|
|
57
63
|
const queryArgs = (0, _element.useMemo)(() => ({
|
|
58
|
-
per_page:
|
|
59
|
-
page:
|
|
60
|
-
// tanstack starts from zero.
|
|
64
|
+
per_page: view.perPage,
|
|
65
|
+
page: view.page,
|
|
61
66
|
_embed: 'author',
|
|
62
|
-
order:
|
|
63
|
-
orderby:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}), [globalFilter, sorting[0]?.id, sorting[0]?.desc, pageSize, pageIndex, reset]);
|
|
67
|
+
order: view.sort?.direction,
|
|
68
|
+
orderby: view.sort?.field,
|
|
69
|
+
...view.filters
|
|
70
|
+
}), [view]);
|
|
67
71
|
const {
|
|
68
|
-
records,
|
|
69
|
-
isResolving:
|
|
72
|
+
records: pages,
|
|
73
|
+
isResolving: isLoadingPages,
|
|
74
|
+
totalItems,
|
|
75
|
+
totalPages
|
|
70
76
|
} = (0, _coreData.useEntityRecords)('postType', 'page', queryArgs);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}).then(res => {
|
|
81
|
-
const totalPages = parseInt(res.headers.get('X-WP-TotalPages'));
|
|
82
|
-
const totalItems = parseInt(res.headers.get('X-WP-Total'));
|
|
83
|
-
setPaginationInfo({
|
|
84
|
-
totalPages,
|
|
85
|
-
totalItems
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
// Status should not make extra request if already did..
|
|
89
|
-
}, [globalFilter, pageSize, reset]);
|
|
77
|
+
const {
|
|
78
|
+
records: authors
|
|
79
|
+
} = (0, _coreData.useEntityRecords)('root', 'user', {
|
|
80
|
+
who: 'authors'
|
|
81
|
+
});
|
|
82
|
+
const paginationInfo = (0, _element.useMemo)(() => ({
|
|
83
|
+
totalItems,
|
|
84
|
+
totalPages
|
|
85
|
+
}), [totalItems, totalPages]);
|
|
90
86
|
const fields = (0, _element.useMemo)(() => [{
|
|
87
|
+
id: 'featured-image',
|
|
88
|
+
header: (0, _i18n.__)('Featured Image'),
|
|
89
|
+
getValue: ({
|
|
90
|
+
item
|
|
91
|
+
}) => item.featured_media,
|
|
92
|
+
render: ({
|
|
93
|
+
item,
|
|
94
|
+
view: currentView
|
|
95
|
+
}) => !!item.featured_media ? (0, _react.createElement)(_media.default, {
|
|
96
|
+
className: "edit-site-page-pages__featured-image",
|
|
97
|
+
id: item.featured_media,
|
|
98
|
+
size: currentView.type === 'list' ? ['thumbnail', 'medium', 'large', 'full'] : ['large', 'full', 'medium', 'thumbnail']
|
|
99
|
+
}) : null,
|
|
100
|
+
enableSorting: false
|
|
101
|
+
}, {
|
|
91
102
|
header: (0, _i18n.__)('Title'),
|
|
92
103
|
id: 'title',
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
104
|
+
getValue: ({
|
|
105
|
+
item
|
|
106
|
+
}) => item.title?.rendered || item.slug,
|
|
107
|
+
render: ({
|
|
108
|
+
item
|
|
109
|
+
}) => {
|
|
96
110
|
return (0, _react.createElement)(_components.__experimentalVStack, {
|
|
97
111
|
spacing: 1
|
|
98
112
|
}, (0, _react.createElement)(_components.__experimentalHeading, {
|
|
@@ -100,75 +114,107 @@ function PagePages() {
|
|
|
100
114
|
level: 5
|
|
101
115
|
}, (0, _react.createElement)(_link.default, {
|
|
102
116
|
params: {
|
|
103
|
-
postId:
|
|
104
|
-
postType:
|
|
117
|
+
postId: item.id,
|
|
118
|
+
postType: item.type,
|
|
105
119
|
canvas: 'edit'
|
|
106
120
|
}
|
|
107
|
-
}, (0, _htmlEntities.decodeEntities)(
|
|
121
|
+
}, (0, _htmlEntities.decodeEntities)(item.title?.rendered || item.slug) || (0, _i18n.__)('(no title)'))));
|
|
108
122
|
},
|
|
123
|
+
filters: [{
|
|
124
|
+
id: 'search',
|
|
125
|
+
type: 'search'
|
|
126
|
+
}],
|
|
109
127
|
maxWidth: 400,
|
|
110
128
|
sortingFn: 'alphanumeric',
|
|
111
129
|
enableHiding: false
|
|
112
130
|
}, {
|
|
113
131
|
header: (0, _i18n.__)('Author'),
|
|
114
132
|
id: 'author',
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
133
|
+
getValue: ({
|
|
134
|
+
item
|
|
135
|
+
}) => item._embedded?.author[0]?.name,
|
|
136
|
+
render: ({
|
|
137
|
+
item
|
|
138
|
+
}) => {
|
|
139
|
+
const author = item._embedded?.author[0];
|
|
118
140
|
return (0, _react.createElement)("a", {
|
|
119
141
|
href: `user-edit.php?user_id=${author.id}`
|
|
120
142
|
}, author.name);
|
|
121
|
-
}
|
|
143
|
+
},
|
|
144
|
+
filters: [{
|
|
145
|
+
id: 'author',
|
|
146
|
+
type: 'enumeration'
|
|
147
|
+
}],
|
|
148
|
+
elements: [{
|
|
149
|
+
value: '',
|
|
150
|
+
label: (0, _i18n.__)('All')
|
|
151
|
+
}, ...(authors?.map(({
|
|
152
|
+
id,
|
|
153
|
+
name
|
|
154
|
+
}) => ({
|
|
155
|
+
value: id,
|
|
156
|
+
label: name
|
|
157
|
+
})) || [])]
|
|
122
158
|
}, {
|
|
123
|
-
header: 'Status',
|
|
159
|
+
header: (0, _i18n.__)('Status'),
|
|
124
160
|
id: 'status',
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const page = props.row.original;
|
|
131
|
-
return (0, _react.createElement)(_pageActions.default, {
|
|
132
|
-
postId: page.id,
|
|
133
|
-
onRemove: () => setResetQuery()
|
|
134
|
-
});
|
|
161
|
+
getValue: ({
|
|
162
|
+
item
|
|
163
|
+
}) => {
|
|
164
|
+
var _postStatuses$item$st;
|
|
165
|
+
return (_postStatuses$item$st = postStatuses[item.status]) !== null && _postStatuses$item$st !== void 0 ? _postStatuses$item$st : item.status;
|
|
135
166
|
},
|
|
136
|
-
|
|
137
|
-
|
|
167
|
+
filters: [{
|
|
168
|
+
type: 'enumeration',
|
|
169
|
+
id: 'status'
|
|
170
|
+
}],
|
|
171
|
+
elements: [{
|
|
172
|
+
label: (0, _i18n.__)('All'),
|
|
173
|
+
value: 'publish,draft'
|
|
174
|
+
}, ...(postStatuses && Object.entries(postStatuses).filter(([slug]) => ['publish', 'draft'].includes(slug)).map(([slug, name]) => ({
|
|
175
|
+
value: slug,
|
|
176
|
+
label: name
|
|
177
|
+
})) || [])],
|
|
178
|
+
enableSorting: false
|
|
179
|
+
}, {
|
|
180
|
+
header: (0, _i18n.__)('Date'),
|
|
181
|
+
id: 'date',
|
|
182
|
+
getValue: ({
|
|
183
|
+
item
|
|
184
|
+
}) => item.date,
|
|
185
|
+
render: ({
|
|
186
|
+
item
|
|
187
|
+
}) => {
|
|
188
|
+
const formattedDate = (0, _date.dateI18n)((0, _date.getSettings)().formats.datetimeAbbreviated, (0, _date.getDate)(item.date));
|
|
189
|
+
return (0, _react.createElement)("time", null, formattedDate);
|
|
190
|
+
}
|
|
191
|
+
}], [postStatuses, authors]);
|
|
192
|
+
const trashPostAction = (0, _trashPost.default)();
|
|
193
|
+
const actions = (0, _element.useMemo)(() => [trashPostAction], [trashPostAction]);
|
|
194
|
+
const onChangeView = (0, _element.useCallback)(viewUpdater => {
|
|
195
|
+
let updatedView = typeof viewUpdater === 'function' ? viewUpdater(view) : viewUpdater;
|
|
196
|
+
if (updatedView.type !== view.type) {
|
|
197
|
+
updatedView = {
|
|
198
|
+
...updatedView,
|
|
199
|
+
layout: {
|
|
200
|
+
...defaultConfigPerViewType[updatedView.type]
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
setView(updatedView);
|
|
205
|
+
}, [view]);
|
|
138
206
|
|
|
139
207
|
// TODO: we need to handle properly `data={ data || EMPTY_ARRAY }` for when `isLoading`.
|
|
140
208
|
return (0, _react.createElement)(_page.default, {
|
|
141
209
|
title: (0, _i18n.__)('Pages')
|
|
142
210
|
}, (0, _react.createElement)(_dataviews.DataViews, {
|
|
143
211
|
paginationInfo: paginationInfo,
|
|
144
|
-
data: records || EMPTY_ARRAY,
|
|
145
|
-
isLoading: isLoading,
|
|
146
212
|
fields: fields,
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
state: {
|
|
153
|
-
sorting,
|
|
154
|
-
globalFilter,
|
|
155
|
-
pagination
|
|
156
|
-
},
|
|
157
|
-
pageCount: paginationInfo?.totalPages,
|
|
158
|
-
onSortingChange: setSorting,
|
|
159
|
-
onGlobalFilterChange: value => {
|
|
160
|
-
setGlobalFilter(value);
|
|
161
|
-
setPagination({
|
|
162
|
-
pageIndex: 0,
|
|
163
|
-
pageSize
|
|
164
|
-
});
|
|
165
|
-
},
|
|
166
|
-
// TODO: check these callbacks and maybe reset the query when needed...
|
|
167
|
-
onPaginationChange: setPagination,
|
|
168
|
-
meta: {
|
|
169
|
-
resetQuery: setResetQuery
|
|
170
|
-
}
|
|
171
|
-
}
|
|
213
|
+
actions: actions,
|
|
214
|
+
data: pages || EMPTY_ARRAY,
|
|
215
|
+
isLoading: isLoadingPages,
|
|
216
|
+
view: view,
|
|
217
|
+
onChangeView: onChangeView
|
|
172
218
|
}));
|
|
173
219
|
}
|
|
174
220
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_apiFetch","_interopRequireDefault","require","_url","_components","_i18n","_coreData","_htmlEntities","_element","_page","_link","_pageActions","_dataviews","EMPTY_ARRAY","PagePages","reset","setResetQuery","useState","v","globalFilter","setGlobalFilter","paginationInfo","setPaginationInfo","pageIndex","pageSize","setPagination","PAGE_SIZE_VALUES","postStatuses","setPostStatuses","useEffect","apiFetch","path","then","pagination","useMemo","sorting","setSorting","order","orderby","queryArgs","per_page","page","_embed","desc","id","search","status","records","isResolving","isLoading","useEntityRecords","addQueryArgs","_fields","method","parse","res","totalPages","parseInt","headers","get","totalItems","fields","header","__","accessorFn","title","rendered","slug","cell","props","row","original","_react","createElement","__experimentalVStack","spacing","__experimentalHeading","as","level","default","params","postId","postType","type","canvas","decodeEntities","getValue","maxWidth","sortingFn","enableHiding","_embedded","author","name","href","VisuallyHidden","onRemove","DataViews","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":["_components","require","_i18n","_coreData","_htmlEntities","_element","_date","_page","_interopRequireDefault","_link","_dataviews","_trashPost","_media","EMPTY_ARRAY","EMPTY_OBJECT","defaultConfigPerViewType","list","grid","mediaField","PagePages","view","setView","useState","type","filters","search","status","page","perPage","sort","field","direction","visibleFilters","hiddenFields","layout","records","statuses","useEntityRecords","postStatuses","useMemo","Object","fromEntries","map","slug","name","queryArgs","per_page","_embed","order","orderby","pages","isResolving","isLoadingPages","totalItems","totalPages","authors","who","paginationInfo","fields","id","header","__","getValue","item","featured_media","render","currentView","_react","createElement","default","className","size","enableSorting","title","rendered","__experimentalVStack","spacing","__experimentalHeading","as","level","params","postId","postType","canvas","decodeEntities","maxWidth","sortingFn","enableHiding","_embedded","author","href","elements","value","label","_postStatuses$item$st","entries","filter","includes","date","formattedDate","dateI18n","getSettings","formats","datetimeAbbreviated","getDate","trashPostAction","useTrashPostAction","actions","onChangeView","useCallback","viewUpdater","updatedView","DataViews","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 } from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Link from '../routes/link';\nimport { DataViews } from '../dataviews';\nimport useTrashPostAction from '../actions/trash-post';\nimport Media from '../media';\n\nconst EMPTY_ARRAY = [];\nconst EMPTY_OBJECT = {};\nconst defaultConfigPerViewType = {\n\tlist: {},\n\tgrid: {\n\t\tmediaField: 'featured-image',\n\t},\n};\n\nexport default function PagePages() {\n\tconst [ view, setView ] = useState( {\n\t\ttype: 'list',\n\t\tfilters: {\n\t\t\tsearch: '',\n\t\t\tstatus: 'publish, draft',\n\t\t},\n\t\tpage: 1,\n\t\tperPage: 5,\n\t\tsort: {\n\t\t\tfield: 'date',\n\t\t\tdirection: 'desc',\n\t\t},\n\t\tvisibleFilters: [ 'search', 'author', 'status' ],\n\t\t// All fields are visible by default, so it's\n\t\t// better to keep track of the hidden ones.\n\t\thiddenFields: [ 'date', 'featured-image' ],\n\t\tlayout: {},\n\t} );\n\t// Request post statuses to get the proper labels.\n\tconst { records: statuses } = useEntityRecords( 'root', 'status' );\n\tconst postStatuses = useMemo(\n\t\t() =>\n\t\t\tstatuses === null\n\t\t\t\t? EMPTY_OBJECT\n\t\t\t\t: Object.fromEntries(\n\t\t\t\t\t\tstatuses.map( ( { slug, name } ) => [ slug, name ] )\n\t\t\t\t ),\n\t\t[ statuses ]\n\t);\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\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\t\twho: 'authors',\n\t} );\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\tfilters: [ { id: 'search', type: 'search' } ],\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: [ { id: 'author', type: 'enumeration' } ],\n\t\t\t\telements: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\tlabel: __( 'All' ),\n\t\t\t\t\t},\n\t\t\t\t\t...( authors?.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\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\tpostStatuses[ item.status ] ?? item.status,\n\t\t\t\tfilters: [ { type: 'enumeration', id: 'status' } ],\n\t\t\t\telements: [\n\t\t\t\t\t{ label: __( 'All' ), value: 'publish,draft' },\n\t\t\t\t\t...( ( postStatuses &&\n\t\t\t\t\t\tObject.entries( postStatuses )\n\t\t\t\t\t\t\t.filter( ( [ slug ] ) =>\n\t\t\t\t\t\t\t\t[ 'publish', 'draft' ].includes( slug )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.map( ( [ slug, name ] ) => ( {\n\t\t\t\t\t\t\t\tvalue: slug,\n\t\t\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t\t\t} ) ) ) ||\n\t\t\t\t\t\t[] ),\n\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[ postStatuses, authors ]\n\t);\n\n\tconst trashPostAction = useTrashPostAction();\n\tconst actions = useMemo( () => [ trashPostAction ], [ trashPostAction ] );\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 ]\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,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = DeleteCategoryMenuItem;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _components = require("@wordpress/components");
|
|
9
|
+
var _coreData = require("@wordpress/core-data");
|
|
10
|
+
var _data = require("@wordpress/data");
|
|
11
|
+
var _element = require("@wordpress/element");
|
|
12
|
+
var _htmlEntities = require("@wordpress/html-entities");
|
|
13
|
+
var _i18n = require("@wordpress/i18n");
|
|
14
|
+
var _notices = require("@wordpress/notices");
|
|
15
|
+
var _router = require("@wordpress/router");
|
|
16
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
17
|
+
var _constants = require("../../utils/constants");
|
|
18
|
+
/**
|
|
19
|
+
* WordPress dependencies
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Internal dependencies
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
const {
|
|
27
|
+
useHistory
|
|
28
|
+
} = (0, _lockUnlock.unlock)(_router.privateApis);
|
|
29
|
+
function DeleteCategoryMenuItem({
|
|
30
|
+
category,
|
|
31
|
+
onClose
|
|
32
|
+
}) {
|
|
33
|
+
const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
|
|
34
|
+
const history = useHistory();
|
|
35
|
+
const {
|
|
36
|
+
createSuccessNotice,
|
|
37
|
+
createErrorNotice
|
|
38
|
+
} = (0, _data.useDispatch)(_notices.store);
|
|
39
|
+
const {
|
|
40
|
+
deleteEntityRecord,
|
|
41
|
+
invalidateResolution
|
|
42
|
+
} = (0, _data.useDispatch)(_coreData.store);
|
|
43
|
+
const onDelete = async () => {
|
|
44
|
+
try {
|
|
45
|
+
await deleteEntityRecord('taxonomy', 'wp_pattern_category', category.id, {
|
|
46
|
+
force: true
|
|
47
|
+
}, {
|
|
48
|
+
throwOnError: true
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// Prevent the need to refresh the page to get up-to-date categories
|
|
52
|
+
// and pattern categorization.
|
|
53
|
+
invalidateResolution('getUserPatternCategories');
|
|
54
|
+
invalidateResolution('getEntityRecords', ['postType', _constants.PATTERN_TYPES.user, {
|
|
55
|
+
per_page: -1
|
|
56
|
+
}]);
|
|
57
|
+
createSuccessNotice((0, _i18n.sprintf)( /* translators: The pattern category's name */
|
|
58
|
+
(0, _i18n.__)('"%s" deleted.'), category.label), {
|
|
59
|
+
type: 'snackbar',
|
|
60
|
+
id: 'pattern-category-delete'
|
|
61
|
+
});
|
|
62
|
+
onClose?.();
|
|
63
|
+
history.push({
|
|
64
|
+
path: `/patterns`,
|
|
65
|
+
categoryType: _constants.PATTERN_TYPES.theme,
|
|
66
|
+
categoryId: _constants.PATTERN_DEFAULT_CATEGORY
|
|
67
|
+
});
|
|
68
|
+
} catch (error) {
|
|
69
|
+
const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while deleting the pattern category.');
|
|
70
|
+
createErrorNotice(errorMessage, {
|
|
71
|
+
type: 'snackbar',
|
|
72
|
+
id: 'pattern-category-delete'
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.MenuItem, {
|
|
77
|
+
isDestructive: true,
|
|
78
|
+
onClick: () => setIsModalOpen(true)
|
|
79
|
+
}, (0, _i18n.__)('Delete')), (0, _react.createElement)(_components.__experimentalConfirmDialog, {
|
|
80
|
+
isOpen: isModalOpen,
|
|
81
|
+
onConfirm: onDelete,
|
|
82
|
+
onCancel: () => setIsModalOpen(false),
|
|
83
|
+
confirmButtonText: (0, _i18n.__)('Delete'),
|
|
84
|
+
className: "edit-site-patterns__delete-modal"
|
|
85
|
+
}, (0, _i18n.sprintf)(
|
|
86
|
+
// translators: %s: The pattern category's name.
|
|
87
|
+
(0, _i18n.__)('Are you sure you want to delete the category "%s"? The patterns will not be deleted.'), (0, _htmlEntities.decodeEntities)(category.label))));
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=delete-category-menu-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_components","require","_coreData","_data","_element","_htmlEntities","_i18n","_notices","_router","_lockUnlock","_constants","useHistory","unlock","routerPrivateApis","DeleteCategoryMenuItem","category","onClose","isModalOpen","setIsModalOpen","useState","history","createSuccessNotice","createErrorNotice","useDispatch","noticesStore","deleteEntityRecord","invalidateResolution","coreStore","onDelete","id","force","throwOnError","PATTERN_TYPES","user","per_page","sprintf","__","label","type","push","path","categoryType","theme","categoryId","PATTERN_DEFAULT_CATEGORY","error","errorMessage","message","code","_react","createElement","Fragment","MenuItem","isDestructive","onClick","__experimentalConfirmDialog","isOpen","onConfirm","onCancel","confirmButtonText","className","decodeEntities"],"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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"}
|