@wordpress/block-library 7.1.1 → 7.2.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 +11 -0
- package/build/avatar/edit.js +205 -0
- package/build/avatar/edit.js.map +1 -0
- package/build/avatar/hooks.js +111 -0
- package/build/avatar/hooks.js.map +1 -0
- package/build/avatar/index.js +83 -0
- package/build/avatar/index.js.map +1 -0
- package/build/avatar/user-control.js +63 -0
- package/build/avatar/user-control.js.map +1 -0
- package/build/column/index.js +2 -1
- package/build/column/index.js.map +1 -1
- package/build/comment-author-avatar/index.js +1 -0
- package/build/comment-author-avatar/index.js.map +1 -1
- package/build/comment-date/edit.js +10 -25
- package/build/comment-date/edit.js.map +1 -1
- package/build/comment-template/edit.js +79 -52
- package/build/comment-template/edit.js.map +1 -1
- package/build/cover/edit.js +23 -33
- package/build/cover/edit.js.map +1 -1
- package/build/embed/variations.js +2 -2
- package/build/embed/variations.js.map +1 -1
- package/build/gallery/edit.js +18 -5
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.js +1 -1
- package/build/gallery/gallery.js.map +1 -1
- package/build/gallery/gap-styles.js +29 -0
- package/build/gallery/gap-styles.js.map +1 -0
- package/build/gallery/index.js +17 -1
- package/build/gallery/index.js.map +1 -1
- package/build/group/index.js +3 -1
- package/build/group/index.js.map +1 -1
- package/build/group/variations.js +1 -2
- package/build/group/variations.js.map +1 -1
- package/build/image/image.js +3 -1
- package/build/image/image.js.map +1 -1
- package/build/index.js +8 -2
- package/build/index.js.map +1 -1
- package/build/list/index.js +5 -7
- package/build/list/index.js.map +1 -1
- package/build/list/v2/edit.js +85 -0
- package/build/list/v2/edit.js.map +1 -0
- package/build/list/v2/index.js +33 -0
- package/build/list/v2/index.js.map +1 -0
- package/build/list/v2/save.js +34 -0
- package/build/list/v2/save.js.map +1 -0
- package/build/list/v2/transforms.js +121 -0
- package/build/list/v2/transforms.js.map +1 -0
- package/build/list-item/edit.js +47 -0
- package/build/list-item/edit.js.map +1 -0
- package/build/list-item/index.js +67 -0
- package/build/list-item/index.js.map +1 -0
- package/build/list-item/save.js +23 -0
- package/build/list-item/save.js.map +1 -0
- package/build/media-text/edit.js +3 -1
- package/build/media-text/edit.js.map +1 -1
- package/build/navigation/use-navigation-entities.js +26 -54
- package/build/navigation/use-navigation-entities.js.map +1 -1
- package/build/navigation-link/edit.js +88 -34
- package/build/navigation-link/edit.js.map +1 -1
- package/build/post-date/edit.js +31 -37
- package/build/post-date/edit.js.map +1 -1
- package/build/post-featured-image/edit.js +2 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/pullquote/edit.js +5 -3
- package/build/pullquote/edit.js.map +1 -1
- package/build/query/variations.js +4 -4
- package/build/query/variations.js.map +1 -1
- package/build/query-no-results/edit.js +28 -0
- package/build/query-no-results/edit.js.map +1 -0
- package/build/query-no-results/index.js +54 -0
- package/build/query-no-results/index.js.map +1 -0
- package/build/query-no-results/save.js +18 -0
- package/build/query-no-results/save.js.map +1 -0
- package/build/search/edit.js +2 -3
- package/build/search/edit.js.map +1 -1
- package/build/separator/deprecated.js +83 -0
- package/build/separator/deprecated.js.map +1 -0
- package/build/separator/edit.js +31 -23
- package/build/separator/edit.js.map +1 -1
- package/build/separator/index.js +17 -7
- package/build/separator/index.js.map +1 -1
- package/build/separator/save.js +18 -13
- package/build/separator/save.js.map +1 -1
- package/build/separator/use-deprecated-opacity.js +39 -0
- package/build/separator/use-deprecated-opacity.js.map +1 -0
- package/build/social-links/edit.js +14 -3
- package/build/social-links/edit.js.map +1 -1
- package/build/social-links/index.js +1 -1
- package/build/spacer/controls.js +6 -16
- package/build/spacer/controls.js.map +1 -1
- package/build/spacer/controls.native.js +3 -1
- package/build/spacer/controls.native.js.map +1 -1
- package/build/spacer/edit.js +4 -5
- package/build/spacer/edit.js.map +1 -1
- package/build/table/deprecated.js +1 -1
- package/build/table/deprecated.js.map +1 -1
- package/build/tag-cloud/edit.js +58 -2
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/tag-cloud/index.js +8 -0
- package/build/tag-cloud/index.js.map +1 -1
- package/build-module/avatar/edit.js +190 -0
- package/build-module/avatar/edit.js.map +1 -0
- package/build-module/avatar/hooks.js +99 -0
- package/build-module/avatar/hooks.js.map +1 -0
- package/build-module/avatar/index.js +70 -0
- package/build-module/avatar/index.js.map +1 -0
- package/build-module/avatar/user-control.js +52 -0
- package/build-module/avatar/user-control.js.map +1 -0
- package/build-module/column/index.js +2 -1
- package/build-module/column/index.js.map +1 -1
- package/build-module/comment-author-avatar/index.js +1 -0
- package/build-module/comment-author-avatar/index.js.map +1 -1
- package/build-module/comment-date/edit.js +13 -30
- package/build-module/comment-date/edit.js.map +1 -1
- package/build-module/comment-template/edit.js +79 -52
- package/build-module/comment-template/edit.js.map +1 -1
- package/build-module/cover/edit.js +23 -34
- package/build-module/cover/edit.js.map +1 -1
- package/build-module/embed/variations.js +2 -2
- package/build-module/embed/variations.js.map +1 -1
- package/build-module/gallery/edit.js +17 -5
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.js +1 -1
- package/build-module/gallery/gallery.js.map +1 -1
- package/build-module/gallery/gap-styles.js +22 -0
- package/build-module/gallery/gap-styles.js.map +1 -0
- package/build-module/gallery/index.js +17 -1
- package/build-module/gallery/index.js.map +1 -1
- package/build-module/group/index.js +3 -1
- package/build-module/group/index.js.map +1 -1
- package/build-module/group/variations.js +1 -2
- package/build-module/group/variations.js.map +1 -1
- package/build-module/image/image.js +3 -1
- package/build-module/image/image.js.map +1 -1
- package/build-module/index.js +5 -2
- package/build-module/index.js.map +1 -1
- package/build-module/list/index.js +5 -1
- package/build-module/list/index.js.map +1 -1
- package/build-module/list/v2/edit.js +69 -0
- package/build-module/list/v2/edit.js.map +1 -0
- package/build-module/list/v2/index.js +19 -0
- package/build-module/list/v2/index.js.map +1 -0
- package/build-module/list/v2/save.js +23 -0
- package/build-module/list/v2/save.js.map +1 -0
- package/build-module/list/v2/transforms.js +111 -0
- package/build-module/list/v2/transforms.js.map +1 -0
- package/build-module/list-item/edit.js +37 -0
- package/build-module/list-item/edit.js.map +1 -0
- package/build-module/list-item/index.js +53 -0
- package/build-module/list-item/index.js.map +1 -0
- package/build-module/list-item/save.js +15 -0
- package/build-module/list-item/save.js.map +1 -0
- package/build-module/media-text/edit.js +3 -1
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/navigation/use-navigation-entities.js +27 -54
- package/build-module/navigation/use-navigation-entities.js.map +1 -1
- package/build-module/navigation-link/edit.js +88 -33
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/post-date/edit.js +32 -43
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-featured-image/edit.js +2 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/pullquote/edit.js +6 -3
- package/build-module/pullquote/edit.js.map +1 -1
- package/build-module/query/variations.js +4 -4
- package/build-module/query/variations.js.map +1 -1
- package/build-module/query-no-results/edit.js +18 -0
- package/build-module/query-no-results/edit.js.map +1 -0
- package/build-module/query-no-results/index.js +40 -0
- package/build-module/query-no-results/index.js.map +1 -0
- package/build-module/query-no-results/save.js +10 -0
- package/build-module/query-no-results/save.js.map +1 -0
- package/build-module/search/edit.js +2 -3
- package/build-module/search/edit.js.map +1 -1
- package/build-module/separator/deprecated.js +70 -0
- package/build-module/separator/deprecated.js.map +1 -0
- package/build-module/separator/edit.js +31 -22
- package/build-module/separator/edit.js.map +1 -1
- package/build-module/separator/index.js +16 -7
- package/build-module/separator/index.js.map +1 -1
- package/build-module/separator/save.js +19 -14
- package/build-module/separator/save.js.map +1 -1
- package/build-module/separator/use-deprecated-opacity.js +30 -0
- package/build-module/separator/use-deprecated-opacity.js.map +1 -0
- package/build-module/social-links/edit.js +15 -4
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/social-links/index.js +1 -1
- package/build-module/spacer/controls.js +8 -19
- package/build-module/spacer/controls.js.map +1 -1
- package/build-module/spacer/controls.native.js +2 -1
- package/build-module/spacer/controls.native.js.map +1 -1
- package/build-module/spacer/edit.js +3 -3
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/table/deprecated.js +1 -1
- package/build-module/table/deprecated.js.map +1 -1
- package/build-module/tag-cloud/edit.js +60 -4
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/tag-cloud/index.js +8 -0
- package/build-module/tag-cloud/index.js.map +1 -1
- package/build-style/avatar/editor-rtl.css +79 -0
- package/build-style/avatar/editor.css +79 -0
- package/build-style/editor-rtl.css +23 -2
- package/build-style/editor.css +23 -2
- package/build-style/gallery/editor-rtl.css +0 -1
- package/build-style/gallery/editor.css +0 -1
- package/build-style/gallery/style-rtl.css +102 -169
- package/build-style/gallery/style.css +102 -169
- package/build-style/image/style-rtl.css +2 -0
- package/build-style/image/style.css +2 -0
- package/build-style/navigation-link/editor-rtl.css +13 -0
- package/build-style/navigation-link/editor.css +13 -0
- package/build-style/pullquote/style-rtl.css +0 -4
- package/build-style/pullquote/style.css +0 -4
- package/build-style/separator/editor-rtl.css +3 -0
- package/build-style/separator/editor.css +3 -0
- package/build-style/separator/theme-rtl.css +7 -1
- package/build-style/separator/theme.css +7 -1
- package/build-style/site-logo/editor-rtl.css +3 -1
- package/build-style/site-logo/editor.css +3 -1
- package/build-style/style-rtl.css +104 -173
- package/build-style/style.css +104 -173
- package/build-style/theme-rtl.css +7 -1
- package/build-style/theme.css +7 -1
- package/package.json +28 -28
- package/src/avatar/block.json +53 -0
- package/src/avatar/edit.js +222 -0
- package/src/avatar/editor.scss +3 -0
- package/src/avatar/hooks.js +96 -0
- package/src/avatar/index.js +18 -0
- package/src/avatar/index.php +146 -0
- package/src/avatar/user-control.js +56 -0
- package/src/column/block.json +2 -1
- package/src/comment-author-avatar/block.json +1 -0
- package/src/comment-date/edit.js +20 -30
- package/src/comment-template/edit.js +65 -44
- package/src/cover/edit.js +26 -31
- package/src/editor.scss +1 -0
- package/src/embed/variations.js +2 -2
- package/src/gallery/block.json +17 -1
- package/src/gallery/deprecated.scss +2 -2
- package/src/gallery/edit.js +15 -8
- package/src/gallery/editor.scss +0 -1
- package/src/gallery/gallery.js +8 -7
- package/src/gallery/gap-styles.js +21 -0
- package/src/gallery/index.php +42 -1
- package/src/gallery/style.scss +11 -44
- package/src/group/block.json +3 -1
- package/src/group/variations.js +1 -1
- package/src/image/image.js +4 -1
- package/src/image/style.scss +3 -0
- package/src/index.js +6 -1
- package/src/list/index.js +6 -1
- package/src/list/v2/edit.js +77 -0
- package/src/list/v2/index.js +20 -0
- package/src/list/v2/save.js +18 -0
- package/src/list/v2/transforms.js +116 -0
- package/src/list-item/block.json +26 -0
- package/src/list-item/edit.js +47 -0
- package/src/list-item/index.js +27 -0
- package/src/list-item/save.js +13 -0
- package/src/media-text/edit.js +1 -1
- package/src/navigation/index.php +22 -2
- package/src/navigation/use-navigation-entities.js +37 -73
- package/src/navigation-link/edit.js +145 -61
- package/src/navigation-link/editor.scss +11 -0
- package/src/post-date/edit.js +63 -52
- package/src/post-date/index.php +1 -1
- package/src/post-date/test/edit.js +17 -0
- package/src/post-featured-image/edit.js +9 -1
- package/src/post-featured-image/index.php +2 -1
- package/src/pullquote/edit.js +4 -3
- package/src/pullquote/style.scss +0 -5
- package/src/query/variations.js +4 -0
- package/src/query-no-results/block.json +20 -0
- package/src/query-no-results/edit.js +28 -0
- package/src/query-no-results/index.js +20 -0
- package/src/query-no-results/index.php +59 -0
- package/src/query-no-results/save.js +8 -0
- package/src/search/edit.js +1 -2
- package/src/separator/block.json +13 -6
- package/src/separator/deprecated.js +57 -0
- package/src/separator/deprecated.scss +6 -0
- package/src/separator/edit.js +36 -14
- package/src/separator/editor.scss +6 -0
- package/src/separator/index.js +2 -0
- package/src/separator/save.js +22 -14
- package/src/separator/test/edit.js +113 -0
- package/src/separator/theme.scss +7 -1
- package/src/separator/use-deprecated-opacity.js +41 -0
- package/src/site-logo/editor.scss +3 -1
- package/src/social-links/block.json +1 -1
- package/src/social-links/edit.js +15 -5
- package/src/spacer/controls.js +12 -18
- package/src/spacer/controls.native.js +2 -1
- package/src/spacer/edit.js +3 -6
- package/src/table/deprecated.js +5 -1
- package/src/tag-cloud/block.json +8 -0
- package/src/tag-cloud/edit.js +82 -2
- package/src/tag-cloud/index.php +6 -0
- package/build/separator/separator-settings.js +0 -36
- package/build/separator/separator-settings.js.map +0 -1
- package/build-module/separator/separator-settings.js +0 -27
- package/build-module/separator/separator-settings.js.map +0 -1
- package/src/separator/separator-settings.js +0 -24
|
@@ -30,10 +30,14 @@ var _hooks = require("./hooks");
|
|
|
30
30
|
/**
|
|
31
31
|
* Internal dependencies
|
|
32
32
|
*/
|
|
33
|
-
const TEMPLATE = [['core/
|
|
33
|
+
const TEMPLATE = [['core/avatar'], ['core/comment-author-name'], ['core/comment-date'], ['core/comment-content'], ['core/comment-reply-link'], ['core/comment-edit-link']];
|
|
34
34
|
/**
|
|
35
35
|
* Function that returns a comment structure that will be rendered with default placehoders.
|
|
36
36
|
*
|
|
37
|
+
* Each comment has a `commentId` property that is always a negative number in
|
|
38
|
+
* case of the placeholders. This is to ensure that the comment does not
|
|
39
|
+
* conflict with the actual (real) comments.
|
|
40
|
+
*
|
|
37
41
|
* @param {Object} settings Discussion Settings.
|
|
38
42
|
* @param {number} [settings.perPage] - Comments per page setting or block attribute.
|
|
39
43
|
* @param {boolean} [settings.threadComments] - Enable threaded (nested) comments setting.
|
|
@@ -58,15 +62,16 @@ const getCommentsPlaceholder = _ref => {
|
|
|
58
62
|
|
|
59
63
|
if (!threadComments || defaultCommentsToShow === 1) {
|
|
60
64
|
// If displaying threaded comments is disabled, we only show one comment
|
|
65
|
+
// A commentId is negative in order to avoid conflicts with the actual comments.
|
|
61
66
|
return [{
|
|
62
|
-
commentId:
|
|
67
|
+
commentId: -1,
|
|
63
68
|
children: []
|
|
64
69
|
}];
|
|
65
70
|
} else if (defaultCommentsToShow === 2) {
|
|
66
71
|
return [{
|
|
67
|
-
commentId:
|
|
72
|
+
commentId: -1,
|
|
68
73
|
children: [{
|
|
69
|
-
commentId:
|
|
74
|
+
commentId: -2,
|
|
70
75
|
children: []
|
|
71
76
|
}]
|
|
72
77
|
}];
|
|
@@ -74,11 +79,11 @@ const getCommentsPlaceholder = _ref => {
|
|
|
74
79
|
|
|
75
80
|
|
|
76
81
|
return [{
|
|
77
|
-
commentId:
|
|
82
|
+
commentId: -1,
|
|
78
83
|
children: [{
|
|
79
|
-
commentId:
|
|
84
|
+
commentId: -2,
|
|
80
85
|
children: [{
|
|
81
|
-
commentId:
|
|
86
|
+
commentId: -3,
|
|
82
87
|
children: []
|
|
83
88
|
}]
|
|
84
89
|
}]
|
|
@@ -87,13 +92,13 @@ const getCommentsPlaceholder = _ref => {
|
|
|
87
92
|
/**
|
|
88
93
|
* Component which renders the inner blocks of the Comment Template.
|
|
89
94
|
*
|
|
90
|
-
* @param {Object} props
|
|
91
|
-
* @param {Array} [props.comment]
|
|
92
|
-
* @param {Array} [props.
|
|
93
|
-
* @param {Array} [props.
|
|
94
|
-
* @param {Array} [props.
|
|
95
|
-
* @param {Array} [props.blocks]
|
|
96
|
-
*
|
|
95
|
+
* @param {Object} props Component props.
|
|
96
|
+
* @param {Array} [props.comment] - A comment object.
|
|
97
|
+
* @param {Array} [props.activeCommentId] - The ID of the comment that is currently active.
|
|
98
|
+
* @param {Array} [props.setActiveCommentId] - The setter for activeCommentId.
|
|
99
|
+
* @param {Array} [props.firstCommentId] - ID of the first comment in the array.
|
|
100
|
+
* @param {Array} [props.blocks] - Array of blocks returned from
|
|
101
|
+
* getBlocks() in parent .
|
|
97
102
|
* @return {WPElement} Inner blocks of the Comment Template
|
|
98
103
|
*/
|
|
99
104
|
|
|
@@ -103,9 +108,9 @@ function CommentTemplateInnerBlocks(_ref2) {
|
|
|
103
108
|
|
|
104
109
|
let {
|
|
105
110
|
comment,
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
111
|
+
activeCommentId,
|
|
112
|
+
setActiveCommentId,
|
|
113
|
+
firstCommentId,
|
|
109
114
|
blocks
|
|
110
115
|
} = _ref2;
|
|
111
116
|
const {
|
|
@@ -114,24 +119,25 @@ function CommentTemplateInnerBlocks(_ref2) {
|
|
|
114
119
|
} = (0, _blockEditor.useInnerBlocksProps)({}, {
|
|
115
120
|
template: TEMPLATE
|
|
116
121
|
});
|
|
117
|
-
return (0, _element.createElement)("li", innerBlocksProps, comment === (
|
|
122
|
+
return (0, _element.createElement)("li", innerBlocksProps, comment.commentId === (activeCommentId || firstCommentId) ? children : null, (0, _element.createElement)(MemoizedCommentTemplatePreview, {
|
|
118
123
|
blocks: blocks,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
isHidden: comment === (
|
|
124
|
+
commentId: comment.commentId,
|
|
125
|
+
setActiveCommentId: setActiveCommentId,
|
|
126
|
+
isHidden: comment.commentId === (activeCommentId || firstCommentId)
|
|
122
127
|
}), (comment === null || comment === void 0 ? void 0 : (_comment$children = comment.children) === null || _comment$children === void 0 ? void 0 : _comment$children.length) > 0 ? (0, _element.createElement)(CommentsList, {
|
|
123
128
|
comments: comment.children,
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
blocks: blocks
|
|
129
|
+
activeCommentId: activeCommentId,
|
|
130
|
+
setActiveCommentId: setActiveCommentId,
|
|
131
|
+
blocks: blocks,
|
|
132
|
+
firstCommentId: firstCommentId
|
|
127
133
|
}) : null);
|
|
128
134
|
}
|
|
129
135
|
|
|
130
136
|
const CommentTemplatePreview = _ref3 => {
|
|
131
137
|
let {
|
|
132
138
|
blocks,
|
|
133
|
-
|
|
134
|
-
|
|
139
|
+
commentId,
|
|
140
|
+
setActiveCommentId,
|
|
135
141
|
isHidden
|
|
136
142
|
} = _ref3;
|
|
137
143
|
const blockPreviewProps = (0, _blockEditor.__experimentalUseBlockPreview)({
|
|
@@ -139,7 +145,7 @@ const CommentTemplatePreview = _ref3 => {
|
|
|
139
145
|
});
|
|
140
146
|
|
|
141
147
|
const handleOnClick = () => {
|
|
142
|
-
|
|
148
|
+
setActiveCommentId(commentId);
|
|
143
149
|
}; // We have to hide the preview block if the `comment` props points to
|
|
144
150
|
// the curently active block!
|
|
145
151
|
// Or, to put it differently, every preview block is visible unless it is the
|
|
@@ -163,13 +169,14 @@ const MemoizedCommentTemplatePreview = (0, _element.memo)(CommentTemplatePreview
|
|
|
163
169
|
/**
|
|
164
170
|
* Component that renders a list of (nested) comments. It is called recursively.
|
|
165
171
|
*
|
|
166
|
-
* @param {Object} props
|
|
167
|
-
* @param {Array} [props.comments]
|
|
168
|
-
* @param {Array} [props.blockProps]
|
|
169
|
-
* @param {Array} [props.
|
|
170
|
-
* @param {Array} [props.
|
|
171
|
-
* @param {Array} [props.blocks]
|
|
172
|
-
*
|
|
172
|
+
* @param {Object} props Component props.
|
|
173
|
+
* @param {Array} [props.comments] - Array of comment objects.
|
|
174
|
+
* @param {Array} [props.blockProps] - Props from parent's `useBlockProps()`.
|
|
175
|
+
* @param {Array} [props.activeCommentId] - The ID of the comment that is currently active.
|
|
176
|
+
* @param {Array} [props.setActiveCommentId] - The setter for activeCommentId.
|
|
177
|
+
* @param {Array} [props.blocks] - Array of blocks returned from getBlocks() in parent.
|
|
178
|
+
* @param {Object} [props.firstCommentId] - The ID of the first comment in the array of
|
|
179
|
+
* comment objects.
|
|
173
180
|
* @return {WPElement} List of comments.
|
|
174
181
|
*/
|
|
175
182
|
|
|
@@ -177,23 +184,42 @@ const CommentsList = _ref4 => {
|
|
|
177
184
|
let {
|
|
178
185
|
comments,
|
|
179
186
|
blockProps,
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
blocks
|
|
187
|
+
activeCommentId,
|
|
188
|
+
setActiveCommentId,
|
|
189
|
+
blocks,
|
|
190
|
+
firstCommentId
|
|
183
191
|
} = _ref4;
|
|
184
|
-
return (0, _element.createElement)("ol", blockProps, comments && comments.map((
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
192
|
+
return (0, _element.createElement)("ol", blockProps, comments && comments.map((_ref5, index) => {
|
|
193
|
+
let {
|
|
194
|
+
commentId,
|
|
195
|
+
...comment
|
|
196
|
+
} = _ref5;
|
|
197
|
+
return (0, _element.createElement)(_blockEditor.BlockContextProvider, {
|
|
198
|
+
key: comment.commentId || index,
|
|
199
|
+
value: {
|
|
200
|
+
// If the commentId is negative it means that this comment is a
|
|
201
|
+
// "placeholder" and that the block is most likely being used in the
|
|
202
|
+
// site editor. In this case, we have to set the commentId to `null`
|
|
203
|
+
// because otherwise the (non-existent) comment with a negative ID
|
|
204
|
+
// would be reqested from the REST API.
|
|
205
|
+
commentId: commentId < 0 ? null : commentId
|
|
206
|
+
}
|
|
207
|
+
}, (0, _element.createElement)(CommentTemplateInnerBlocks, {
|
|
208
|
+
comment: {
|
|
209
|
+
commentId,
|
|
210
|
+
...comment
|
|
211
|
+
},
|
|
212
|
+
activeCommentId: activeCommentId,
|
|
213
|
+
setActiveCommentId: setActiveCommentId,
|
|
214
|
+
blocks: blocks,
|
|
215
|
+
firstCommentId: firstCommentId
|
|
216
|
+
}));
|
|
217
|
+
}));
|
|
194
218
|
};
|
|
195
219
|
|
|
196
|
-
function CommentTemplateEdit(
|
|
220
|
+
function CommentTemplateEdit(_ref6) {
|
|
221
|
+
var _commentTree$;
|
|
222
|
+
|
|
197
223
|
let {
|
|
198
224
|
clientId,
|
|
199
225
|
context: {
|
|
@@ -203,9 +229,9 @@ function CommentTemplateEdit(_ref5) {
|
|
|
203
229
|
'comments/defaultPage': defaultPage,
|
|
204
230
|
'comments/inherit': inherit
|
|
205
231
|
}
|
|
206
|
-
} =
|
|
232
|
+
} = _ref6;
|
|
207
233
|
const blockProps = (0, _blockEditor.useBlockProps)();
|
|
208
|
-
const [
|
|
234
|
+
const [activeCommentId, setActiveCommentId] = (0, _element.useState)();
|
|
209
235
|
const {
|
|
210
236
|
commentOrder,
|
|
211
237
|
threadCommentsDepth,
|
|
@@ -263,8 +289,9 @@ function CommentTemplateEdit(_ref5) {
|
|
|
263
289
|
comments: commentTree,
|
|
264
290
|
blockProps: blockProps,
|
|
265
291
|
blocks: blocks,
|
|
266
|
-
|
|
267
|
-
|
|
292
|
+
activeCommentId: activeCommentId,
|
|
293
|
+
setActiveCommentId: setActiveCommentId,
|
|
294
|
+
firstCommentId: (_commentTree$ = commentTree[0]) === null || _commentTree$ === void 0 ? void 0 : _commentTree$.commentId
|
|
268
295
|
});
|
|
269
296
|
}
|
|
270
297
|
//# sourceMappingURL=edit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/comment-template/edit.js"],"names":["TEMPLATE","getCommentsPlaceholder","perPage","threadComments","threadCommentsDepth","commentsDepth","Math","min","defaultCommentsToShow","commentId","children","CommentTemplateInnerBlocks","comment","activeComment","setActiveComment","firstComment","blocks","innerBlocksProps","template","length","CommentTemplatePreview","isHidden","blockPreviewProps","handleOnClick","style","display","undefined","MemoizedCommentTemplatePreview","CommentsList","comments","blockProps","map","index","CommentTemplateEdit","clientId","context","postId","order","defaultPage","inherit","commentOrder","select","getSettings","blockEditorStore","__experimentalDiscussionSettings","commentQuery","topLevelComments","getEntityRecords","coreStore","getBlocks","commentTree","reverse"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBlockPreview as useBlockPreview,\n} from '@wordpress/block-editor';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useCommentQueryArgs, useCommentTree } from './hooks';\n\nconst TEMPLATE = [\n\t[ 'core/comment-author-avatar' ],\n\t[ 'core/comment-author-name' ],\n\t[ 'core/comment-date' ],\n\t[ 'core/comment-content' ],\n\t[ 'core/comment-reply-link' ],\n\t[ 'core/comment-edit-link' ],\n];\n\n/**\n * Function that returns a comment structure that will be rendered with default placehoders.\n *\n * @param {Object} settings Discussion Settings.\n * @param {number} [settings.perPage] - Comments per page setting or block attribute.\n * @param {boolean} [settings.threadComments] - Enable threaded (nested) comments setting.\n * @param {number} [settings.threadCommentsDepth] - Level deep of threaded comments.\n *\n * @typedef {{id: null, children: EmptyComment[]}} EmptyComment\n * @return {EmptyComment[]} \t\tInner blocks of the Comment Template\n */\nconst getCommentsPlaceholder = ( {\n\tperPage,\n\tthreadComments,\n\tthreadCommentsDepth,\n} ) => {\n\t// In case that `threadCommentsDepth` is falsy, we default to a somewhat\n\t// arbitrary value of 3.\n\t// In case that the value is set but larger than 3 we truncate it to 3.\n\tconst commentsDepth = Math.min( threadCommentsDepth || 3, 3 );\n\n\t// We set a limit in order not to overload the editor of empty comments.\n\tconst defaultCommentsToShow =\n\t\tperPage <= commentsDepth ? perPage : commentsDepth;\n\tif ( ! threadComments || defaultCommentsToShow === 1 ) {\n\t\t// If displaying threaded comments is disabled, we only show one comment\n\t\treturn [ { commentId: null, children: [] } ];\n\t} else if ( defaultCommentsToShow === 2 ) {\n\t\treturn [\n\t\t\t{\n\t\t\t\tcommentId: null,\n\t\t\t\tchildren: [ { commentId: null, children: [] } ],\n\t\t\t},\n\t\t];\n\t}\n\n\t// In case that the value is set but larger than 3 we truncate it to 3.\n\treturn [\n\t\t{\n\t\t\tcommentId: null,\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tcommentId: null,\n\t\t\t\t\tchildren: [ { commentId: null, children: [] } ],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t];\n};\n\n/**\n * Component which renders the inner blocks of the Comment Template.\n *\n * @param {Object} props Component props.\n * @param {Array} [props.comment] - A comment object.\n * @param {Array} [props.activeComment] - The block that is currently active.\n * @param {Array} [props.setActiveComment] - The setter for activeComment.\n * @param {Array} [props.firstComment] - First comment in the array.\n * @param {Array} [props.blocks] - Array of blocks returned from\n * getBlocks() in parent .\n * @return {WPElement} \t\tInner blocks of the Comment Template\n */\nfunction CommentTemplateInnerBlocks( {\n\tcomment,\n\tactiveComment,\n\tsetActiveComment,\n\tfirstComment,\n\tblocks,\n} ) {\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps(\n\t\t{},\n\t\t{ template: TEMPLATE }\n\t);\n\treturn (\n\t\t<li { ...innerBlocksProps }>\n\t\t\t{ comment === ( activeComment || firstComment ) ? children : null }\n\n\t\t\t{ /* To avoid flicker when switching active block contexts, a preview\n\t\t\tis ALWAYS rendered and the preview for the active block is hidden.\n\t\t\tThis ensures that when switching the active block, the component is not\n\t\t\tmounted again but rather it only toggles the `isHidden` prop.\n\n\t\t\tThe same strategy is used for preventing the flicker in the Post Template\n\t\t\tblock. */ }\n\t\t\t<MemoizedCommentTemplatePreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\tcomment={ comment }\n\t\t\t\tsetActiveComment={ setActiveComment }\n\t\t\t\tisHidden={ comment === ( activeComment || firstComment ) }\n\t\t\t/>\n\n\t\t\t{ comment?.children?.length > 0 ? (\n\t\t\t\t<CommentsList\n\t\t\t\t\tcomments={ comment.children }\n\t\t\t\t\tactiveComment={ activeComment }\n\t\t\t\t\tsetActiveComment={ setActiveComment }\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t/>\n\t\t\t) : null }\n\t\t</li>\n\t);\n}\n\nconst CommentTemplatePreview = ( {\n\tblocks,\n\tcomment,\n\tsetActiveComment,\n\tisHidden,\n} ) => {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveComment( comment );\n\t};\n\n\t// We have to hide the preview block if the `comment` props points to\n\t// the curently active block!\n\n\t// Or, to put it differently, every preview block is visible unless it is the\n\t// currently active block - in this case we render its inner blocks.\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<div\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"button\"\n\t\t\tstyle={ style }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t/>\n\t);\n};\n\nconst MemoizedCommentTemplatePreview = memo( CommentTemplatePreview );\n\n/**\n * Component that renders a list of (nested) comments. It is called recursively.\n *\n * @param {Object} props Component props.\n * @param {Array} [props.comments] - Array of comment objects.\n * @param {Array} [props.blockProps] - Props from parent's `useBlockProps()`.\n * @param {Array} [props.activeComment] - The block that is currently active.\n * @param {Array} [props.setActiveComment] - The setter for activeComment.\n * @param {Array} [props.blocks] - Array of blocks returned from\n * getBlocks() in parent .\n * @return {WPElement} \t\tList of comments.\n */\nconst CommentsList = ( {\n\tcomments,\n\tblockProps,\n\tactiveComment,\n\tsetActiveComment,\n\tblocks,\n} ) => (\n\t<ol { ...blockProps }>\n\t\t{ comments &&\n\t\t\tcomments.map( ( comment, index ) => (\n\t\t\t\t<BlockContextProvider\n\t\t\t\t\tkey={ comment.commentId || index }\n\t\t\t\t\tvalue={ comment }\n\t\t\t\t>\n\t\t\t\t\t<CommentTemplateInnerBlocks\n\t\t\t\t\t\tcomment={ comment }\n\t\t\t\t\t\tactiveComment={ activeComment }\n\t\t\t\t\t\tsetActiveComment={ setActiveComment }\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tfirstComment={ comments[ 0 ] }\n\t\t\t\t\t/>\n\t\t\t\t</BlockContextProvider>\n\t\t\t) ) }\n\t</ol>\n);\n\nexport default function CommentTemplateEdit( {\n\tclientId,\n\tcontext: {\n\t\tpostId,\n\t\t'comments/perPage': perPage,\n\t\t'comments/order': order,\n\t\t'comments/defaultPage': defaultPage,\n\t\t'comments/inherit': inherit,\n\t},\n} ) {\n\tconst blockProps = useBlockProps();\n\n\tconst [ activeComment, setActiveComment ] = useState();\n\tconst { commentOrder, threadCommentsDepth, threadComments } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn getSettings().__experimentalDiscussionSettings;\n\t\t}\n\t);\n\n\tconst commentQuery = useCommentQueryArgs( {\n\t\tpostId,\n\t\tperPage,\n\t\tdefaultPage,\n\t\tinherit,\n\t} );\n\n\tconst { topLevelComments, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\t// Request only top-level comments. Replies are embedded.\n\t\t\t\ttopLevelComments: commentQuery\n\t\t\t\t\t? getEntityRecords( 'root', 'comment', commentQuery )\n\t\t\t\t\t: null,\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, commentQuery ]\n\t);\n\n\torder = inherit || ! order ? commentOrder : order;\n\n\t// Generate a tree structure of comment IDs.\n\tlet commentTree = useCommentTree(\n\t\t// Reverse the order of top comments if needed.\n\t\torder === 'desc' && topLevelComments\n\t\t\t? [ ...topLevelComments ].reverse()\n\t\t\t: topLevelComments\n\t);\n\n\tif ( ! topLevelComments ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! postId ) {\n\t\tcommentTree = getCommentsPlaceholder( {\n\t\t\tperPage,\n\t\t\tthreadComments,\n\t\t\tthreadCommentsDepth,\n\t\t} );\n\t}\n\n\tif ( ! commentTree.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No results found.' ) }</p>;\n\t}\n\n\treturn (\n\t\t<CommentsList\n\t\t\tcomments={ commentTree }\n\t\t\tblockProps={ blockProps }\n\t\t\tblocks={ blocks }\n\t\t\tactiveComment={ activeComment }\n\t\t\tsetActiveComment={ setActiveComment }\n\t\t/>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/comment-template/edit.js"],"names":["TEMPLATE","getCommentsPlaceholder","perPage","threadComments","threadCommentsDepth","commentsDepth","Math","min","defaultCommentsToShow","commentId","children","CommentTemplateInnerBlocks","comment","activeCommentId","setActiveCommentId","firstCommentId","blocks","innerBlocksProps","template","length","CommentTemplatePreview","isHidden","blockPreviewProps","handleOnClick","style","display","undefined","MemoizedCommentTemplatePreview","CommentsList","comments","blockProps","map","index","CommentTemplateEdit","clientId","context","postId","order","defaultPage","inherit","commentOrder","select","getSettings","blockEditorStore","__experimentalDiscussionSettings","commentQuery","topLevelComments","getEntityRecords","coreStore","getBlocks","commentTree","reverse"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBlockPreview as useBlockPreview,\n} from '@wordpress/block-editor';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useCommentQueryArgs, useCommentTree } from './hooks';\n\nconst TEMPLATE = [\n\t[ 'core/avatar' ],\n\t[ 'core/comment-author-name' ],\n\t[ 'core/comment-date' ],\n\t[ 'core/comment-content' ],\n\t[ 'core/comment-reply-link' ],\n\t[ 'core/comment-edit-link' ],\n];\n\n/**\n * Function that returns a comment structure that will be rendered with default placehoders.\n *\n * Each comment has a `commentId` property that is always a negative number in\n * case of the placeholders. This is to ensure that the comment does not\n * conflict with the actual (real) comments.\n *\n * @param {Object} settings Discussion Settings.\n * @param {number} [settings.perPage] - Comments per page setting or block attribute.\n * @param {boolean} [settings.threadComments] - Enable threaded (nested) comments setting.\n * @param {number} [settings.threadCommentsDepth] - Level deep of threaded comments.\n *\n * @typedef {{id: null, children: EmptyComment[]}} EmptyComment\n * @return {EmptyComment[]} \t\tInner blocks of the Comment Template\n */\nconst getCommentsPlaceholder = ( {\n\tperPage,\n\tthreadComments,\n\tthreadCommentsDepth,\n} ) => {\n\t// In case that `threadCommentsDepth` is falsy, we default to a somewhat\n\t// arbitrary value of 3.\n\t// In case that the value is set but larger than 3 we truncate it to 3.\n\tconst commentsDepth = Math.min( threadCommentsDepth || 3, 3 );\n\n\t// We set a limit in order not to overload the editor of empty comments.\n\tconst defaultCommentsToShow =\n\t\tperPage <= commentsDepth ? perPage : commentsDepth;\n\tif ( ! threadComments || defaultCommentsToShow === 1 ) {\n\t\t// If displaying threaded comments is disabled, we only show one comment\n\t\t// A commentId is negative in order to avoid conflicts with the actual comments.\n\t\treturn [ { commentId: -1, children: [] } ];\n\t} else if ( defaultCommentsToShow === 2 ) {\n\t\treturn [\n\t\t\t{\n\t\t\t\tcommentId: -1,\n\t\t\t\tchildren: [ { commentId: -2, children: [] } ],\n\t\t\t},\n\t\t];\n\t}\n\n\t// In case that the value is set but larger than 3 we truncate it to 3.\n\treturn [\n\t\t{\n\t\t\tcommentId: -1,\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tcommentId: -2,\n\t\t\t\t\tchildren: [ { commentId: -3, children: [] } ],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t];\n};\n\n/**\n * Component which renders the inner blocks of the Comment Template.\n *\n * @param {Object} props Component props.\n * @param {Array} [props.comment] - A comment object.\n * @param {Array} [props.activeCommentId] - The ID of the comment that is currently active.\n * @param {Array} [props.setActiveCommentId] - The setter for activeCommentId.\n * @param {Array} [props.firstCommentId] - ID of the first comment in the array.\n * @param {Array} [props.blocks] - Array of blocks returned from\n * getBlocks() in parent .\n * @return {WPElement} \t\tInner blocks of the Comment Template\n */\nfunction CommentTemplateInnerBlocks( {\n\tcomment,\n\tactiveCommentId,\n\tsetActiveCommentId,\n\tfirstCommentId,\n\tblocks,\n} ) {\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps(\n\t\t{},\n\t\t{ template: TEMPLATE }\n\t);\n\n\treturn (\n\t\t<li { ...innerBlocksProps }>\n\t\t\t{ comment.commentId === ( activeCommentId || firstCommentId )\n\t\t\t\t? children\n\t\t\t\t: null }\n\n\t\t\t{ /* To avoid flicker when switching active block contexts, a preview\n\t\t\tis ALWAYS rendered and the preview for the active block is hidden.\n\t\t\tThis ensures that when switching the active block, the component is not\n\t\t\tmounted again but rather it only toggles the `isHidden` prop.\n\n\t\t\tThe same strategy is used for preventing the flicker in the Post Template\n\t\t\tblock. */ }\n\t\t\t<MemoizedCommentTemplatePreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\tcommentId={ comment.commentId }\n\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\tisHidden={\n\t\t\t\t\tcomment.commentId === ( activeCommentId || firstCommentId )\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t{ comment?.children?.length > 0 ? (\n\t\t\t\t<CommentsList\n\t\t\t\t\tcomments={ comment.children }\n\t\t\t\t\tactiveCommentId={ activeCommentId }\n\t\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tfirstCommentId={ firstCommentId }\n\t\t\t\t/>\n\t\t\t) : null }\n\t\t</li>\n\t);\n}\n\nconst CommentTemplatePreview = ( {\n\tblocks,\n\tcommentId,\n\tsetActiveCommentId,\n\tisHidden,\n} ) => {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveCommentId( commentId );\n\t};\n\n\t// We have to hide the preview block if the `comment` props points to\n\t// the curently active block!\n\n\t// Or, to put it differently, every preview block is visible unless it is the\n\t// currently active block - in this case we render its inner blocks.\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<div\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"button\"\n\t\t\tstyle={ style }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t/>\n\t);\n};\n\nconst MemoizedCommentTemplatePreview = memo( CommentTemplatePreview );\n\n/**\n * Component that renders a list of (nested) comments. It is called recursively.\n *\n * @param {Object} props Component props.\n * @param {Array} [props.comments] - Array of comment objects.\n * @param {Array} [props.blockProps] - Props from parent's `useBlockProps()`.\n * @param {Array} [props.activeCommentId] - The ID of the comment that is currently active.\n * @param {Array} [props.setActiveCommentId] - The setter for activeCommentId.\n * @param {Array} [props.blocks] - Array of blocks returned from getBlocks() in parent.\n * @param {Object} [props.firstCommentId] - The ID of the first comment in the array of\n * comment objects.\n * @return {WPElement} \t\tList of comments.\n */\nconst CommentsList = ( {\n\tcomments,\n\tblockProps,\n\tactiveCommentId,\n\tsetActiveCommentId,\n\tblocks,\n\tfirstCommentId,\n} ) => (\n\t<ol { ...blockProps }>\n\t\t{ comments &&\n\t\t\tcomments.map( ( { commentId, ...comment }, index ) => (\n\t\t\t\t<BlockContextProvider\n\t\t\t\t\tkey={ comment.commentId || index }\n\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t// If the commentId is negative it means that this comment is a\n\t\t\t\t\t\t// \"placeholder\" and that the block is most likely being used in the\n\t\t\t\t\t\t// site editor. In this case, we have to set the commentId to `null`\n\t\t\t\t\t\t// because otherwise the (non-existent) comment with a negative ID\n\t\t\t\t\t\t// would be reqested from the REST API.\n\t\t\t\t\t\tcommentId: commentId < 0 ? null : commentId,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<CommentTemplateInnerBlocks\n\t\t\t\t\t\tcomment={ { commentId, ...comment } }\n\t\t\t\t\t\tactiveCommentId={ activeCommentId }\n\t\t\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tfirstCommentId={ firstCommentId }\n\t\t\t\t\t/>\n\t\t\t\t</BlockContextProvider>\n\t\t\t) ) }\n\t</ol>\n);\n\nexport default function CommentTemplateEdit( {\n\tclientId,\n\tcontext: {\n\t\tpostId,\n\t\t'comments/perPage': perPage,\n\t\t'comments/order': order,\n\t\t'comments/defaultPage': defaultPage,\n\t\t'comments/inherit': inherit,\n\t},\n} ) {\n\tconst blockProps = useBlockProps();\n\n\tconst [ activeCommentId, setActiveCommentId ] = useState();\n\tconst { commentOrder, threadCommentsDepth, threadComments } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn getSettings().__experimentalDiscussionSettings;\n\t\t}\n\t);\n\n\tconst commentQuery = useCommentQueryArgs( {\n\t\tpostId,\n\t\tperPage,\n\t\tdefaultPage,\n\t\tinherit,\n\t} );\n\n\tconst { topLevelComments, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\t// Request only top-level comments. Replies are embedded.\n\t\t\t\ttopLevelComments: commentQuery\n\t\t\t\t\t? getEntityRecords( 'root', 'comment', commentQuery )\n\t\t\t\t\t: null,\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, commentQuery ]\n\t);\n\n\torder = inherit || ! order ? commentOrder : order;\n\n\t// Generate a tree structure of comment IDs.\n\tlet commentTree = useCommentTree(\n\t\t// Reverse the order of top comments if needed.\n\t\torder === 'desc' && topLevelComments\n\t\t\t? [ ...topLevelComments ].reverse()\n\t\t\t: topLevelComments\n\t);\n\n\tif ( ! topLevelComments ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! postId ) {\n\t\tcommentTree = getCommentsPlaceholder( {\n\t\t\tperPage,\n\t\t\tthreadComments,\n\t\t\tthreadCommentsDepth,\n\t\t} );\n\t}\n\n\tif ( ! commentTree.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No results found.' ) }</p>;\n\t}\n\n\treturn (\n\t\t<CommentsList\n\t\t\tcomments={ commentTree }\n\t\t\tblockProps={ blockProps }\n\t\t\tblocks={ blocks }\n\t\t\tactiveCommentId={ activeCommentId }\n\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\tfirstCommentId={ commentTree[ 0 ]?.commentId }\n\t\t/>\n\t);\n}\n"]}
|
package/build/cover/edit.js
CHANGED
|
@@ -33,6 +33,8 @@ var _icons = require("@wordpress/icons");
|
|
|
33
33
|
|
|
34
34
|
var _blob = require("@wordpress/blob");
|
|
35
35
|
|
|
36
|
+
var _notices = require("@wordpress/notices");
|
|
37
|
+
|
|
36
38
|
var _shared = require("./shared");
|
|
37
39
|
|
|
38
40
|
/**
|
|
@@ -74,8 +76,7 @@ function CoverHeightInput(_ref) {
|
|
|
74
76
|
unit = 'px',
|
|
75
77
|
value = ''
|
|
76
78
|
} = _ref;
|
|
77
|
-
const
|
|
78
|
-
const instanceId = (0, _compose.useInstanceId)(_blockEditor.__experimentalUnitControl);
|
|
79
|
+
const instanceId = (0, _compose.useInstanceId)(_components.__experimentalUnitControl);
|
|
79
80
|
const inputId = `block-cover-height-input-${instanceId}`;
|
|
80
81
|
const isPx = unit === 'px';
|
|
81
82
|
const units = (0, _components.__experimentalUseCustomUnits)({
|
|
@@ -94,38 +95,31 @@ function CoverHeightInput(_ref) {
|
|
|
94
95
|
const inputValue = unprocessedValue !== '' ? parseFloat(unprocessedValue) : undefined;
|
|
95
96
|
|
|
96
97
|
if (isNaN(inputValue) && inputValue !== undefined) {
|
|
97
|
-
setTemporaryInput(unprocessedValue);
|
|
98
98
|
return;
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
setTemporaryInput(null);
|
|
102
101
|
onChange(inputValue);
|
|
103
102
|
};
|
|
104
103
|
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
const inputValue = temporaryInput !== null ? temporaryInput : value;
|
|
104
|
+
const computedValue = (0, _element.useMemo)(() => {
|
|
105
|
+
const [parsedQuantity] = (0, _components.__experimentalParseQuantityAndUnitFromRawValue)(value);
|
|
106
|
+
return [parsedQuantity, unit].join('');
|
|
107
|
+
}, [unit, value]);
|
|
112
108
|
const min = isPx ? _shared.COVER_MIN_HEIGHT : 0;
|
|
113
109
|
return (0, _element.createElement)(_components.BaseControl, {
|
|
114
110
|
label: (0, _i18n.__)('Minimum height of cover'),
|
|
115
111
|
id: inputId
|
|
116
|
-
}, (0, _element.createElement)(
|
|
112
|
+
}, (0, _element.createElement)(_components.__experimentalUnitControl, {
|
|
117
113
|
id: inputId,
|
|
118
114
|
isResetValueOnUnitChange: true,
|
|
119
115
|
min: min,
|
|
120
|
-
onBlur: handleOnBlur,
|
|
121
116
|
onChange: handleOnChange,
|
|
122
117
|
onUnitChange: onUnitChange,
|
|
123
118
|
style: {
|
|
124
119
|
maxWidth: 80
|
|
125
120
|
},
|
|
126
|
-
unit: unit,
|
|
127
121
|
units: units,
|
|
128
|
-
value:
|
|
122
|
+
value: computedValue
|
|
129
123
|
}));
|
|
130
124
|
}
|
|
131
125
|
|
|
@@ -247,15 +241,10 @@ function CoverPlaceholder(_ref4) {
|
|
|
247
241
|
let {
|
|
248
242
|
disableMediaButtons = false,
|
|
249
243
|
children,
|
|
250
|
-
noticeUI,
|
|
251
|
-
noticeOperations,
|
|
252
244
|
onSelectMedia,
|
|
245
|
+
onError,
|
|
253
246
|
style
|
|
254
247
|
} = _ref4;
|
|
255
|
-
const {
|
|
256
|
-
removeAllNotices,
|
|
257
|
-
createErrorNotice
|
|
258
|
-
} = noticeOperations;
|
|
259
248
|
return (0, _element.createElement)(_blockEditor.MediaPlaceholder, {
|
|
260
249
|
icon: (0, _element.createElement)(_blockEditor.BlockIcon, {
|
|
261
250
|
icon: _icons.cover
|
|
@@ -267,12 +256,8 @@ function CoverPlaceholder(_ref4) {
|
|
|
267
256
|
onSelect: onSelectMedia,
|
|
268
257
|
accept: "image/*,video/*",
|
|
269
258
|
allowedTypes: _shared.ALLOWED_MEDIA_TYPES,
|
|
270
|
-
notices: noticeUI,
|
|
271
259
|
disableMediaButtons: disableMediaButtons,
|
|
272
|
-
onError:
|
|
273
|
-
removeAllNotices();
|
|
274
|
-
createErrorNotice(message);
|
|
275
|
-
},
|
|
260
|
+
onError: onError,
|
|
276
261
|
style: style
|
|
277
262
|
}, children);
|
|
278
263
|
}
|
|
@@ -284,8 +269,6 @@ function CoverEdit(_ref5) {
|
|
|
284
269
|
attributes,
|
|
285
270
|
clientId,
|
|
286
271
|
isSelected,
|
|
287
|
-
noticeUI,
|
|
288
|
-
noticeOperations,
|
|
289
272
|
overlayColor,
|
|
290
273
|
setAttributes,
|
|
291
274
|
setOverlayColor,
|
|
@@ -311,6 +294,9 @@ function CoverEdit(_ref5) {
|
|
|
311
294
|
const {
|
|
312
295
|
__unstableMarkNextChangeAsNotPersistent
|
|
313
296
|
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
297
|
+
const {
|
|
298
|
+
createErrorNotice
|
|
299
|
+
} = (0, _data.useDispatch)(_notices.store);
|
|
314
300
|
const {
|
|
315
301
|
gradientClass,
|
|
316
302
|
gradientValue,
|
|
@@ -363,6 +349,12 @@ function CoverEdit(_ref5) {
|
|
|
363
349
|
});
|
|
364
350
|
};
|
|
365
351
|
|
|
352
|
+
const onUploadError = message => {
|
|
353
|
+
createErrorNotice(Array.isArray(message) ? message[2] : message, {
|
|
354
|
+
type: 'snackbar'
|
|
355
|
+
});
|
|
356
|
+
};
|
|
357
|
+
|
|
366
358
|
const isDarkElement = (0, _element.useRef)();
|
|
367
359
|
const isCoverDark = useCoverIsDark(url, dimRatio, overlayColor.color, isDarkElement);
|
|
368
360
|
(0, _element.useEffect)(() => {
|
|
@@ -526,9 +518,8 @@ function CoverEdit(_ref5) {
|
|
|
526
518
|
return (0, _element.createElement)(_element.Fragment, null, controls, (0, _element.createElement)("div", (0, _extends2.default)({}, blockProps, {
|
|
527
519
|
className: (0, _classnames.default)('is-placeholder', blockProps.className)
|
|
528
520
|
}), (0, _element.createElement)(CoverPlaceholder, {
|
|
529
|
-
noticeUI: noticeUI,
|
|
530
521
|
onSelectMedia: onSelectMedia,
|
|
531
|
-
|
|
522
|
+
onError: onUploadError,
|
|
532
523
|
style: {
|
|
533
524
|
minHeight: minHeightWithUnit || undefined
|
|
534
525
|
}
|
|
@@ -632,15 +623,14 @@ function CoverEdit(_ref5) {
|
|
|
632
623
|
style: mediaStyle
|
|
633
624
|
}), isUploadingMedia && (0, _element.createElement)(_components.Spinner, null), (0, _element.createElement)(CoverPlaceholder, {
|
|
634
625
|
disableMediaButtons: true,
|
|
635
|
-
noticeUI: noticeUI,
|
|
636
626
|
onSelectMedia: onSelectMedia,
|
|
637
|
-
|
|
627
|
+
onError: onUploadError
|
|
638
628
|
}), (0, _element.createElement)("div", innerBlocksProps)));
|
|
639
629
|
}
|
|
640
630
|
|
|
641
631
|
var _default = (0, _compose.compose)([(0, _blockEditor.withColors)({
|
|
642
632
|
overlayColor: 'background-color'
|
|
643
|
-
})
|
|
633
|
+
})])(CoverEdit);
|
|
644
634
|
|
|
645
635
|
exports.default = _default;
|
|
646
636
|
//# sourceMappingURL=edit.js.map
|