@wordpress/editor 14.44.1-next.v.202604201441.0 → 14.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/collab-sidebar/{comment-menu-item.cjs → add-note-menu-item.cjs} +17 -14
- package/build/components/collab-sidebar/add-note-menu-item.cjs.map +7 -0
- package/build/components/collab-sidebar/{add-comment.cjs → add-note.cjs} +28 -41
- package/build/components/collab-sidebar/add-note.cjs.map +7 -0
- package/build/components/collab-sidebar/board-store.cjs +3 -0
- package/build/components/collab-sidebar/board-store.cjs.map +2 -2
- package/build/components/collab-sidebar/floating-container.cjs +4 -3
- package/build/components/collab-sidebar/floating-container.cjs.map +3 -3
- package/build/components/collab-sidebar/hooks.cjs +92 -135
- package/build/components/collab-sidebar/hooks.cjs.map +3 -3
- package/build/components/collab-sidebar/index.cjs +28 -79
- package/build/components/collab-sidebar/index.cjs.map +3 -3
- package/build/components/collab-sidebar/{comment-author-info.cjs → note-byline.cjs} +13 -9
- package/build/components/collab-sidebar/note-byline.cjs.map +7 -0
- package/build/components/collab-sidebar/note-card.cjs +58 -0
- package/build/components/collab-sidebar/note-card.cjs.map +7 -0
- package/build/components/collab-sidebar/{comment-form.cjs → note-form.cjs} +45 -36
- package/build/components/collab-sidebar/note-form.cjs.map +7 -0
- package/build/components/collab-sidebar/{comment-indicator-toolbar.cjs → note-indicator-toolbar.cjs} +31 -27
- package/build/components/collab-sidebar/note-indicator-toolbar.cjs.map +7 -0
- package/build/components/collab-sidebar/note-thread.cjs +321 -0
- package/build/components/collab-sidebar/note-thread.cjs.map +7 -0
- package/build/components/collab-sidebar/note.cjs +207 -0
- package/build/components/collab-sidebar/note.cjs.map +7 -0
- package/build/components/collab-sidebar/notes.cjs +237 -0
- package/build/components/collab-sidebar/notes.cjs.map +7 -0
- package/build/components/collab-sidebar/utils.cjs +23 -25
- package/build/components/collab-sidebar/utils.cjs.map +2 -2
- package/build/components/document-bar/index.cjs.map +3 -3
- package/build/components/error-boundary/index.cjs.map +3 -3
- package/build/components/list-view-sidebar/list-view-outline.cjs.map +3 -3
- package/build/components/media/media-editor-modal.cjs +93 -0
- package/build/components/media/media-editor-modal.cjs.map +7 -0
- package/build/components/more-menu/index.cjs +3 -2
- package/build/components/more-menu/index.cjs.map +2 -2
- package/build/components/post-actions/set-as-homepage.cjs.map +3 -3
- package/build/components/post-actions/set-as-posts-page.cjs.map +3 -3
- package/build/components/post-card-panel/index.cjs +2 -2
- package/build/components/post-card-panel/index.cjs.map +3 -3
- package/build/components/post-content-information/index.cjs.map +3 -3
- package/build/components/post-excerpt/panel.cjs.map +3 -3
- package/build/components/post-last-edited-panel/index.cjs.map +3 -3
- package/build/components/post-preview-button/index.cjs +3 -2
- package/build/components/post-preview-button/index.cjs.map +2 -2
- package/build/components/post-publish-button/index.cjs +2 -2
- package/build/components/post-publish-button/index.cjs.map +2 -2
- package/build/components/post-publish-button/label.cjs +4 -2
- package/build/components/post-publish-button/label.cjs.map +2 -2
- package/build/components/post-publish-panel/postpublish.cjs +3 -2
- package/build/components/post-publish-panel/postpublish.cjs.map +2 -2
- package/build/components/post-revisions-panel/index.cjs +2 -2
- package/build/components/post-revisions-panel/index.cjs.map +2 -2
- package/build/components/post-revisions-preview/diff-markers.cjs +1 -1
- package/build/components/post-revisions-preview/diff-markers.cjs.map +2 -2
- package/build/components/post-revisions-preview/revisions-slider.cjs +1 -0
- package/build/components/post-revisions-preview/revisions-slider.cjs.map +2 -2
- package/build/components/post-saved-state/index.cjs +4 -1
- package/build/components/post-saved-state/index.cjs.map +2 -2
- package/build/components/post-text-editor/index.cjs +3 -4
- package/build/components/post-text-editor/index.cjs.map +2 -2
- package/build/components/preview-dropdown/index.cjs +3 -2
- package/build/components/preview-dropdown/index.cjs.map +2 -2
- package/build/components/provider/index.cjs +3 -1
- package/build/components/provider/index.cjs.map +3 -3
- package/build/components/provider/use-block-editor-settings.cjs +7 -1
- package/build/components/provider/use-block-editor-settings.cjs.map +3 -3
- package/build/components/provider/use-upload-save-lock.cjs +2 -12
- package/build/components/provider/use-upload-save-lock.cjs.map +2 -2
- package/build/components/resizable-editor/resize-handle.cjs +2 -1
- package/build/components/resizable-editor/resize-handle.cjs.map +2 -2
- package/build/components/revision-created-panel/index.cjs.map +3 -3
- package/build/components/site-discussion/index.cjs.map +2 -2
- package/build/components/template-actions-panel/classic-theme-content.cjs.map +2 -2
- package/build/components/template-part-menu-items/convert-to-regular.cjs +54 -11
- package/build/components/template-part-menu-items/convert-to-regular.cjs.map +3 -3
- package/build/components/visual-editor/index.cjs +5 -22
- package/build/components/visual-editor/index.cjs.map +2 -2
- package/build/store/private-actions.cjs +0 -8
- package/build/store/private-actions.cjs.map +2 -2
- package/build/store/private-selectors.cjs +0 -5
- package/build/store/private-selectors.cjs.map +2 -2
- package/build/store/reducer.cjs +0 -10
- package/build/store/reducer.cjs.map +2 -2
- package/build/utils/media-finalize/index.cjs +3 -2
- package/build/utils/media-finalize/index.cjs.map +2 -2
- package/build/utils/media-upload/index.cjs +14 -25
- package/build/utils/media-upload/index.cjs.map +2 -2
- package/build-module/components/collab-sidebar/{comment-menu-item.mjs → add-note-menu-item.mjs} +10 -11
- package/build-module/components/collab-sidebar/add-note-menu-item.mjs.map +7 -0
- package/build-module/components/collab-sidebar/{add-comment.mjs → add-note.mjs} +26 -29
- package/build-module/components/collab-sidebar/add-note.mjs.map +7 -0
- package/build-module/components/collab-sidebar/board-store.mjs +3 -0
- package/build-module/components/collab-sidebar/board-store.mjs.map +2 -2
- package/build-module/components/collab-sidebar/floating-container.mjs +4 -3
- package/build-module/components/collab-sidebar/floating-container.mjs.map +2 -2
- package/build-module/components/collab-sidebar/hooks.mjs +91 -137
- package/build-module/components/collab-sidebar/hooks.mjs.map +2 -2
- package/build-module/components/collab-sidebar/index.mjs +29 -84
- package/build-module/components/collab-sidebar/index.mjs.map +2 -2
- package/build-module/components/collab-sidebar/{comment-author-info.mjs → note-byline.mjs} +7 -7
- package/build-module/components/collab-sidebar/note-byline.mjs.map +7 -0
- package/build-module/components/collab-sidebar/note-card.mjs +33 -0
- package/build-module/components/collab-sidebar/note-card.mjs.map +7 -0
- package/build-module/components/collab-sidebar/note-form.mjs +84 -0
- package/build-module/components/collab-sidebar/note-form.mjs.map +7 -0
- package/build-module/components/collab-sidebar/{comment-indicator-toolbar.mjs → note-indicator-toolbar.mjs} +25 -29
- package/build-module/components/collab-sidebar/note-indicator-toolbar.mjs.map +7 -0
- package/build-module/components/collab-sidebar/note-thread.mjs +289 -0
- package/build-module/components/collab-sidebar/note-thread.mjs.map +7 -0
- package/build-module/components/collab-sidebar/note.mjs +176 -0
- package/build-module/components/collab-sidebar/note.mjs.map +7 -0
- package/build-module/components/collab-sidebar/notes.mjs +215 -0
- package/build-module/components/collab-sidebar/notes.mjs.map +7 -0
- package/build-module/components/collab-sidebar/utils.mjs +19 -21
- package/build-module/components/collab-sidebar/utils.mjs.map +2 -2
- package/build-module/components/document-bar/index.mjs +3 -3
- package/build-module/components/document-bar/index.mjs.map +2 -2
- package/build-module/components/error-boundary/index.mjs +2 -2
- package/build-module/components/error-boundary/index.mjs.map +2 -2
- package/build-module/components/list-view-sidebar/list-view-outline.mjs +5 -5
- package/build-module/components/list-view-sidebar/list-view-outline.mjs.map +2 -2
- package/build-module/components/media/media-editor-modal.mjs +62 -0
- package/build-module/components/media/media-editor-modal.mjs.map +7 -0
- package/build-module/components/more-menu/index.mjs +3 -7
- package/build-module/components/more-menu/index.mjs.map +2 -2
- package/build-module/components/post-actions/set-as-homepage.mjs +2 -2
- package/build-module/components/post-actions/set-as-homepage.mjs.map +2 -2
- package/build-module/components/post-actions/set-as-posts-page.mjs +2 -2
- package/build-module/components/post-actions/set-as-posts-page.mjs.map +2 -2
- package/build-module/components/post-card-panel/index.mjs +5 -5
- package/build-module/components/post-card-panel/index.mjs.map +2 -2
- package/build-module/components/post-content-information/index.mjs +2 -2
- package/build-module/components/post-content-information/index.mjs.map +2 -2
- package/build-module/components/post-excerpt/panel.mjs +2 -2
- package/build-module/components/post-excerpt/panel.mjs.map +2 -2
- package/build-module/components/post-last-edited-panel/index.mjs +2 -2
- package/build-module/components/post-last-edited-panel/index.mjs.map +2 -2
- package/build-module/components/post-preview-button/index.mjs +3 -2
- package/build-module/components/post-preview-button/index.mjs.map +2 -2
- package/build-module/components/post-publish-button/index.mjs +2 -2
- package/build-module/components/post-publish-button/index.mjs.map +2 -2
- package/build-module/components/post-publish-button/label.mjs +4 -2
- package/build-module/components/post-publish-button/label.mjs.map +2 -2
- package/build-module/components/post-publish-panel/postpublish.mjs +3 -3
- package/build-module/components/post-publish-panel/postpublish.mjs.map +2 -2
- package/build-module/components/post-revisions-panel/index.mjs +2 -2
- package/build-module/components/post-revisions-panel/index.mjs.map +2 -2
- package/build-module/components/post-revisions-preview/diff-markers.mjs +1 -1
- package/build-module/components/post-revisions-preview/diff-markers.mjs.map +2 -2
- package/build-module/components/post-revisions-preview/revisions-slider.mjs +1 -0
- package/build-module/components/post-revisions-preview/revisions-slider.mjs.map +2 -2
- package/build-module/components/post-saved-state/index.mjs +4 -1
- package/build-module/components/post-saved-state/index.mjs.map +2 -2
- package/build-module/components/post-text-editor/index.mjs +2 -3
- package/build-module/components/post-text-editor/index.mjs.map +2 -2
- package/build-module/components/preview-dropdown/index.mjs +2 -2
- package/build-module/components/preview-dropdown/index.mjs.map +2 -2
- package/build-module/components/provider/index.mjs +3 -1
- package/build-module/components/provider/index.mjs.map +2 -2
- package/build-module/components/provider/use-block-editor-settings.mjs +7 -1
- package/build-module/components/provider/use-block-editor-settings.mjs.map +2 -2
- package/build-module/components/provider/use-upload-save-lock.mjs +2 -12
- package/build-module/components/provider/use-upload-save-lock.mjs.map +2 -2
- package/build-module/components/resizable-editor/resize-handle.mjs +2 -5
- package/build-module/components/resizable-editor/resize-handle.mjs.map +2 -2
- package/build-module/components/revision-created-panel/index.mjs +2 -2
- package/build-module/components/revision-created-panel/index.mjs.map +2 -2
- package/build-module/components/site-discussion/index.mjs +2 -2
- package/build-module/components/site-discussion/index.mjs.map +2 -2
- package/build-module/components/template-actions-panel/classic-theme-content.mjs +2 -2
- package/build-module/components/template-actions-panel/classic-theme-content.mjs.map +2 -2
- package/build-module/components/template-part-menu-items/convert-to-regular.mjs +60 -14
- package/build-module/components/template-part-menu-items/convert-to-regular.mjs.map +2 -2
- package/build-module/components/visual-editor/index.mjs +5 -22
- package/build-module/components/visual-editor/index.mjs.map +2 -2
- package/build-module/store/private-actions.mjs +0 -7
- package/build-module/store/private-actions.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +0 -4
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +0 -9
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-module/utils/media-finalize/index.mjs +3 -2
- package/build-module/utils/media-finalize/index.mjs.map +2 -2
- package/build-module/utils/media-upload/index.mjs +14 -25
- package/build-module/utils/media-upload/index.mjs.map +2 -2
- package/build-style/style-rtl.css +386 -142
- package/build-style/style.css +386 -142
- package/build-types/components/collab-sidebar/add-note-menu-item.d.ts +5 -0
- package/build-types/components/collab-sidebar/add-note-menu-item.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/add-note.d.ts +6 -0
- package/build-types/components/collab-sidebar/add-note.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/board-store.d.ts +1 -0
- package/build-types/components/collab-sidebar/board-store.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/floating-container.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/hooks.d.ts +8 -21
- package/build-types/components/collab-sidebar/hooks.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/index.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/note-byline.d.ts +7 -0
- package/build-types/components/collab-sidebar/note-byline.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/note-card.d.ts +8 -0
- package/build-types/components/collab-sidebar/note-card.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/note-form.d.ts +7 -0
- package/build-types/components/collab-sidebar/note-form.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/note-indicator-toolbar.d.ts +5 -0
- package/build-types/components/collab-sidebar/note-indicator-toolbar.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/note-thread.d.ts +11 -0
- package/build-types/components/collab-sidebar/note-thread.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/note.d.ts +9 -0
- package/build-types/components/collab-sidebar/note.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/notes.d.ts +7 -0
- package/build-types/components/collab-sidebar/notes.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/utils.d.ts +21 -20
- package/build-types/components/collab-sidebar/utils.d.ts.map +1 -1
- package/build-types/components/media/media-editor-modal.d.ts +11 -0
- package/build-types/components/media/media-editor-modal.d.ts.map +1 -0
- package/build-types/components/more-menu/index.d.ts.map +1 -1
- package/build-types/components/post-preview-button/index.d.ts.map +1 -1
- package/build-types/components/post-publish-button/index.d.ts.map +1 -1
- package/build-types/components/post-publish-button/label.d.ts.map +1 -1
- package/build-types/components/post-revisions-preview/revisions-slider.d.ts.map +1 -1
- package/build-types/components/post-saved-state/index.d.ts.map +1 -1
- package/build-types/components/provider/index.d.ts.map +1 -1
- package/build-types/components/provider/use-block-editor-settings.d.ts.map +1 -1
- package/build-types/components/provider/use-upload-save-lock.d.ts +0 -2
- package/build-types/components/provider/use-upload-save-lock.d.ts.map +1 -1
- package/build-types/components/resizable-editor/resize-handle.d.ts.map +1 -1
- package/build-types/components/template-part-menu-items/convert-to-regular.d.ts.map +1 -1
- package/build-types/components/visual-editor/index.d.ts.map +1 -1
- package/build-types/store/private-actions.d.ts +0 -7
- package/build-types/store/private-actions.d.ts.map +1 -1
- package/build-types/store/private-selectors.d.ts +0 -7
- package/build-types/store/private-selectors.d.ts.map +1 -1
- package/build-types/store/reducer.d.ts +0 -10
- package/build-types/store/reducer.d.ts.map +1 -1
- package/build-types/utils/media-finalize/index.d.ts +1 -1
- package/build-types/utils/media-finalize/index.d.ts.map +1 -1
- package/build-types/utils/media-upload/index.d.ts.map +1 -1
- package/package.json +46 -46
- package/src/components/collab-sidebar/README.md +117 -0
- package/src/components/collab-sidebar/{comment-menu-item.js → add-note-menu-item.js} +8 -10
- package/src/components/collab-sidebar/{add-comment.js → add-note.js} +20 -21
- package/src/components/collab-sidebar/board-store.js +4 -2
- package/src/components/collab-sidebar/floating-container.js +5 -4
- package/src/components/collab-sidebar/hooks.js +115 -175
- package/src/components/collab-sidebar/index.js +35 -95
- package/src/components/collab-sidebar/{comment-author-info.js → note-byline.js} +5 -6
- package/src/components/collab-sidebar/note-card.js +36 -0
- package/src/components/collab-sidebar/{comment-form.js → note-form.js} +25 -27
- package/src/components/collab-sidebar/{comment-indicator-toolbar.js → note-indicator-toolbar.js} +29 -32
- package/src/components/collab-sidebar/note-thread.js +331 -0
- package/src/components/collab-sidebar/note.js +209 -0
- package/src/components/collab-sidebar/notes.js +276 -0
- package/src/components/collab-sidebar/style.scss +21 -11
- package/src/components/collab-sidebar/test/utils.js +65 -63
- package/src/components/collab-sidebar/utils.js +33 -35
- package/src/components/document-bar/index.js +4 -4
- package/src/components/error-boundary/index.js +3 -3
- package/src/components/list-view-sidebar/list-view-outline.js +6 -6
- package/src/components/media/media-editor-modal.js +95 -0
- package/src/components/more-menu/index.js +3 -7
- package/src/components/post-actions/set-as-homepage.js +2 -2
- package/src/components/post-actions/set-as-posts-page.js +2 -2
- package/src/components/post-card-panel/index.js +7 -7
- package/src/components/post-content-information/index.js +3 -3
- package/src/components/post-excerpt/panel.js +3 -3
- package/src/components/post-last-edited-panel/index.js +3 -3
- package/src/components/post-preview-button/index.js +3 -2
- package/src/components/post-publish-button/index.js +6 -5
- package/src/components/post-publish-button/label.js +3 -1
- package/src/components/post-publish-panel/postpublish.js +2 -2
- package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +8 -14
- package/src/components/post-revisions-panel/index.js +3 -3
- package/src/components/post-revisions-preview/diff-markers.js +1 -1
- package/src/components/post-revisions-preview/revisions-slider.js +1 -0
- package/src/components/post-saved-state/index.js +4 -1
- package/src/components/post-saved-state/test/__snapshots__/index.js.snap +0 -1
- package/src/components/post-text-editor/index.js +3 -3
- package/src/components/preview-dropdown/index.js +2 -2
- package/src/components/provider/index.js +4 -0
- package/src/components/provider/use-block-editor-settings.js +10 -0
- package/src/components/provider/use-upload-save-lock.js +2 -17
- package/src/components/resizable-editor/resize-handle.js +2 -5
- package/src/components/revision-created-panel/index.js +3 -3
- package/src/components/site-discussion/index.js +3 -3
- package/src/components/template-actions-panel/classic-theme-content.js +3 -3
- package/src/components/template-part-menu-items/convert-to-regular.js +74 -12
- package/src/components/visual-editor/index.js +2 -29
- package/src/store/private-actions.js +0 -13
- package/src/store/private-selectors.js +0 -10
- package/src/store/reducer.js +0 -16
- package/src/utils/media-finalize/index.js +2 -1
- package/src/utils/media-finalize/test/index.js +25 -1
- package/src/utils/media-upload/index.js +26 -29
- package/build/components/collab-sidebar/add-comment.cjs.map +0 -7
- package/build/components/collab-sidebar/comment-author-info.cjs.map +0 -7
- package/build/components/collab-sidebar/comment-form.cjs.map +0 -7
- package/build/components/collab-sidebar/comment-indicator-toolbar.cjs.map +0 -7
- package/build/components/collab-sidebar/comment-menu-item.cjs.map +0 -7
- package/build/components/collab-sidebar/comments.cjs +0 -696
- package/build/components/collab-sidebar/comments.cjs.map +0 -7
- package/build-module/components/collab-sidebar/add-comment.mjs.map +0 -7
- package/build-module/components/collab-sidebar/comment-author-info.mjs.map +0 -7
- package/build-module/components/collab-sidebar/comment-form.mjs +0 -82
- package/build-module/components/collab-sidebar/comment-form.mjs.map +0 -7
- package/build-module/components/collab-sidebar/comment-indicator-toolbar.mjs.map +0 -7
- package/build-module/components/collab-sidebar/comment-menu-item.mjs.map +0 -7
- package/build-module/components/collab-sidebar/comments.mjs +0 -678
- package/build-module/components/collab-sidebar/comments.mjs.map +0 -7
- package/build-types/components/collab-sidebar/add-comment.d.ts +0 -6
- package/build-types/components/collab-sidebar/add-comment.d.ts.map +0 -1
- package/build-types/components/collab-sidebar/comment-author-info.d.ts +0 -8
- package/build-types/components/collab-sidebar/comment-author-info.d.ts.map +0 -1
- package/build-types/components/collab-sidebar/comment-form.d.ts +0 -9
- package/build-types/components/collab-sidebar/comment-form.d.ts.map +0 -1
- package/build-types/components/collab-sidebar/comment-indicator-toolbar.d.ts +0 -6
- package/build-types/components/collab-sidebar/comment-indicator-toolbar.d.ts.map +0 -1
- package/build-types/components/collab-sidebar/comment-menu-item.d.ts +0 -6
- package/build-types/components/collab-sidebar/comment-menu-item.d.ts.map +0 -1
- package/build-types/components/collab-sidebar/comments.d.ts +0 -10
- package/build-types/components/collab-sidebar/comments.d.ts.map +0 -1
- package/src/components/collab-sidebar/comments.js +0 -812
|
@@ -8,12 +8,10 @@ import TextareaAutosize from 'react-autosize-textarea';
|
|
|
8
8
|
*/
|
|
9
9
|
import { useState } from '@wordpress/element';
|
|
10
10
|
import {
|
|
11
|
-
__experimentalVStack as VStack,
|
|
12
|
-
__experimentalHStack as HStack,
|
|
13
11
|
__experimentalTruncate as Truncate,
|
|
14
12
|
Button,
|
|
15
|
-
VisuallyHidden,
|
|
16
13
|
} from '@wordpress/components';
|
|
14
|
+
import { Stack, VisuallyHidden } from '@wordpress/ui';
|
|
17
15
|
import { __ } from '@wordpress/i18n';
|
|
18
16
|
import { useInstanceId } from '@wordpress/compose';
|
|
19
17
|
import { isKeyboardEvent } from '@wordpress/keycodes';
|
|
@@ -21,37 +19,33 @@ import { isKeyboardEvent } from '@wordpress/keycodes';
|
|
|
21
19
|
/**
|
|
22
20
|
* Internal dependencies
|
|
23
21
|
*/
|
|
24
|
-
import {
|
|
22
|
+
import { sanitizeNoteContent } from './utils';
|
|
25
23
|
|
|
26
|
-
function
|
|
27
|
-
onSubmit,
|
|
28
|
-
onCancel,
|
|
29
|
-
thread,
|
|
30
|
-
submitButtonText,
|
|
31
|
-
labelText,
|
|
32
|
-
} ) {
|
|
24
|
+
export function NoteForm( { onSubmit, onCancel, note, labels } ) {
|
|
33
25
|
const [ inputComment, setInputComment ] = useState(
|
|
34
|
-
|
|
26
|
+
note?.content?.raw ?? ''
|
|
35
27
|
);
|
|
36
28
|
|
|
37
|
-
const inputId = useInstanceId(
|
|
29
|
+
const inputId = useInstanceId( NoteForm, 'comment-input' );
|
|
38
30
|
const isDisabled =
|
|
39
|
-
inputComment ===
|
|
40
|
-
!
|
|
31
|
+
inputComment === note?.content?.raw ||
|
|
32
|
+
! sanitizeNoteContent( inputComment ).length;
|
|
41
33
|
|
|
42
34
|
return (
|
|
43
|
-
<
|
|
44
|
-
className="editor-collab-sidebar-
|
|
45
|
-
|
|
46
|
-
|
|
35
|
+
<Stack
|
|
36
|
+
className="editor-collab-sidebar-panel__note-form"
|
|
37
|
+
direction="column"
|
|
38
|
+
gap="lg"
|
|
39
|
+
render={ <form /> }
|
|
47
40
|
onSubmit={ ( event ) => {
|
|
48
41
|
event.preventDefault();
|
|
49
42
|
onSubmit( inputComment );
|
|
50
43
|
setInputComment( '' );
|
|
51
44
|
} }
|
|
52
45
|
>
|
|
53
|
-
|
|
54
|
-
|
|
46
|
+
{ /* eslint-disable-next-line jsx-a11y/label-has-associated-control */ }
|
|
47
|
+
<VisuallyHidden render={ <label htmlFor={ inputId } /> }>
|
|
48
|
+
{ labels?.input ?? __( 'Note' ) }
|
|
55
49
|
</VisuallyHidden>
|
|
56
50
|
<TextareaAutosize
|
|
57
51
|
id={ inputId }
|
|
@@ -76,7 +70,13 @@ function CommentForm( {
|
|
|
76
70
|
}
|
|
77
71
|
} }
|
|
78
72
|
/>
|
|
79
|
-
<
|
|
73
|
+
<Stack
|
|
74
|
+
direction="row"
|
|
75
|
+
align="center"
|
|
76
|
+
justify="flex-end"
|
|
77
|
+
gap="sm"
|
|
78
|
+
wrap="wrap"
|
|
79
|
+
>
|
|
80
80
|
<Button size="compact" variant="tertiary" onClick={ onCancel }>
|
|
81
81
|
<Truncate>{ __( 'Cancel' ) }</Truncate>
|
|
82
82
|
</Button>
|
|
@@ -87,11 +87,9 @@ function CommentForm( {
|
|
|
87
87
|
type="submit"
|
|
88
88
|
disabled={ isDisabled }
|
|
89
89
|
>
|
|
90
|
-
<Truncate>{
|
|
90
|
+
<Truncate>{ labels?.submit ?? __( 'Add note' ) }</Truncate>
|
|
91
91
|
</Button>
|
|
92
|
-
</
|
|
93
|
-
</
|
|
92
|
+
</Stack>
|
|
93
|
+
</Stack>
|
|
94
94
|
);
|
|
95
95
|
}
|
|
96
|
-
|
|
97
|
-
export default CommentForm;
|
package/src/components/collab-sidebar/{comment-indicator-toolbar.js → note-indicator-toolbar.js}
RENAMED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
__experimentalText as Text,
|
|
7
|
-
__experimentalHStack as HStack,
|
|
8
|
-
} from '@wordpress/components';
|
|
4
|
+
import { ToolbarButton } from '@wordpress/components';
|
|
5
|
+
import { Stack } from '@wordpress/ui';
|
|
9
6
|
import { __, sprintf } from '@wordpress/i18n';
|
|
10
7
|
import { useMemo } from '@wordpress/element';
|
|
11
8
|
import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
@@ -16,38 +13,38 @@ import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
|
16
13
|
import { unlock } from '../../lock-unlock';
|
|
17
14
|
import { getAvatarBorderColor } from './utils';
|
|
18
15
|
|
|
19
|
-
const {
|
|
16
|
+
const { NoteIconToolbarSlotFill } = unlock( blockEditorPrivateApis );
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
export function NoteAvatarIndicator( { onClick, note } ) {
|
|
22
19
|
const threadParticipants = useMemo( () => {
|
|
23
|
-
if ( !
|
|
20
|
+
if ( ! note ) {
|
|
24
21
|
return [];
|
|
25
22
|
}
|
|
26
23
|
|
|
27
24
|
const participantsMap = new Map();
|
|
28
|
-
const
|
|
25
|
+
const allNotes = [ note, ...note.reply ];
|
|
29
26
|
|
|
30
27
|
// Sort by date to show participants in chronological order.
|
|
31
|
-
|
|
28
|
+
allNotes.sort( ( a, b ) => new Date( a.date ) - new Date( b.date ) );
|
|
32
29
|
|
|
33
|
-
|
|
34
|
-
// Track thread participants (original
|
|
35
|
-
if (
|
|
36
|
-
if ( ! participantsMap.has(
|
|
37
|
-
participantsMap.set(
|
|
38
|
-
name:
|
|
30
|
+
allNotes.forEach( ( entry ) => {
|
|
31
|
+
// Track thread participants (original author + repliers).
|
|
32
|
+
if ( entry.author_name && entry.author_avatar_urls ) {
|
|
33
|
+
if ( ! participantsMap.has( entry.author ) ) {
|
|
34
|
+
participantsMap.set( entry.author, {
|
|
35
|
+
name: entry.author_name,
|
|
39
36
|
avatar:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
id:
|
|
43
|
-
date:
|
|
37
|
+
entry.author_avatar_urls?.[ '48' ] ||
|
|
38
|
+
entry.author_avatar_urls?.[ '96' ],
|
|
39
|
+
id: entry.author,
|
|
40
|
+
date: entry.date,
|
|
44
41
|
} );
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
44
|
} );
|
|
48
45
|
|
|
49
46
|
return Array.from( participantsMap.values() );
|
|
50
|
-
}, [
|
|
47
|
+
}, [ note ] );
|
|
51
48
|
|
|
52
49
|
if ( ! threadParticipants.length ) {
|
|
53
50
|
return null;
|
|
@@ -65,7 +62,7 @@ const CommentAvatarIndicator = ( { onClick, thread } ) => {
|
|
|
65
62
|
);
|
|
66
63
|
const threadHasMoreParticipants = threadParticipants.length > 100;
|
|
67
64
|
|
|
68
|
-
// If we hit the
|
|
65
|
+
// If we hit the note limit, show "100+" instead of exact overflow count.
|
|
69
66
|
const overflowText =
|
|
70
67
|
threadHasMoreParticipants && overflowCount > 0
|
|
71
68
|
? __( '100+' )
|
|
@@ -76,20 +73,20 @@ const CommentAvatarIndicator = ( { onClick, thread } ) => {
|
|
|
76
73
|
);
|
|
77
74
|
|
|
78
75
|
return (
|
|
79
|
-
<
|
|
76
|
+
<NoteIconToolbarSlotFill.Fill>
|
|
80
77
|
<ToolbarButton
|
|
81
|
-
className="
|
|
78
|
+
className="editor-note-indicator"
|
|
82
79
|
label={ __( 'View notes' ) }
|
|
83
80
|
onClick={ () => onClick() }
|
|
84
81
|
showTooltip
|
|
85
82
|
>
|
|
86
|
-
<
|
|
83
|
+
<Stack direction="row" align="center" gap="xs">
|
|
87
84
|
{ visibleParticipants.map( ( participant ) => (
|
|
88
85
|
<img
|
|
89
86
|
key={ participant.id }
|
|
90
87
|
src={ participant.avatar }
|
|
91
88
|
alt={ participant.name }
|
|
92
|
-
className="
|
|
89
|
+
className="editor-note-indicator__avatar"
|
|
93
90
|
style={ {
|
|
94
91
|
borderColor: getAvatarBorderColor(
|
|
95
92
|
participant.id
|
|
@@ -98,12 +95,12 @@ const CommentAvatarIndicator = ( { onClick, thread } ) => {
|
|
|
98
95
|
/>
|
|
99
96
|
) ) }
|
|
100
97
|
{ overflowCount > 0 && (
|
|
101
|
-
<
|
|
98
|
+
<span className="editor-note-indicator__overflow">
|
|
99
|
+
{ overflowText }
|
|
100
|
+
</span>
|
|
102
101
|
) }
|
|
103
|
-
</
|
|
102
|
+
</Stack>
|
|
104
103
|
</ToolbarButton>
|
|
105
|
-
</
|
|
104
|
+
</NoteIconToolbarSlotFill.Fill>
|
|
106
105
|
);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export default CommentAvatarIndicator;
|
|
106
|
+
}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { useEffect, useRef } from '@wordpress/element';
|
|
10
|
+
import { Button } from '@wordpress/components';
|
|
11
|
+
import { Stack } from '@wordpress/ui';
|
|
12
|
+
import { useDebounce } from '@wordpress/compose';
|
|
13
|
+
import { __, _n, sprintf } from '@wordpress/i18n';
|
|
14
|
+
import { useDispatch } from '@wordpress/data';
|
|
15
|
+
import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
|
|
16
|
+
import {
|
|
17
|
+
store as blockEditorStore,
|
|
18
|
+
privateApis as blockEditorPrivateApis,
|
|
19
|
+
} from '@wordpress/block-editor';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Internal dependencies
|
|
23
|
+
*/
|
|
24
|
+
import { AddNote } from './add-note';
|
|
25
|
+
import { Note } from './note';
|
|
26
|
+
import { NoteCard } from './note-card';
|
|
27
|
+
import { NoteForm } from './note-form';
|
|
28
|
+
import { FloatingContainer } from './floating-container';
|
|
29
|
+
import { focusNoteThread, getNoteExcerpt } from './utils';
|
|
30
|
+
import { store as editorStore } from '../../store';
|
|
31
|
+
import { unlock } from '../../lock-unlock';
|
|
32
|
+
|
|
33
|
+
const { useBlockElement } = unlock( blockEditorPrivateApis );
|
|
34
|
+
|
|
35
|
+
export function NoteThread( {
|
|
36
|
+
note,
|
|
37
|
+
onEditNote,
|
|
38
|
+
onAddReply,
|
|
39
|
+
onDeleteNote,
|
|
40
|
+
isSelected,
|
|
41
|
+
sidebarRef,
|
|
42
|
+
floating,
|
|
43
|
+
onKeyDown,
|
|
44
|
+
} ) {
|
|
45
|
+
const isFloating = !! floating;
|
|
46
|
+
const { toggleBlockHighlight, selectBlock, toggleBlockSpotlight } = unlock(
|
|
47
|
+
useDispatch( blockEditorStore )
|
|
48
|
+
);
|
|
49
|
+
const { selectNote } = unlock( useDispatch( editorStore ) );
|
|
50
|
+
const relatedBlockElement = useBlockElement( note.blockClientId );
|
|
51
|
+
const debouncedToggleBlockHighlight = useDebounce(
|
|
52
|
+
toggleBlockHighlight,
|
|
53
|
+
50
|
|
54
|
+
);
|
|
55
|
+
const floatingRef = useRef( null );
|
|
56
|
+
const isKeyboardTabbingRef = useRef( false );
|
|
57
|
+
|
|
58
|
+
const registerThread = floating?.registerThread;
|
|
59
|
+
const unregisterThread = floating?.unregisterThread;
|
|
60
|
+
|
|
61
|
+
// Register block + floating elements with the board.
|
|
62
|
+
// The board's ResizeObserver and autoUpdate track changes automatically.
|
|
63
|
+
useEffect( () => {
|
|
64
|
+
const floatingEl = floatingRef.current;
|
|
65
|
+
if ( floatingEl && registerThread ) {
|
|
66
|
+
registerThread( note.id, relatedBlockElement, floatingEl );
|
|
67
|
+
}
|
|
68
|
+
return () => unregisterThread?.( note.id );
|
|
69
|
+
}, [ relatedBlockElement, note.id, registerThread, unregisterThread ] );
|
|
70
|
+
|
|
71
|
+
const onMouseEnter = () => {
|
|
72
|
+
debouncedToggleBlockHighlight( note.blockClientId, true );
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const onMouseLeave = () => {
|
|
76
|
+
debouncedToggleBlockHighlight( note.blockClientId, false );
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
const onFocus = () => {
|
|
80
|
+
toggleBlockHighlight( note.blockClientId, true );
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const onBlur = ( event ) => {
|
|
84
|
+
// Don't deselect notes when the browser window/tab loses focus.
|
|
85
|
+
if ( ! document.hasFocus() ) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const isNoteFocused = event.relatedTarget?.closest(
|
|
90
|
+
'.editor-collab-sidebar-panel__thread'
|
|
91
|
+
);
|
|
92
|
+
const isDialogFocused =
|
|
93
|
+
event.relatedTarget?.closest( '[role="dialog"]' );
|
|
94
|
+
const isTabbing = isKeyboardTabbingRef.current;
|
|
95
|
+
|
|
96
|
+
// When another note is clicked, do nothing because the current note is automatically closed.
|
|
97
|
+
if ( isNoteFocused && ! isTabbing ) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
// When deleting a note, a dialog appears, but the note should not be collapsed.
|
|
101
|
+
if ( isDialogFocused ) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
// When tabbing, do nothing if the focus is within the current note.
|
|
105
|
+
if (
|
|
106
|
+
isTabbing &&
|
|
107
|
+
event.currentTarget.contains( event.relatedTarget )
|
|
108
|
+
) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Closes a note that has lost focus when any of the following conditions are met:
|
|
113
|
+
// - An element other than a note is clicked.
|
|
114
|
+
// - Focus was lost by tabbing.
|
|
115
|
+
toggleBlockHighlight( note.blockClientId, false );
|
|
116
|
+
unselectNote();
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
const handleNoteSelect = () => {
|
|
120
|
+
selectNote( note.id );
|
|
121
|
+
toggleBlockSpotlight( note.blockClientId, true );
|
|
122
|
+
if ( !! note.blockClientId ) {
|
|
123
|
+
// Pass `null` as the second parameter to prevent focusing the block.
|
|
124
|
+
selectBlock( note.blockClientId, null );
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
const unselectNote = () => {
|
|
129
|
+
selectNote( undefined );
|
|
130
|
+
toggleBlockSpotlight( note.blockClientId, false );
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
const handleResolve = () => {
|
|
134
|
+
onEditNote( { id: note.id, status: 'approved' } );
|
|
135
|
+
unselectNote();
|
|
136
|
+
if ( isFloating ) {
|
|
137
|
+
relatedBlockElement?.focus();
|
|
138
|
+
} else {
|
|
139
|
+
focusNoteThread( note.id, sidebarRef.current );
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
const allReplies = note?.reply || [];
|
|
144
|
+
const lastReply =
|
|
145
|
+
allReplies.length > 0 ? allReplies[ allReplies.length - 1 ] : undefined;
|
|
146
|
+
const restReplies = allReplies.length > 0 ? allReplies.slice( 0, -1 ) : [];
|
|
147
|
+
|
|
148
|
+
const noteExcerpt = getNoteExcerpt(
|
|
149
|
+
stripHTML( note.content?.rendered ),
|
|
150
|
+
10
|
|
151
|
+
);
|
|
152
|
+
const ariaLabel = !! note.blockClientId
|
|
153
|
+
? sprintf(
|
|
154
|
+
// translators: %s: note excerpt
|
|
155
|
+
__( 'Note: %s' ),
|
|
156
|
+
noteExcerpt
|
|
157
|
+
)
|
|
158
|
+
: sprintf(
|
|
159
|
+
// translators: %s: note excerpt
|
|
160
|
+
__( 'Original block deleted. Note: %s' ),
|
|
161
|
+
noteExcerpt
|
|
162
|
+
);
|
|
163
|
+
|
|
164
|
+
if ( isFloating && note.id === 'new' ) {
|
|
165
|
+
return (
|
|
166
|
+
<AddNote
|
|
167
|
+
onSubmit={ onAddReply }
|
|
168
|
+
sidebarRef={ sidebarRef }
|
|
169
|
+
floating={ { y: floating.y, ref: floatingRef } }
|
|
170
|
+
/>
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return (
|
|
175
|
+
<FloatingContainer
|
|
176
|
+
floating={
|
|
177
|
+
isFloating ? { y: floating.y, ref: floatingRef } : undefined
|
|
178
|
+
}
|
|
179
|
+
className={ clsx( 'editor-collab-sidebar-panel__thread', {
|
|
180
|
+
'is-selected': isSelected,
|
|
181
|
+
} ) }
|
|
182
|
+
id={ `note-thread-${ note.id }` }
|
|
183
|
+
gap="md"
|
|
184
|
+
onClick={ handleNoteSelect }
|
|
185
|
+
onMouseEnter={ onMouseEnter }
|
|
186
|
+
onMouseLeave={ onMouseLeave }
|
|
187
|
+
onFocus={ onFocus }
|
|
188
|
+
onBlur={ onBlur }
|
|
189
|
+
onKeyUp={ ( event ) => {
|
|
190
|
+
if ( event.key === 'Tab' ) {
|
|
191
|
+
isKeyboardTabbingRef.current = false;
|
|
192
|
+
}
|
|
193
|
+
} }
|
|
194
|
+
onKeyDown={ ( event ) => {
|
|
195
|
+
if ( event.key === 'Tab' ) {
|
|
196
|
+
isKeyboardTabbingRef.current = true;
|
|
197
|
+
} else {
|
|
198
|
+
onKeyDown( event );
|
|
199
|
+
}
|
|
200
|
+
} }
|
|
201
|
+
tabIndex={ 0 }
|
|
202
|
+
role="treeitem"
|
|
203
|
+
aria-label={ ariaLabel }
|
|
204
|
+
aria-expanded={ isSelected }
|
|
205
|
+
>
|
|
206
|
+
<Button
|
|
207
|
+
className="editor-collab-sidebar-panel__skip-to-note"
|
|
208
|
+
variant="secondary"
|
|
209
|
+
size="compact"
|
|
210
|
+
onClick={ () => {
|
|
211
|
+
focusNoteThread( note.id, sidebarRef.current, 'textarea' );
|
|
212
|
+
} }
|
|
213
|
+
>
|
|
214
|
+
{ __( 'Add new reply' ) }
|
|
215
|
+
</Button>
|
|
216
|
+
{ ! note.blockClientId && (
|
|
217
|
+
<p className="editor-collab-sidebar-panel__deleted-block-notice">
|
|
218
|
+
{ __( 'Original block deleted.' ) }
|
|
219
|
+
</p>
|
|
220
|
+
) }
|
|
221
|
+
<Note
|
|
222
|
+
note={ note }
|
|
223
|
+
isSelected={ isSelected }
|
|
224
|
+
onEditNote={ onEditNote }
|
|
225
|
+
onDeleteNote={ onDeleteNote }
|
|
226
|
+
onResolve={ handleResolve }
|
|
227
|
+
/>
|
|
228
|
+
{ isSelected &&
|
|
229
|
+
allReplies.map( ( reply ) => (
|
|
230
|
+
<Note
|
|
231
|
+
key={ reply.id }
|
|
232
|
+
note={ reply }
|
|
233
|
+
parentNote={ note }
|
|
234
|
+
isSelected={ isSelected }
|
|
235
|
+
onEditNote={ onEditNote }
|
|
236
|
+
onDeleteNote={ onDeleteNote }
|
|
237
|
+
/>
|
|
238
|
+
) ) }
|
|
239
|
+
{ ! isSelected && restReplies.length > 0 && (
|
|
240
|
+
<Stack
|
|
241
|
+
direction="row"
|
|
242
|
+
align="center"
|
|
243
|
+
justify="space-between"
|
|
244
|
+
className="editor-collab-sidebar-panel__more-reply-separator"
|
|
245
|
+
>
|
|
246
|
+
<Button
|
|
247
|
+
size="compact"
|
|
248
|
+
variant="tertiary"
|
|
249
|
+
className="editor-collab-sidebar-panel__more-reply-button"
|
|
250
|
+
onClick={ () => {
|
|
251
|
+
selectNote( note.id );
|
|
252
|
+
focusNoteThread( note.id, sidebarRef.current );
|
|
253
|
+
} }
|
|
254
|
+
>
|
|
255
|
+
{ sprintf(
|
|
256
|
+
// translators: %s: number of replies.
|
|
257
|
+
_n(
|
|
258
|
+
'%s more reply',
|
|
259
|
+
'%s more replies',
|
|
260
|
+
restReplies.length
|
|
261
|
+
),
|
|
262
|
+
restReplies.length
|
|
263
|
+
) }
|
|
264
|
+
</Button>
|
|
265
|
+
</Stack>
|
|
266
|
+
) }
|
|
267
|
+
{ ! isSelected && lastReply && (
|
|
268
|
+
<Note
|
|
269
|
+
note={ lastReply }
|
|
270
|
+
parentNote={ note }
|
|
271
|
+
isSelected={ false }
|
|
272
|
+
onEditNote={ onEditNote }
|
|
273
|
+
onDeleteNote={ onDeleteNote }
|
|
274
|
+
/>
|
|
275
|
+
) }
|
|
276
|
+
{ isSelected && (
|
|
277
|
+
<NoteCard role="treeitem">
|
|
278
|
+
<NoteForm
|
|
279
|
+
onSubmit={ ( inputComment ) => {
|
|
280
|
+
if ( 'approved' === note.status ) {
|
|
281
|
+
// For reopening, include the content in the reopen action.
|
|
282
|
+
onEditNote( {
|
|
283
|
+
id: note.id,
|
|
284
|
+
status: 'hold',
|
|
285
|
+
content: inputComment,
|
|
286
|
+
} );
|
|
287
|
+
} else {
|
|
288
|
+
// For regular replies, add as separate comment.
|
|
289
|
+
onAddReply( {
|
|
290
|
+
content: inputComment,
|
|
291
|
+
parent: note.id,
|
|
292
|
+
} );
|
|
293
|
+
}
|
|
294
|
+
} }
|
|
295
|
+
onCancel={ ( event ) => {
|
|
296
|
+
// Prevent the parent onClick from being triggered.
|
|
297
|
+
event.stopPropagation();
|
|
298
|
+
unselectNote();
|
|
299
|
+
focusNoteThread( note.id, sidebarRef.current );
|
|
300
|
+
} }
|
|
301
|
+
labels={ {
|
|
302
|
+
submit:
|
|
303
|
+
'approved' === note.status
|
|
304
|
+
? __( 'Reopen & Reply' )
|
|
305
|
+
: __( 'Reply' ),
|
|
306
|
+
input: sprintf(
|
|
307
|
+
// translators: %1$s: note identifier, %2$s: author name
|
|
308
|
+
__( 'Reply to note %1$s by %2$s' ),
|
|
309
|
+
note.id,
|
|
310
|
+
note.author_name
|
|
311
|
+
),
|
|
312
|
+
} }
|
|
313
|
+
/>
|
|
314
|
+
</NoteCard>
|
|
315
|
+
) }
|
|
316
|
+
{ !! note.blockClientId && (
|
|
317
|
+
<Button
|
|
318
|
+
className="editor-collab-sidebar-panel__skip-to-block"
|
|
319
|
+
variant="secondary"
|
|
320
|
+
size="compact"
|
|
321
|
+
onClick={ ( event ) => {
|
|
322
|
+
event.stopPropagation();
|
|
323
|
+
relatedBlockElement?.focus();
|
|
324
|
+
} }
|
|
325
|
+
>
|
|
326
|
+
{ __( 'Back to block' ) }
|
|
327
|
+
</Button>
|
|
328
|
+
) }
|
|
329
|
+
</FloatingContainer>
|
|
330
|
+
);
|
|
331
|
+
}
|