@wordpress/block-library 7.0.1 → 7.0.2
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/README.md +16 -0
- package/build/button/edit.native.js +2 -2
- package/build/button/edit.native.js.map +1 -1
- package/build/columns/index.js +12 -0
- package/build/columns/index.js.map +1 -1
- package/build/comment-author-avatar/edit.js +17 -4
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/comment-template/edit.js +94 -36
- package/build/comment-template/edit.js.map +1 -1
- package/build/comment-template/hooks.js +175 -0
- package/build/comment-template/hooks.js.map +1 -0
- package/build/comment-template/index.js +1 -1
- package/build/comment-template/util.js.map +1 -1
- package/build/comments-pagination-next/index.js +1 -1
- package/build/comments-pagination-numbers/index.js +1 -1
- package/build/comments-query-loop/edit/comments-inspector-controls.js +20 -9
- package/build/comments-query-loop/edit/comments-inspector-controls.js.map +1 -1
- package/build/comments-query-loop/edit.js +1 -19
- package/build/comments-query-loop/edit.js.map +1 -1
- package/build/comments-query-loop/index.js +5 -0
- package/build/comments-query-loop/index.js.map +1 -1
- package/build/cover/edit.js +21 -22
- package/build/cover/edit.js.map +1 -1
- package/build/cover/edit.native.js +7 -5
- package/build/cover/edit.native.js.map +1 -1
- package/build/cover/overlay-color-settings.native.js +4 -3
- package/build/cover/overlay-color-settings.native.js.map +1 -1
- package/build/cover/transforms.js +4 -2
- package/build/cover/transforms.js.map +1 -1
- package/build/group/index.js +1 -0
- package/build/group/index.js.map +1 -1
- package/build/heading/edit.js +14 -2
- package/build/heading/edit.js.map +1 -1
- package/build/image/deprecated.js +89 -5
- package/build/image/deprecated.js.map +1 -1
- package/build/image/save.js +0 -7
- package/build/image/save.js.map +1 -1
- package/build/latest-posts/edit.js +1 -0
- package/build/latest-posts/edit.js.map +1 -1
- package/build/navigation/edit/index.js +17 -15
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +44 -27
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +8 -22
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +6 -6
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation-submenu/edit.js +41 -9
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +11 -17
- package/build/page-list/edit.js.map +1 -1
- package/build/social-links/deprecated.js +1 -62
- package/build/social-links/deprecated.js.map +1 -1
- package/build/template-part/edit/index.js +36 -64
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/placeholder.js +64 -0
- package/build/template-part/edit/placeholder.js.map +1 -0
- package/build/template-part/edit/selection-modal.js +103 -0
- package/build/template-part/edit/selection-modal.js.map +1 -0
- package/build/template-part/edit/title-modal.js +54 -0
- package/build/template-part/edit/title-modal.js.map +1 -0
- package/build/template-part/edit/utils/hooks.js +156 -0
- package/build/template-part/edit/utils/hooks.js.map +1 -0
- package/build/template-part/index.js +3 -1
- package/build/template-part/index.js.map +1 -1
- package/build-module/button/edit.native.js +4 -4
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/columns/index.js +12 -0
- package/build-module/columns/index.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +18 -6
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/comment-template/edit.js +95 -37
- package/build-module/comment-template/edit.js.map +1 -1
- package/build-module/comment-template/hooks.js +156 -0
- package/build-module/comment-template/hooks.js.map +1 -0
- package/build-module/comment-template/index.js +1 -1
- package/build-module/comment-template/util.js.map +1 -1
- package/build-module/comments-pagination-next/index.js +1 -1
- package/build-module/comments-pagination-numbers/index.js +1 -1
- package/build-module/comments-query-loop/edit/comments-inspector-controls.js +20 -9
- package/build-module/comments-query-loop/edit/comments-inspector-controls.js.map +1 -1
- package/build-module/comments-query-loop/edit.js +2 -19
- package/build-module/comments-query-loop/edit.js.map +1 -1
- package/build-module/comments-query-loop/index.js +5 -0
- package/build-module/comments-query-loop/index.js.map +1 -1
- package/build-module/cover/edit.js +23 -24
- package/build-module/cover/edit.js.map +1 -1
- package/build-module/cover/edit.native.js +10 -8
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/cover/overlay-color-settings.native.js +4 -4
- package/build-module/cover/overlay-color-settings.native.js.map +1 -1
- package/build-module/cover/transforms.js +4 -2
- package/build-module/cover/transforms.js.map +1 -1
- package/build-module/group/index.js +1 -0
- package/build-module/group/index.js.map +1 -1
- package/build-module/heading/edit.js +15 -3
- package/build-module/heading/edit.js.map +1 -1
- package/build-module/image/deprecated.js +90 -7
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/save.js +0 -7
- package/build-module/image/save.js.map +1 -1
- package/build-module/latest-posts/edit.js +1 -0
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/navigation/edit/index.js +17 -15
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +45 -27
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +8 -21
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +6 -6
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +41 -10
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +12 -18
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/social-links/deprecated.js +1 -62
- package/build-module/social-links/deprecated.js.map +1 -1
- package/build-module/template-part/edit/index.js +37 -65
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/placeholder.js +52 -0
- package/build-module/template-part/edit/placeholder.js.map +1 -0
- package/build-module/template-part/edit/selection-modal.js +89 -0
- package/build-module/template-part/edit/selection-modal.js.map +1 -0
- package/build-module/template-part/edit/title-modal.js +46 -0
- package/build-module/template-part/edit/title-modal.js.map +1 -0
- package/build-module/template-part/edit/utils/hooks.js +135 -0
- package/build-module/template-part/edit/utils/hooks.js.map +1 -0
- package/build-module/template-part/index.js +2 -1
- package/build-module/template-part/index.js.map +1 -1
- package/build-style/comment-author-avatar/editor-rtl.css +83 -0
- package/build-style/comment-author-avatar/editor.css +83 -0
- package/build-style/cover/style-rtl.css +4 -0
- package/build-style/cover/style.css +4 -0
- package/build-style/editor-rtl.css +27 -81
- package/build-style/editor.css +27 -81
- package/build-style/image/editor-rtl.css +0 -16
- package/build-style/image/editor.css +0 -16
- package/build-style/image/style-rtl.css +2 -0
- package/build-style/image/style.css +2 -0
- package/build-style/navigation/style-rtl.css +14 -3
- package/build-style/navigation/style.css +14 -3
- package/build-style/page-list/editor-rtl.css +0 -9
- package/build-style/page-list/editor.css +0 -9
- package/build-style/style-rtl.css +20 -3
- package/build-style/style.css +20 -3
- package/build-style/template-part/editor-rtl.css +19 -56
- package/build-style/template-part/editor.css +19 -56
- package/package.json +15 -15
- package/src/archives/index.php +1 -1
- package/src/button/edit.native.js +3 -3
- package/src/columns/block.json +12 -0
- package/src/comment-author-avatar/edit.js +13 -8
- package/src/comment-author-avatar/editor.scss +7 -0
- package/src/comment-template/block.json +7 -1
- package/src/comment-template/edit.js +102 -40
- package/src/comment-template/hooks.js +151 -0
- package/src/comment-template/index.php +8 -0
- package/src/comment-template/util.js +1 -0
- package/src/comments-pagination-next/block.json +8 -1
- package/src/comments-pagination-next/index.php +6 -8
- package/src/comments-pagination-numbers/block.json +7 -1
- package/src/comments-pagination-numbers/index.php +3 -10
- package/src/comments-query-loop/block.json +5 -0
- package/src/comments-query-loop/edit/comments-inspector-controls.js +22 -4
- package/src/comments-query-loop/edit.js +1 -16
- package/src/cover/edit.js +15 -28
- package/src/cover/edit.native.js +15 -7
- package/src/cover/overlay-color-settings.native.js +3 -4
- package/src/cover/style.scss +4 -0
- package/src/cover/transforms.js +2 -0
- package/src/editor.scss +1 -0
- package/src/gallery/index.php +1 -8
- package/src/group/block.json +1 -0
- package/src/heading/edit.js +18 -5
- package/src/home-link/index.php +1 -19
- package/src/image/deprecated.js +105 -1
- package/src/image/editor.scss +0 -18
- package/src/image/save.js +0 -8
- package/src/image/style.scss +3 -0
- package/src/image/test/edit.native.js +0 -10
- package/src/latest-posts/edit.js +1 -0
- package/src/latest-posts/index.php +1 -1
- package/src/navigation/edit/index.js +25 -26
- package/src/navigation/edit/navigation-menu-selector.js +73 -28
- package/src/navigation/edit/placeholder/index.js +8 -32
- package/src/navigation/index.php +4 -4
- package/src/navigation/style.scss +22 -3
- package/src/navigation/use-navigation-menu.js +6 -6
- package/src/navigation-link/index.php +3 -22
- package/src/navigation-submenu/edit.js +50 -12
- package/src/navigation-submenu/index.php +3 -21
- package/src/page-list/edit.js +21 -25
- package/src/page-list/editor.scss +0 -10
- package/src/page-list/index.php +4 -4
- package/src/post-navigation-link/index.php +3 -3
- package/src/search/index.php +6 -3
- package/src/site-logo/index.php +1 -1
- package/src/social-links/deprecated.js +0 -59
- package/src/template-part/edit/index.js +61 -71
- package/src/template-part/edit/placeholder.js +78 -0
- package/src/template-part/edit/selection-modal.js +115 -0
- package/src/template-part/edit/title-modal.js +59 -0
- package/src/template-part/edit/utils/hooks.js +158 -0
- package/src/template-part/editor.scss +16 -74
- package/src/template-part/index.js +4 -1
- package/build/navigation/edit/existing-menus-options.js +0 -62
- package/build/navigation/edit/existing-menus-options.js.map +0 -1
- package/build/template-part/edit/placeholder/index.js +0 -141
- package/build/template-part/edit/placeholder/index.js.map +0 -1
- package/build/template-part/edit/placeholder/patterns-setup.js +0 -100
- package/build/template-part/edit/placeholder/patterns-setup.js.map +0 -1
- package/build/template-part/edit/selection/index.js +0 -45
- package/build/template-part/edit/selection/index.js.map +0 -1
- package/build/template-part/edit/selection/template-part-previews.js +0 -317
- package/build/template-part/edit/selection/template-part-previews.js.map +0 -1
- package/build-module/navigation/edit/existing-menus-options.js +0 -53
- package/build-module/navigation/edit/existing-menus-options.js.map +0 -1
- package/build-module/template-part/edit/placeholder/index.js +0 -124
- package/build-module/template-part/edit/placeholder/index.js.map +0 -1
- package/build-module/template-part/edit/placeholder/patterns-setup.js +0 -91
- package/build-module/template-part/edit/placeholder/patterns-setup.js.map +0 -1
- package/build-module/template-part/edit/selection/index.js +0 -35
- package/build-module/template-part/edit/selection/index.js.map +0 -1
- package/build-module/template-part/edit/selection/template-part-previews.js +0 -298
- package/build-module/template-part/edit/selection/template-part-previews.js.map +0 -1
- package/src/navigation/edit/existing-menus-options.js +0 -70
- package/src/template-part/edit/placeholder/index.js +0 -172
- package/src/template-part/edit/placeholder/patterns-setup.js +0 -124
- package/src/template-part/edit/selection/index.js +0 -37
- package/src/template-part/edit/selection/template-part-previews.js +0 -372
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/comment-template/edit.js"],"names":["useState","useMemo","memo","useSelect","__","BlockContextProvider","useBlockProps","useInnerBlocksProps","store","blockEditorStore","__experimentalUseBlockPreview","useBlockPreview","Spinner","coreStore","convertToTree","TEMPLATE","CommentTemplateInnerBlocks","comment","activeComment","setActiveComment","firstComment","blocks","children","innerBlocksProps","template","length","CommentTemplatePreview","isHidden","blockPreviewProps","handleOnClick","style","display","undefined","MemoizedCommentTemplatePreview","CommentsList","comments","blockProps","map","commentId","CommentTemplateEdit","clientId","context","postId","perPage","order","commentOrder","commentsPerPage","select","getSettings","__experimentalDiscussionSettings","rawComments","getEntityRecords","getBlocks","commentQuery","post","status","slice"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useMemo, 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 { convertToTree } from './util';\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 * 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\t\t\t\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 ) => (\n\t\t\t\t<BlockContextProvider\n\t\t\t\t\tkey={ comment.commentId }\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: { postId, 'comments/perPage': perPage, 'comments/order': order },\n} ) {\n\tconst blockProps = useBlockProps();\n\n\tconst [ activeComment, setActiveComment ] = useState();\n\tconst { commentOrder, commentsPerPage } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalDiscussionSettings;\n\t} );\n\tconst { rawComments, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\n\t\t\tconst commentQuery = {\n\t\t\t\tpost: postId,\n\t\t\t\tstatus: 'approve',\n\t\t\t\tcontext: 'embed',\n\t\t\t\torder: order || commentOrder,\n\t\t\t};\n\n\t\t\tif ( order ) {\n\t\t\t\tcommentQuery.order = order;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\trawComments: getEntityRecords(\n\t\t\t\t\t'root',\n\t\t\t\t\t'comment',\n\t\t\t\t\tcommentQuery\n\t\t\t\t),\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ postId, clientId, order ]\n\t);\n\n\t// TODO: Replicate the logic used on the server.\n\tperPage = perPage || commentsPerPage;\n\t// We convert the flat list of comments to tree.\n\t// Then, we show only a maximum of `perPage` number of comments.\n\t// This is because passing `per_page` to `getEntityRecords()` does not\n\t// take into account nested comments.\n\tconst comments = useMemo(\n\t\t() => convertToTree( rawComments ).slice( 0, perPage ),\n\t\t[ rawComments, perPage ]\n\t);\n\n\tif ( ! rawComments ) {\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 ( ! comments.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No results found.' ) }</p>;\n\t}\n\n\treturn (\n\t\t<CommentsList\n\t\t\tcomments={ comments }\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":["useState","memo","useSelect","__","BlockContextProvider","useBlockProps","useInnerBlocksProps","store","blockEditorStore","__experimentalUseBlockPreview","useBlockPreview","Spinner","coreStore","useCommentQueryArgs","useCommentTree","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","__experimentalDiscussionSettings","commentQuery","topLevelComments","getEntityRecords","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"]}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useState, useEffect, useMemo } from '@wordpress/element';
|
|
5
|
+
import { useSelect } from '@wordpress/data';
|
|
6
|
+
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
7
|
+
import { addQueryArgs } from '@wordpress/url';
|
|
8
|
+
import apiFetch from '@wordpress/api-fetch';
|
|
9
|
+
/**
|
|
10
|
+
* Return an object with the query args needed to fetch the default page of
|
|
11
|
+
* comments.
|
|
12
|
+
*
|
|
13
|
+
* @param {Object} props Hook props.
|
|
14
|
+
* @param {number} props.postId ID of the post that contains the comments.
|
|
15
|
+
* @param {number} props.perPage The number of comments included per page.
|
|
16
|
+
* @param {string} props.defaultPage Page shown by default (newest/oldest).
|
|
17
|
+
* @param {boolean} props.inherit Overwrite props with values from WP
|
|
18
|
+
* discussion settings.
|
|
19
|
+
*
|
|
20
|
+
* @return {Object} Query args to retrieve the comments.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
export const useCommentQueryArgs = _ref => {
|
|
24
|
+
let {
|
|
25
|
+
postId,
|
|
26
|
+
perPage,
|
|
27
|
+
defaultPage,
|
|
28
|
+
inherit
|
|
29
|
+
} = _ref;
|
|
30
|
+
// Initialize the query args that are not going to change.
|
|
31
|
+
const queryArgs = {
|
|
32
|
+
status: 'approve',
|
|
33
|
+
order: 'asc',
|
|
34
|
+
context: 'embed',
|
|
35
|
+
parent: 0,
|
|
36
|
+
_embed: 'children'
|
|
37
|
+
}; // Get the Discussion settings that may be needed to query the comments.
|
|
38
|
+
|
|
39
|
+
const {
|
|
40
|
+
commentsPerPage,
|
|
41
|
+
defaultCommentsPage
|
|
42
|
+
} = useSelect(select => {
|
|
43
|
+
const {
|
|
44
|
+
getSettings
|
|
45
|
+
} = select(blockEditorStore);
|
|
46
|
+
const {
|
|
47
|
+
__experimentalDiscussionSettings
|
|
48
|
+
} = getSettings();
|
|
49
|
+
return __experimentalDiscussionSettings;
|
|
50
|
+
}); // Overwrite the received attributes if `inherit` is true.
|
|
51
|
+
|
|
52
|
+
if (inherit) {
|
|
53
|
+
perPage = commentsPerPage;
|
|
54
|
+
defaultPage = defaultCommentsPage;
|
|
55
|
+
} // If a block props is not set, use the settings value to generate the
|
|
56
|
+
// appropriate query arg.
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
perPage = perPage || commentsPerPage;
|
|
60
|
+
defaultPage = defaultPage || defaultCommentsPage; // Get the number of the default page.
|
|
61
|
+
|
|
62
|
+
const page = useDefaultPageIndex({
|
|
63
|
+
defaultPage,
|
|
64
|
+
postId,
|
|
65
|
+
perPage,
|
|
66
|
+
queryArgs
|
|
67
|
+
}); // Merge, memoize and return all query arguments, unless the default page's
|
|
68
|
+
// number is not known yet.
|
|
69
|
+
|
|
70
|
+
return useMemo(() => {
|
|
71
|
+
return page ? { ...queryArgs,
|
|
72
|
+
post: postId,
|
|
73
|
+
per_page: perPage,
|
|
74
|
+
page
|
|
75
|
+
} : null;
|
|
76
|
+
}, [postId, perPage, page]);
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Return the index of the default page, depending on whether `defaultPage` is
|
|
80
|
+
* `newest` or `oldest`. In the first case, the only way to know the page's
|
|
81
|
+
* index is by using the `X-WP-TotalPages` header, which forces to make an
|
|
82
|
+
* additional request.
|
|
83
|
+
*
|
|
84
|
+
* @param {Object} props Hook props.
|
|
85
|
+
* @param {string} props.defaultPage Page shown by default (newest/oldest).
|
|
86
|
+
* @param {number} props.postId ID of the post that contains the comments.
|
|
87
|
+
* @param {number} props.perPage The number of comments included per page.
|
|
88
|
+
* @param {Object} props.queryArgs Other query args.
|
|
89
|
+
*
|
|
90
|
+
* @return {number} Index of the default comments page.
|
|
91
|
+
*/
|
|
92
|
+
|
|
93
|
+
const useDefaultPageIndex = _ref2 => {
|
|
94
|
+
let {
|
|
95
|
+
defaultPage,
|
|
96
|
+
postId,
|
|
97
|
+
perPage,
|
|
98
|
+
queryArgs
|
|
99
|
+
} = _ref2;
|
|
100
|
+
// Store the default page indices.
|
|
101
|
+
const [defaultPages, setDefaultPages] = useState({});
|
|
102
|
+
const key = `${postId}_${perPage}`;
|
|
103
|
+
const page = defaultPages[key] || 0;
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
// Do nothing if the page is already known or not the newest page.
|
|
106
|
+
if (page || defaultPage !== 'newest') {
|
|
107
|
+
return;
|
|
108
|
+
} // We need to fetch comments to know the index. Use HEAD and limit
|
|
109
|
+
// fields just to ID, to make this call as light as possible.
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
apiFetch({
|
|
113
|
+
path: addQueryArgs('/wp/v2/comments', { ...queryArgs,
|
|
114
|
+
post: postId,
|
|
115
|
+
per_page: perPage,
|
|
116
|
+
_fields: 'id'
|
|
117
|
+
}),
|
|
118
|
+
method: 'HEAD',
|
|
119
|
+
parse: false
|
|
120
|
+
}).then(res => {
|
|
121
|
+
setDefaultPages({ ...defaultPages,
|
|
122
|
+
[key]: parseInt(res.headers.get('X-WP-TotalPages'))
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
}, [defaultPage, postId, perPage, setDefaultPages]); // The oldest one is always the first one.
|
|
126
|
+
|
|
127
|
+
return defaultPage === 'newest' ? page : 1;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Generate a tree structure of comment IDs from a list of comment entities. The
|
|
131
|
+
* children of each comment are obtained from `_embedded`.
|
|
132
|
+
*
|
|
133
|
+
* @typedef {{ commentId: number, children: CommentNode }} CommentNode
|
|
134
|
+
*
|
|
135
|
+
* @param {Object[]} topLevelComments List of comment entities.
|
|
136
|
+
* @return {{ commentTree: CommentNode[]}} Tree of comment IDs.
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
export const useCommentTree = topLevelComments => {
|
|
141
|
+
const commentTree = useMemo(() => topLevelComments === null || topLevelComments === void 0 ? void 0 : topLevelComments.map(_ref3 => {
|
|
142
|
+
let {
|
|
143
|
+
id,
|
|
144
|
+
_embedded
|
|
145
|
+
} = _ref3;
|
|
146
|
+
const [children] = (_embedded === null || _embedded === void 0 ? void 0 : _embedded.children) || [[]];
|
|
147
|
+
return {
|
|
148
|
+
commentId: id,
|
|
149
|
+
children: children.map(child => ({
|
|
150
|
+
commentId: child.id
|
|
151
|
+
}))
|
|
152
|
+
};
|
|
153
|
+
}), [topLevelComments]);
|
|
154
|
+
return commentTree;
|
|
155
|
+
};
|
|
156
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/comment-template/hooks.js"],"names":["useState","useEffect","useMemo","useSelect","store","blockEditorStore","addQueryArgs","apiFetch","useCommentQueryArgs","postId","perPage","defaultPage","inherit","queryArgs","status","order","context","parent","_embed","commentsPerPage","defaultCommentsPage","select","getSettings","__experimentalDiscussionSettings","page","useDefaultPageIndex","post","per_page","defaultPages","setDefaultPages","key","path","_fields","method","parse","then","res","parseInt","headers","get","useCommentTree","topLevelComments","commentTree","map","id","_embedded","children","commentId","child"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport apiFetch from '@wordpress/api-fetch';\n\n/**\n * Return an object with the query args needed to fetch the default page of\n * comments.\n *\n * @param {Object} props Hook props.\n * @param {number} props.postId ID of the post that contains the comments.\n * @param {number} props.perPage The number of comments included per page.\n * @param {string} props.defaultPage Page shown by default (newest/oldest).\n * @param {boolean} props.inherit Overwrite props with values from WP\n * discussion settings.\n *\n * @return {Object} Query args to retrieve the comments.\n */\nexport const useCommentQueryArgs = ( {\n\tpostId,\n\tperPage,\n\tdefaultPage,\n\tinherit,\n} ) => {\n\t// Initialize the query args that are not going to change.\n\tconst queryArgs = {\n\t\tstatus: 'approve',\n\t\torder: 'asc',\n\t\tcontext: 'embed',\n\t\tparent: 0,\n\t\t_embed: 'children',\n\t};\n\n\t// Get the Discussion settings that may be needed to query the comments.\n\tconst { commentsPerPage, defaultCommentsPage } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\treturn __experimentalDiscussionSettings;\n\t} );\n\n\t// Overwrite the received attributes if `inherit` is true.\n\tif ( inherit ) {\n\t\tperPage = commentsPerPage;\n\t\tdefaultPage = defaultCommentsPage;\n\t}\n\n\t// If a block props is not set, use the settings value to generate the\n\t// appropriate query arg.\n\tperPage = perPage || commentsPerPage;\n\tdefaultPage = defaultPage || defaultCommentsPage;\n\n\t// Get the number of the default page.\n\tconst page = useDefaultPageIndex( {\n\t\tdefaultPage,\n\t\tpostId,\n\t\tperPage,\n\t\tqueryArgs,\n\t} );\n\n\t// Merge, memoize and return all query arguments, unless the default page's\n\t// number is not known yet.\n\treturn useMemo( () => {\n\t\treturn page\n\t\t\t? {\n\t\t\t\t\t...queryArgs,\n\t\t\t\t\tpost: postId,\n\t\t\t\t\tper_page: perPage,\n\t\t\t\t\tpage,\n\t\t\t }\n\t\t\t: null;\n\t}, [ postId, perPage, page ] );\n};\n\n/**\n * Return the index of the default page, depending on whether `defaultPage` is\n * `newest` or `oldest`. In the first case, the only way to know the page's\n * index is by using the `X-WP-TotalPages` header, which forces to make an\n * additional request.\n *\n * @param {Object} props Hook props.\n * @param {string} props.defaultPage Page shown by default (newest/oldest).\n * @param {number} props.postId ID of the post that contains the comments.\n * @param {number} props.perPage The number of comments included per page.\n * @param {Object} props.queryArgs Other query args.\n *\n * @return {number} Index of the default comments page.\n */\nconst useDefaultPageIndex = ( { defaultPage, postId, perPage, queryArgs } ) => {\n\t// Store the default page indices.\n\tconst [ defaultPages, setDefaultPages ] = useState( {} );\n\tconst key = `${ postId }_${ perPage }`;\n\tconst page = defaultPages[ key ] || 0;\n\n\tuseEffect( () => {\n\t\t// Do nothing if the page is already known or not the newest page.\n\t\tif ( page || defaultPage !== 'newest' ) {\n\t\t\treturn;\n\t\t}\n\t\t// We need to fetch comments to know the index. Use HEAD and limit\n\t\t// fields just to ID, to make this call as light as possible.\n\t\tapiFetch( {\n\t\t\tpath: addQueryArgs( '/wp/v2/comments', {\n\t\t\t\t...queryArgs,\n\t\t\t\tpost: postId,\n\t\t\t\tper_page: perPage,\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\tsetDefaultPages( {\n\t\t\t\t...defaultPages,\n\t\t\t\t[ key ]: parseInt( res.headers.get( 'X-WP-TotalPages' ) ),\n\t\t\t} );\n\t\t} );\n\t}, [ defaultPage, postId, perPage, setDefaultPages ] );\n\n\t// The oldest one is always the first one.\n\treturn defaultPage === 'newest' ? page : 1;\n};\n\n/**\n * Generate a tree structure of comment IDs from a list of comment entities. The\n * children of each comment are obtained from `_embedded`.\n *\n * @typedef {{ commentId: number, children: CommentNode }} CommentNode\n *\n * @param {Object[]} topLevelComments List of comment entities.\n * @return {{ commentTree: CommentNode[]}} Tree of comment IDs.\n */\nexport const useCommentTree = ( topLevelComments ) => {\n\tconst commentTree = useMemo(\n\t\t() =>\n\t\t\ttopLevelComments?.map( ( { id, _embedded } ) => {\n\t\t\t\tconst [ children ] = _embedded?.children || [ [] ];\n\t\t\t\treturn {\n\t\t\t\t\tcommentId: id,\n\t\t\t\t\tchildren: children.map( ( child ) => ( {\n\t\t\t\t\t\tcommentId: child.id,\n\t\t\t\t\t} ) ),\n\t\t\t\t};\n\t\t\t} ),\n\t\t[ topLevelComments ]\n\t);\n\n\treturn commentTree;\n};\n"]}
|
|
@@ -15,7 +15,7 @@ const metadata = {
|
|
|
15
15
|
parent: ["core/comments-query-loop"],
|
|
16
16
|
description: "Contains the block elements used to render a comment, like the title, date, author, avatar and more.",
|
|
17
17
|
textdomain: "default",
|
|
18
|
-
usesContext: ["comments/
|
|
18
|
+
usesContext: ["comments/defaultPage", "comments/inherit", "comments/order", "comments/perPage", "postId"],
|
|
19
19
|
supports: {
|
|
20
20
|
reusable: false,
|
|
21
21
|
html: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/comment-template/util.js"],"names":["convertToTree","data","table","forEach","item","id","commentId","children","tree","parent","push"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,GAAKC,IAAF,IAAY;AACxC,QAAMC,KAAK,GAAG,EAAd;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/comment-template/util.js"],"names":["convertToTree","data","table","forEach","item","id","commentId","children","tree","parent","push"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,GAAKC,IAAF,IAAY;AACxC,QAAMC,KAAK,GAAG,EAAd;AAEA,MAAK,CAAED,IAAP,EAAc,OAAO,EAAP,CAH0B,CAKxC;;AACAA,EAAAA,IAAI,CAACE,OAAL,CAAgBC,IAAF,IAAY;AACzBF,IAAAA,KAAK,CAAEE,IAAI,CAACC,EAAP,CAAL,GAAmB;AAAEC,MAAAA,SAAS,EAAEF,IAAI,CAACC,EAAlB;AAAsBE,MAAAA,QAAQ,EAAE;AAAhC,KAAnB;AACA,GAFD;AAIA,QAAMC,IAAI,GAAG,EAAb,CAVwC,CAYxC;;AACAP,EAAAA,IAAI,CAACE,OAAL,CAAgBC,IAAF,IAAY;AACzB,QAAKA,IAAI,CAACK,MAAV,EAAmB;AAAA;;AAClB;AACA;AACA;AACA,4BAAAP,KAAK,CAAEE,IAAI,CAACK,MAAP,CAAL,0EAAsBF,QAAtB,CAA+BG,IAA/B,CAAqCR,KAAK,CAAEE,IAAI,CAACC,EAAP,CAA1C;AACA,KALD,MAKO;AACN;AACA;AACA;AACAG,MAAAA,IAAI,CAACE,IAAL,CAAWR,KAAK,CAAEE,IAAI,CAACC,EAAP,CAAhB;AACA;AACD,GAZD;AAaA,SAAOG,IAAP;AACA,CA3BM","sourcesContent":["/**\n *\n * This function converts a flat list of comment objects with a `parent` property\n * to a nested list of comment objects with a `children` property. The `children`\n * property is itself a list of comment objects.\n *\n * @example\n * ```\n * const comments = [\n * \t{ id: 1, parent: 0 },\n * \t{ id: 2, parent: 1 },\n * \t{ id: 3, parent: 2 },\n * \t{ id: 4, parent: 1 },\n * ];\n * expect( convertToTree( comments ) ).toEqual( [\n * \t{\n * \t\tcommentId: 1,\n * \t\tchildren: [\n * \t\t\t{ commentId: 2, children: [ { commentId: 3, children: [] } ] },\n * \t\t\t{ commentId: 4, children: [] },\n * \t\t],\n * \t},\n * ] );\n * ```\n * @typedef {{id: number, parent: number}} Comment\n * @param {Comment[]} data - List of comment objects.\n *\n * @return {Object[]} Nested list of comment objects with a `children` property.\n */\nexport const convertToTree = ( data ) => {\n\tconst table = {};\n\n\tif ( ! data ) return [];\n\n\t// First create a hash table of { [id]: { ...comment, children: [] }}\n\tdata.forEach( ( item ) => {\n\t\ttable[ item.id ] = { commentId: item.id, children: [] };\n\t} );\n\n\tconst tree = [];\n\n\t// Iterate over the original comments again\n\tdata.forEach( ( item ) => {\n\t\tif ( item.parent ) {\n\t\t\t// If the comment has a \"parent\", then find that parent in the table that\n\t\t\t// we have created above and push the current comment to the array of its\n\t\t\t// children.\n\t\t\ttable[ item.parent ]?.children.push( table[ item.id ] );\n\t\t} else {\n\t\t\t// Otherwise, if the comment has no parent (also works if parent is 0)\n\t\t\t// that means that it's a top-level comment so we can find it in the table\n\t\t\t// and push it to the final tree.\n\t\t\ttree.push( table[ item.id ] );\n\t\t}\n\t} );\n\treturn tree;\n};\n"]}
|
|
@@ -20,7 +20,7 @@ const metadata = {
|
|
|
20
20
|
type: "string"
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
|
-
usesContext: ["postId", "comments/perPage", "comments/paginationArrow"],
|
|
23
|
+
usesContext: ["postId", "comments/perPage", "comments/order", "comments/inherit", "comments/defaultPage", "comments/paginationArrow"],
|
|
24
24
|
supports: {
|
|
25
25
|
reusable: false,
|
|
26
26
|
html: false,
|
|
@@ -15,7 +15,7 @@ const metadata = {
|
|
|
15
15
|
parent: ["core/comments-pagination"],
|
|
16
16
|
description: "Displays a list of page numbers for comments pagination.",
|
|
17
17
|
textdomain: "default",
|
|
18
|
-
usesContext: ["comments/perPage", "
|
|
18
|
+
usesContext: ["postId", "comments/perPage", "comments/order", "comments/inherit", "comments/defaultPage"],
|
|
19
19
|
supports: {
|
|
20
20
|
reusable: false,
|
|
21
21
|
html: false
|
|
@@ -13,19 +13,23 @@ const orderOptions = [{
|
|
|
13
13
|
label: __('Oldest to newest'),
|
|
14
14
|
value: 'asc'
|
|
15
15
|
}];
|
|
16
|
+
const defaultPageOptions = [{
|
|
17
|
+
label: __('Newest'),
|
|
18
|
+
value: 'newest'
|
|
19
|
+
}, {
|
|
20
|
+
label: __('Oldest'),
|
|
21
|
+
value: 'oldest'
|
|
22
|
+
}];
|
|
16
23
|
export default function CommentsInspectorControls(_ref) {
|
|
17
24
|
let {
|
|
18
25
|
attributes: {
|
|
19
26
|
TagName,
|
|
20
27
|
perPage,
|
|
21
28
|
order,
|
|
22
|
-
inherit
|
|
29
|
+
inherit,
|
|
30
|
+
defaultPage
|
|
23
31
|
},
|
|
24
|
-
setAttributes
|
|
25
|
-
defaultSettings: {
|
|
26
|
-
defaultPerPage,
|
|
27
|
-
defaultOrder
|
|
28
|
-
}
|
|
32
|
+
setAttributes
|
|
29
33
|
} = _ref;
|
|
30
34
|
return createElement(InspectorControls, null, createElement(PanelBody, {
|
|
31
35
|
title: __('Settings')
|
|
@@ -34,9 +38,7 @@ export default function CommentsInspectorControls(_ref) {
|
|
|
34
38
|
checked: inherit,
|
|
35
39
|
onChange: () => {
|
|
36
40
|
setAttributes({
|
|
37
|
-
inherit: !inherit
|
|
38
|
-
order: inherit ? defaultOrder : null,
|
|
39
|
-
perPage: inherit ? defaultPerPage : null
|
|
41
|
+
inherit: !inherit
|
|
40
42
|
});
|
|
41
43
|
}
|
|
42
44
|
}), !inherit && createElement(Fragment, null, createElement(SelectControl, {
|
|
@@ -48,6 +50,15 @@ export default function CommentsInspectorControls(_ref) {
|
|
|
48
50
|
order: value
|
|
49
51
|
});
|
|
50
52
|
}
|
|
53
|
+
}), createElement(SelectControl, {
|
|
54
|
+
label: __('Default page'),
|
|
55
|
+
value: defaultPage,
|
|
56
|
+
options: defaultPageOptions,
|
|
57
|
+
onChange: value => {
|
|
58
|
+
setAttributes({
|
|
59
|
+
defaultPage: value
|
|
60
|
+
});
|
|
61
|
+
}
|
|
51
62
|
}), createElement(NumberControl, {
|
|
52
63
|
__unstableInputWidth: "60px",
|
|
53
64
|
label: __('Items per Page'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/comments-query-loop/edit/comments-inspector-controls.js"],"names":["PanelBody","SelectControl","ToggleControl","__experimentalNumberControl","NumberControl","__","InspectorControls","orderOptions","label","value","CommentsInspectorControls","attributes","TagName","perPage","order","inherit","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/comments-query-loop/edit/comments-inspector-controls.js"],"names":["PanelBody","SelectControl","ToggleControl","__experimentalNumberControl","NumberControl","__","InspectorControls","orderOptions","label","value","defaultPageOptions","CommentsInspectorControls","attributes","TagName","perPage","order","inherit","defaultPage","setAttributes","num","parseInt","isNaN","tagName"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalNumberControl as NumberControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\n\nconst orderOptions = [\n\t{\n\t\tlabel: __( 'Newest to oldest' ),\n\t\tvalue: 'desc',\n\t},\n\t{\n\t\tlabel: __( 'Oldest to newest' ),\n\t\tvalue: 'asc',\n\t},\n];\n\nconst defaultPageOptions = [\n\t{\n\t\tlabel: __( 'Newest' ),\n\t\tvalue: 'newest',\n\t},\n\t{\n\t\tlabel: __( 'Oldest' ),\n\t\tvalue: 'oldest',\n\t},\n];\n\nexport default function CommentsInspectorControls( {\n\tattributes: { TagName, perPage, order, inherit, defaultPage },\n\tsetAttributes,\n} ) {\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Inherit from Discussion Settings' ) }\n\t\t\t\t\tchecked={ inherit }\n\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tinherit: ! inherit,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ ! inherit && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Order by' ) }\n\t\t\t\t\t\t\tvalue={ order }\n\t\t\t\t\t\t\toptions={ orderOptions }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\torder: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Default page' ) }\n\t\t\t\t\t\t\tvalue={ defaultPage }\n\t\t\t\t\t\t\toptions={ defaultPageOptions }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdefaultPage: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t__unstableInputWidth=\"60px\"\n\t\t\t\t\t\t\tlabel={ __( 'Items per Page' ) }\n\t\t\t\t\t\t\tlabelPosition=\"edge\"\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst num = parseInt( value, 10 );\n\t\t\t\t\t\t\t\tif ( isNaN( num ) || num < 1 || num > 100 ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tperPage: num,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\t\tvalue={ perPage }\n\t\t\t\t\t\t\tisDragEnabled={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t] }\n\t\t\t\t\tvalue={ TagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</InspectorControls>\n\t);\n}\n"]}
|
|
@@ -3,13 +3,12 @@ import { createElement, Fragment } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* WordPress dependencies
|
|
5
5
|
*/
|
|
6
|
-
import { useBlockProps, useInnerBlocksProps
|
|
6
|
+
import { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
|
|
7
7
|
/**
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import CommentsInspectorControls from './edit/comments-inspector-controls';
|
|
12
|
-
import { useSelect } from '@wordpress/data';
|
|
13
12
|
const TEMPLATE = [['core/comment-template'], ['core/comments-pagination']];
|
|
14
13
|
export default function CommentsQueryLoopEdit(_ref) {
|
|
15
14
|
let {
|
|
@@ -23,25 +22,9 @@ export default function CommentsQueryLoopEdit(_ref) {
|
|
|
23
22
|
const innerBlocksProps = useInnerBlocksProps(blockProps, {
|
|
24
23
|
template: TEMPLATE
|
|
25
24
|
});
|
|
26
|
-
const {
|
|
27
|
-
commentOrder,
|
|
28
|
-
commentsPerPage
|
|
29
|
-
} = useSelect(select => {
|
|
30
|
-
const {
|
|
31
|
-
getSettings
|
|
32
|
-
} = select(blockEditorStore);
|
|
33
|
-
const {
|
|
34
|
-
__experimentalDiscussionSettings
|
|
35
|
-
} = getSettings();
|
|
36
|
-
return __experimentalDiscussionSettings;
|
|
37
|
-
});
|
|
38
25
|
return createElement(Fragment, null, createElement(CommentsInspectorControls, {
|
|
39
26
|
attributes: attributes,
|
|
40
|
-
setAttributes: setAttributes
|
|
41
|
-
defaultSettings: {
|
|
42
|
-
defaultOrder: commentOrder,
|
|
43
|
-
defaultPerPage: commentsPerPage
|
|
44
|
-
}
|
|
27
|
+
setAttributes: setAttributes
|
|
45
28
|
}), createElement(TagName, innerBlocksProps));
|
|
46
29
|
}
|
|
47
30
|
//# sourceMappingURL=edit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/comments-query-loop/edit.js"],"names":["useBlockProps","useInnerBlocksProps","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/comments-query-loop/edit.js"],"names":["useBlockProps","useInnerBlocksProps","CommentsInspectorControls","TEMPLATE","CommentsQueryLoopEdit","attributes","setAttributes","tagName","TagName","blockProps","innerBlocksProps","template"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,aAAT,EAAwBC,mBAAxB,QAAmD,yBAAnD;AAEA;AACA;AACA;;AACA,OAAOC,yBAAP,MAAsC,oCAAtC;AAEA,MAAMC,QAAQ,GAAG,CAChB,CAAE,uBAAF,CADgB,EAEhB,CAAE,0BAAF,CAFgB,CAAjB;AAKA,eAAe,SAASC,qBAAT,OAAgE;AAAA,MAAhC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAgC;AAC9E,QAAM;AAAEC,IAAAA,OAAO,EAAEC;AAAX,MAAuBH,UAA7B;AAEA,QAAMI,UAAU,GAAGT,aAAa,EAAhC;AACA,QAAMU,gBAAgB,GAAGT,mBAAmB,CAAEQ,UAAF,EAAc;AACzDE,IAAAA,QAAQ,EAAER;AAD+C,GAAd,CAA5C;AAIA,SACC,8BACC,cAAC,yBAAD;AACC,IAAA,UAAU,EAAGE,UADd;AAEC,IAAA,aAAa,EAAGC;AAFjB,IADD,EAKC,cAAC,OAAD,EAAcI,gBAAd,CALD,CADD;AASA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport CommentsInspectorControls from './edit/comments-inspector-controls';\n\nconst TEMPLATE = [\n\t[ 'core/comment-template' ],\n\t[ 'core/comments-pagination' ],\n];\n\nexport default function CommentsQueryLoopEdit( { attributes, setAttributes } ) {\n\tconst { tagName: TagName } = attributes;\n\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<CommentsInspectorControls\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t\t<TagName { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -30,11 +30,16 @@ const metadata = {
|
|
|
30
30
|
tagName: {
|
|
31
31
|
type: "string",
|
|
32
32
|
"default": "div"
|
|
33
|
+
},
|
|
34
|
+
defaultPage: {
|
|
35
|
+
type: "string",
|
|
36
|
+
"default": "oldest"
|
|
33
37
|
}
|
|
34
38
|
},
|
|
35
39
|
providesContext: {
|
|
36
40
|
"comments/perPage": "perPage",
|
|
37
41
|
"comments/order": "order",
|
|
42
|
+
"comments/defaultPage": "defaultPage",
|
|
38
43
|
"comments/inherit": "inherit"
|
|
39
44
|
},
|
|
40
45
|
supports: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/comments-query-loop/index.js"],"names":["postComments","icon","edit","save","name","metadata","settings"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,IAAIC,IAAzB,QAAqC,kBAArC;AAEA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/comments-query-loop/index.js"],"names":["postComments","icon","edit","save","name","metadata","settings"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,IAAIC,IAAzB,QAAqC,kBAArC;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBL,EAAAA,IADuB;AAEvBC,EAAAA,IAFuB;AAGvBC,EAAAA;AAHuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { postComments as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n"]}
|
|
@@ -14,10 +14,10 @@ import namesPlugin from 'colord/plugins/names';
|
|
|
14
14
|
|
|
15
15
|
import { Fragment, useEffect, useRef, useState } from '@wordpress/element';
|
|
16
16
|
import { BaseControl, Button, ExternalLink, FocalPointPicker, PanelBody, PanelRow, RangeControl, ResizableBox, Spinner, TextareaControl, ToggleControl, withNotices, __experimentalUseCustomUnits as useCustomUnits, __experimentalBoxControl as BoxControl, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
|
|
17
|
-
import { compose,
|
|
17
|
+
import { compose, useInstanceId } from '@wordpress/compose';
|
|
18
18
|
import { BlockControls, BlockIcon, InspectorControls, MediaPlaceholder, MediaReplaceFlow, withColors, ColorPalette, useBlockProps, useSetting, useInnerBlocksProps, __experimentalUseGradient, __experimentalPanelColorGradientSettings as PanelColorGradientSettings, __experimentalUnitControl as UnitControl, __experimentalBlockAlignmentMatrixControl as BlockAlignmentMatrixControl, __experimentalBlockFullHeightAligmentControl as FullHeightAlignmentControl, store as blockEditorStore } from '@wordpress/block-editor';
|
|
19
19
|
import { __ } from '@wordpress/i18n';
|
|
20
|
-
import {
|
|
20
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
21
21
|
import { cover as icon } from '@wordpress/icons';
|
|
22
22
|
import { isBlobURL } from '@wordpress/blob';
|
|
23
23
|
/**
|
|
@@ -271,8 +271,7 @@ function CoverEdit(_ref5) {
|
|
|
271
271
|
overlayColor,
|
|
272
272
|
setAttributes,
|
|
273
273
|
setOverlayColor,
|
|
274
|
-
toggleSelection
|
|
275
|
-
markNextChangeAsNotPersistent
|
|
274
|
+
toggleSelection
|
|
276
275
|
} = _ref5;
|
|
277
276
|
const {
|
|
278
277
|
contentPosition,
|
|
@@ -291,6 +290,9 @@ function CoverEdit(_ref5) {
|
|
|
291
290
|
allowedBlocks,
|
|
292
291
|
templateLock
|
|
293
292
|
} = attributes;
|
|
293
|
+
const {
|
|
294
|
+
__unstableMarkNextChangeAsNotPersistent
|
|
295
|
+
} = useDispatch(blockEditorStore);
|
|
294
296
|
|
|
295
297
|
const {
|
|
296
298
|
gradientClass,
|
|
@@ -349,18 +351,18 @@ function CoverEdit(_ref5) {
|
|
|
349
351
|
const isCoverDark = useCoverIsDark(url, dimRatio, overlayColor.color, isDarkElement);
|
|
350
352
|
useEffect(() => {
|
|
351
353
|
// This side-effect should not create an undo level.
|
|
352
|
-
|
|
354
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
355
|
+
|
|
353
356
|
setAttributes({
|
|
354
357
|
isDark: isCoverDark
|
|
355
358
|
});
|
|
356
359
|
}, [isCoverDark]);
|
|
357
360
|
const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
|
|
358
361
|
const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
|
|
359
|
-
const [temporaryMinHeight, setTemporaryMinHeight] = useState(null);
|
|
360
362
|
const minHeightWithUnit = minHeightUnit ? `${minHeight}${minHeightUnit}` : minHeight;
|
|
361
363
|
const isImgElement = !(hasParallax || isRepeated);
|
|
362
364
|
const style = { ...(isImageBackground && !isImgElement ? backgroundImageStyles(url) : undefined),
|
|
363
|
-
minHeight:
|
|
365
|
+
minHeight: minHeightWithUnit || undefined
|
|
364
366
|
};
|
|
365
367
|
const bgStyle = {
|
|
366
368
|
backgroundColor: overlayColor.color
|
|
@@ -477,7 +479,7 @@ function CoverEdit(_ref5) {
|
|
|
477
479
|
isShownByDefault: true,
|
|
478
480
|
panelId: clientId
|
|
479
481
|
}, createElement(CoverHeightInput, {
|
|
480
|
-
value:
|
|
482
|
+
value: minHeight,
|
|
481
483
|
unit: minHeightUnit,
|
|
482
484
|
onChange: newMinHeight => setAttributes({
|
|
483
485
|
minHeight: newMinHeight
|
|
@@ -512,7 +514,7 @@ function CoverEdit(_ref5) {
|
|
|
512
514
|
onSelectMedia: onSelectMedia,
|
|
513
515
|
noticeOperations: noticeOperations,
|
|
514
516
|
style: {
|
|
515
|
-
minHeight:
|
|
517
|
+
minHeight: minHeightWithUnit || undefined
|
|
516
518
|
}
|
|
517
519
|
}, createElement("div", {
|
|
518
520
|
className: "wp-block-cover__placeholder-background-options"
|
|
@@ -529,13 +531,16 @@ function CoverEdit(_ref5) {
|
|
|
529
531
|
});
|
|
530
532
|
toggleSelection(false);
|
|
531
533
|
},
|
|
532
|
-
onResize:
|
|
534
|
+
onResize: value => {
|
|
535
|
+
setAttributes({
|
|
536
|
+
minHeight: value
|
|
537
|
+
});
|
|
538
|
+
},
|
|
533
539
|
onResizeStop: newMinHeight => {
|
|
534
540
|
toggleSelection(true);
|
|
535
541
|
setAttributes({
|
|
536
542
|
minHeight: newMinHeight
|
|
537
543
|
});
|
|
538
|
-
setTemporaryMinHeight(null);
|
|
539
544
|
},
|
|
540
545
|
showHandle: isSelected
|
|
541
546
|
})));
|
|
@@ -567,13 +572,16 @@ function CoverEdit(_ref5) {
|
|
|
567
572
|
});
|
|
568
573
|
toggleSelection(false);
|
|
569
574
|
},
|
|
570
|
-
onResize:
|
|
575
|
+
onResize: value => {
|
|
576
|
+
setAttributes({
|
|
577
|
+
minHeight: value
|
|
578
|
+
});
|
|
579
|
+
},
|
|
571
580
|
onResizeStop: newMinHeight => {
|
|
572
581
|
toggleSelection(true);
|
|
573
582
|
setAttributes({
|
|
574
583
|
minHeight: newMinHeight
|
|
575
584
|
});
|
|
576
|
-
setTemporaryMinHeight(null);
|
|
577
585
|
},
|
|
578
586
|
showHandle: isSelected
|
|
579
587
|
}), createElement("span", {
|
|
@@ -614,16 +622,7 @@ function CoverEdit(_ref5) {
|
|
|
614
622
|
}), createElement("div", innerBlocksProps)));
|
|
615
623
|
}
|
|
616
624
|
|
|
617
|
-
export default compose([
|
|
618
|
-
const {
|
|
619
|
-
toggleSelection,
|
|
620
|
-
__unstableMarkNextChangeAsNotPersistent
|
|
621
|
-
} = dispatch(blockEditorStore);
|
|
622
|
-
return {
|
|
623
|
-
toggleSelection,
|
|
624
|
-
markNextChangeAsNotPersistent: __unstableMarkNextChangeAsNotPersistent
|
|
625
|
-
};
|
|
626
|
-
}), withColors({
|
|
625
|
+
export default compose([withColors({
|
|
627
626
|
overlayColor: 'background-color'
|
|
628
|
-
}), withNotices
|
|
627
|
+
}), withNotices])(CoverEdit);
|
|
629
628
|
//# sourceMappingURL=edit.js.map
|