@wordpress/editor 14.44.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-note.cjs +100 -0
- package/build/components/collab-sidebar/add-note.cjs.map +7 -0
- package/build/components/collab-sidebar/board-store.cjs +106 -0
- package/build/components/collab-sidebar/board-store.cjs.map +7 -0
- package/build/components/collab-sidebar/floating-container.cjs +63 -0
- package/build/components/collab-sidebar/floating-container.cjs.map +7 -0
- package/build/components/collab-sidebar/hooks.cjs +105 -140
- package/build/components/collab-sidebar/hooks.cjs.map +3 -3
- package/build/components/collab-sidebar/index.cjs +28 -90
- 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} +46 -45
- 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 +80 -14
- package/build/components/collab-sidebar/utils.cjs.map +2 -2
- package/build/components/collaborators-presence/avatar/component.cjs.map +1 -1
- package/build/components/collaborators-presence/index.cjs +3 -3
- package/build/components/collaborators-presence/index.cjs.map +2 -2
- package/build/components/collaborators-presence/list.cjs +3 -3
- package/build/components/collaborators-presence/list.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/media-categories/index.cjs +1 -1
- package/build/components/media-categories/index.cjs.map +1 -1
- package/build/components/more-menu/index.cjs +4 -3
- 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/maybe-upload-media.cjs +1 -1
- package/build/components/post-publish-panel/maybe-upload-media.cjs.map +1 -1
- 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/style-book/constants.cjs +1 -1
- package/build/components/style-book/constants.cjs.map +1 -1
- package/build/components/style-book/index.cjs +1 -1
- package/build/components/style-book/index.cjs.map +1 -1
- 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-note.mjs +78 -0
- package/build-module/components/collab-sidebar/add-note.mjs.map +7 -0
- package/build-module/components/collab-sidebar/board-store.mjs +81 -0
- package/build-module/components/collab-sidebar/board-store.mjs.map +7 -0
- package/build-module/components/collab-sidebar/floating-container.mjs +28 -0
- package/build-module/components/collab-sidebar/floating-container.mjs.map +7 -0
- package/build-module/components/collab-sidebar/hooks.mjs +105 -144
- package/build-module/components/collab-sidebar/hooks.mjs.map +2 -2
- package/build-module/components/collab-sidebar/index.mjs +29 -95
- 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 +76 -10
- package/build-module/components/collab-sidebar/utils.mjs.map +2 -2
- package/build-module/components/collaborators-presence/avatar/component.mjs.map +1 -1
- package/build-module/components/collaborators-presence/index.mjs +3 -3
- package/build-module/components/collaborators-presence/index.mjs.map +2 -2
- package/build-module/components/collaborators-presence/list.mjs +3 -3
- package/build-module/components/collaborators-presence/list.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/media-categories/index.mjs +1 -1
- package/build-module/components/media-categories/index.mjs.map +1 -1
- package/build-module/components/more-menu/index.mjs +4 -8
- 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/maybe-upload-media.mjs +1 -1
- package/build-module/components/post-publish-panel/maybe-upload-media.mjs.map +1 -1
- 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/style-book/constants.mjs +1 -1
- package/build-module/components/style-book/constants.mjs.map +1 -1
- package/build-module/components/style-book/index.mjs +1 -1
- package/build-module/components/style-book/index.mjs.map +1 -1
- 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 +397 -171
- package/build-style/style.css +397 -171
- 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 +9 -0
- package/build-types/components/collab-sidebar/board-store.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/floating-container.d.ts +8 -0
- package/build-types/components/collab-sidebar/floating-container.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/hooks.d.ts +13 -22
- 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 +41 -17
- 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/style-book/constants.d.ts +1 -1
- package/build-types/components/style-book/constants.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} +26 -49
- package/src/components/collab-sidebar/board-store.js +85 -0
- package/src/components/collab-sidebar/floating-container.js +30 -0
- package/src/components/collab-sidebar/hooks.js +130 -178
- package/src/components/collab-sidebar/index.js +35 -106
- 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} +29 -40
- 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 +155 -0
- package/src/components/collab-sidebar/utils.js +125 -19
- package/src/components/collaborators-presence/avatar/component.tsx +1 -1
- package/src/components/collaborators-presence/styles/collaborators-list.scss +1 -1
- package/src/components/collaborators-presence/styles/collaborators-presence.scss +1 -1
- package/src/components/document-bar/index.js +4 -4
- package/src/components/document-outline/style.scss +1 -1
- 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/media-categories/index.js +1 -1
- package/src/components/more-menu/index.js +4 -8
- 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/maybe-upload-media.js +1 -1
- package/src/components/post-publish-panel/postpublish.js +2 -2
- package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +10 -16
- 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-revisions-preview/style.scss +1 -1
- 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/style-book/constants.ts +1 -1
- package/src/components/style-book/index.js +1 -1
- package/src/components/template-actions-panel/classic-theme-content.js +3 -3
- package/src/components/template-actions-panel/style.scss +1 -1
- 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 +0 -129
- 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 -816
- package/build/components/collab-sidebar/comments.cjs.map +0 -7
- package/build-module/components/collab-sidebar/add-comment.mjs +0 -100
- 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 -90
- 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 -799
- package/build-module/components/collab-sidebar/comments.mjs.map +0 -7
- package/build-types/components/collab-sidebar/add-comment.d.ts +0 -10
- 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 -11
- 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 -12
- package/build-types/components/collab-sidebar/comments.d.ts.map +0 -1
- package/src/components/collab-sidebar/comments.js +0 -985
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import {
|
|
5
|
-
useFloating,
|
|
6
|
-
offset as offsetMiddleware,
|
|
7
|
-
autoUpdate,
|
|
8
|
-
} from '@floating-ui/react-dom';
|
|
9
|
-
|
|
10
1
|
/**
|
|
11
2
|
* WordPress dependencies
|
|
12
3
|
*/
|
|
13
4
|
import { __ } from '@wordpress/i18n';
|
|
14
5
|
import {
|
|
6
|
+
useState,
|
|
15
7
|
useEffect,
|
|
16
8
|
useMemo,
|
|
17
|
-
|
|
18
|
-
useReducer,
|
|
9
|
+
useSyncExternalStore,
|
|
19
10
|
} from '@wordpress/element';
|
|
20
11
|
import { useEntityRecords, store as coreStore } from '@wordpress/core-data';
|
|
21
12
|
import { useDispatch, useRegistry, useSelect } from '@wordpress/data';
|
|
@@ -24,6 +15,7 @@ import {
|
|
|
24
15
|
privateApis as blockEditorPrivateApis,
|
|
25
16
|
} from '@wordpress/block-editor';
|
|
26
17
|
import { store as noticesStore } from '@wordpress/notices';
|
|
18
|
+
import { getScrollContainer } from '@wordpress/dom';
|
|
27
19
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
28
20
|
import { store as interfaceStore } from '@wordpress/interface';
|
|
29
21
|
|
|
@@ -33,16 +25,12 @@ import { store as interfaceStore } from '@wordpress/interface';
|
|
|
33
25
|
import { store as editorStore } from '../../store';
|
|
34
26
|
import { FLOATING_NOTES_SIDEBAR } from './constants';
|
|
35
27
|
import { unlock } from '../../lock-unlock';
|
|
36
|
-
import {
|
|
28
|
+
import { createBoardStore } from './board-store';
|
|
29
|
+
import { calculateNotePositions } from './utils';
|
|
37
30
|
|
|
38
|
-
const {
|
|
39
|
-
|
|
40
|
-
export function useBlockComments( postId ) {
|
|
41
|
-
const [ commentLastUpdated, reflowComments ] = useReducer(
|
|
42
|
-
() => Date.now(),
|
|
43
|
-
0
|
|
44
|
-
);
|
|
31
|
+
const { cleanEmptyObject } = unlock( blockEditorPrivateApis );
|
|
45
32
|
|
|
33
|
+
export function useNoteThreads( postId ) {
|
|
46
34
|
const queryArgs = {
|
|
47
35
|
post: postId,
|
|
48
36
|
type: 'note',
|
|
@@ -65,112 +53,89 @@ export function useBlockComments( postId ) {
|
|
|
65
53
|
};
|
|
66
54
|
}, [] );
|
|
67
55
|
|
|
68
|
-
// Process
|
|
69
|
-
const {
|
|
56
|
+
// Process notes to build the tree structure.
|
|
57
|
+
const { notes, unresolvedNotes } = useMemo( () => {
|
|
70
58
|
if ( ! threads || threads.length === 0 ) {
|
|
71
|
-
return {
|
|
59
|
+
return { notes: [], unresolvedNotes: [] };
|
|
72
60
|
}
|
|
73
61
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
62
|
+
// Single pass over clientIds: build clientId->noteId map AND reverse lookup.
|
|
63
|
+
const blocksWithNotes = {};
|
|
64
|
+
const clientIdByNoteId = new Map();
|
|
65
|
+
for ( const clientId of clientIds ) {
|
|
66
|
+
const noteId = getBlockAttributes( clientId )?.metadata?.noteId;
|
|
67
|
+
if ( noteId ) {
|
|
68
|
+
const key = String( noteId );
|
|
69
|
+
blocksWithNotes[ clientId ] = key;
|
|
70
|
+
clientIdByNoteId.set( key, clientId );
|
|
78
71
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
//
|
|
83
|
-
const
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const commentIdToBlockClientId = Object.keys(
|
|
88
|
-
blocksWithComments
|
|
89
|
-
).reduce( ( mapping, clientId ) => {
|
|
90
|
-
mapping[ blocksWithComments[ clientId ] ] = clientId;
|
|
91
|
-
return mapping;
|
|
92
|
-
}, {} );
|
|
93
|
-
|
|
94
|
-
// Initialize each object with an empty `reply` array and map blockClientId.
|
|
95
|
-
threads.forEach( ( item ) => {
|
|
96
|
-
const itemBlock = commentIdToBlockClientId[ item.id ];
|
|
97
|
-
|
|
98
|
-
compare[ item.id ] = {
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Materialize threads; collect roots; replies linked in a second pass
|
|
75
|
+
// via unshift to invert order (matches prior reverse semantics).
|
|
76
|
+
const threadsById = new Map();
|
|
77
|
+
const rootThreads = [];
|
|
78
|
+
for ( const item of threads ) {
|
|
79
|
+
const thread = {
|
|
99
80
|
...item,
|
|
100
81
|
reply: [],
|
|
101
|
-
blockClientId:
|
|
82
|
+
blockClientId:
|
|
83
|
+
item.parent === 0
|
|
84
|
+
? clientIdByNoteId.get( String( item.id ) ) ?? null
|
|
85
|
+
: null,
|
|
102
86
|
};
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
// Iterate over the data to build the tree structure.
|
|
106
|
-
threads.forEach( ( item ) => {
|
|
87
|
+
threadsById.set( item.id, thread );
|
|
107
88
|
if ( item.parent === 0 ) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
89
|
+
rootThreads.push( thread );
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
for ( const item of threads ) {
|
|
93
|
+
if ( item.parent !== 0 ) {
|
|
94
|
+
threadsById
|
|
95
|
+
.get( item.parent )
|
|
96
|
+
?.reply.unshift( threadsById.get( item.id ) );
|
|
113
97
|
}
|
|
114
|
-
} );
|
|
115
|
-
|
|
116
|
-
if ( 0 === result?.length ) {
|
|
117
|
-
return { resultComments: [], unresolvedSortedThreads: [] };
|
|
118
98
|
}
|
|
119
99
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
} ) );
|
|
124
|
-
|
|
125
|
-
const threadIdMap = new Map(
|
|
126
|
-
updatedResult.map( ( thread ) => [ String( thread.id ), thread ] )
|
|
127
|
-
);
|
|
128
|
-
|
|
129
|
-
// Prepare sets to determine which threads are linked to existing blocks.
|
|
130
|
-
const mappedIds = new Set(
|
|
131
|
-
Object.values( blocksWithComments ).map( ( id ) => String( id ) )
|
|
132
|
-
);
|
|
133
|
-
|
|
134
|
-
// Get comments by block order, first unresolved, then resolved.
|
|
135
|
-
const unresolvedSortedComments = Object.values( blocksWithComments )
|
|
136
|
-
.map( ( commentId ) => threadIdMap.get( String( commentId ) ) )
|
|
137
|
-
.filter(
|
|
138
|
-
( thread ) => thread !== undefined && thread.status === 'hold'
|
|
139
|
-
);
|
|
100
|
+
if ( rootThreads.length === 0 ) {
|
|
101
|
+
return { notes: [], unresolvedNotes: [] };
|
|
102
|
+
}
|
|
140
103
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
104
|
+
// Single partition over notes-in-block-order.
|
|
105
|
+
const unresolved = [];
|
|
106
|
+
const resolved = [];
|
|
107
|
+
for ( const noteId of Object.values( blocksWithNotes ) ) {
|
|
108
|
+
const thread =
|
|
109
|
+
threadsById.get( Number( noteId ) ) ??
|
|
110
|
+
threadsById.get( noteId );
|
|
111
|
+
if ( ! thread ) {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if ( thread.status === 'hold' ) {
|
|
115
|
+
unresolved.push( thread );
|
|
116
|
+
} else if ( thread.status === 'approved' ) {
|
|
117
|
+
resolved.push( thread );
|
|
118
|
+
}
|
|
119
|
+
}
|
|
147
120
|
|
|
148
|
-
//
|
|
149
|
-
const
|
|
150
|
-
( thread ) => !
|
|
121
|
+
// Orphans: root threads without a linked block. They only need to come last.
|
|
122
|
+
const orphans = rootThreads.filter(
|
|
123
|
+
( thread ) => ! thread.blockClientId
|
|
151
124
|
);
|
|
152
125
|
|
|
153
|
-
const allSortedComments = [
|
|
154
|
-
...unresolvedSortedComments,
|
|
155
|
-
...resolvedSortedComments,
|
|
156
|
-
...orphanedComments,
|
|
157
|
-
];
|
|
158
|
-
|
|
159
126
|
return {
|
|
160
|
-
|
|
161
|
-
|
|
127
|
+
notes: [ ...unresolved, ...resolved, ...orphans ],
|
|
128
|
+
unresolvedNotes: unresolved,
|
|
162
129
|
};
|
|
163
130
|
}, [ clientIds, threads, getBlockAttributes ] );
|
|
164
131
|
|
|
165
132
|
return {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
reflowComments,
|
|
169
|
-
commentLastUpdated,
|
|
133
|
+
notes,
|
|
134
|
+
unresolvedNotes,
|
|
170
135
|
};
|
|
171
136
|
}
|
|
172
137
|
|
|
173
|
-
export function
|
|
138
|
+
export function useNoteActions() {
|
|
174
139
|
const { createNotice } = useDispatch( noticesStore );
|
|
175
140
|
const { saveEntityRecord, deleteEntityRecord } = useDispatch( coreStore );
|
|
176
141
|
const { getCurrentPostId } = useSelect( editorStore );
|
|
@@ -204,7 +169,7 @@ export function useBlockCommentsActions( reflowComments = noop ) {
|
|
|
204
169
|
{ throwOnError: true }
|
|
205
170
|
);
|
|
206
171
|
|
|
207
|
-
// If it's a
|
|
172
|
+
// If it's a top-level note, update the block attributes with the note id.
|
|
208
173
|
if ( ! parent && savedRecord?.id ) {
|
|
209
174
|
const clientId = getSelectedBlockClientId();
|
|
210
175
|
const metadata = getBlockAttributes( clientId )?.metadata;
|
|
@@ -224,10 +189,8 @@ export function useBlockCommentsActions( reflowComments = noop ) {
|
|
|
224
189
|
isDismissible: true,
|
|
225
190
|
}
|
|
226
191
|
);
|
|
227
|
-
setTimeout( reflowComments, 300 );
|
|
228
192
|
return savedRecord;
|
|
229
193
|
} catch ( error ) {
|
|
230
|
-
reflowComments();
|
|
231
194
|
onError( error );
|
|
232
195
|
}
|
|
233
196
|
};
|
|
@@ -256,8 +219,8 @@ export function useBlockCommentsActions( reflowComments = noop ) {
|
|
|
256
219
|
}
|
|
257
220
|
);
|
|
258
221
|
|
|
259
|
-
// Then create a new
|
|
260
|
-
const
|
|
222
|
+
// Then create a new note with the metadata.
|
|
223
|
+
const newNoteData = {
|
|
261
224
|
post: getCurrentPostId(),
|
|
262
225
|
content: content || '', // Empty content for resolve, content for reopen.
|
|
263
226
|
type: 'note',
|
|
@@ -269,7 +232,7 @@ export function useBlockCommentsActions( reflowComments = noop ) {
|
|
|
269
232
|
},
|
|
270
233
|
};
|
|
271
234
|
|
|
272
|
-
await saveEntityRecord( 'root', 'comment',
|
|
235
|
+
await saveEntityRecord( 'root', 'comment', newNoteData, {
|
|
273
236
|
throwOnError: true,
|
|
274
237
|
} );
|
|
275
238
|
} else {
|
|
@@ -292,26 +255,18 @@ export function useBlockCommentsActions( reflowComments = noop ) {
|
|
|
292
255
|
isDismissible: true,
|
|
293
256
|
}
|
|
294
257
|
);
|
|
295
|
-
reflowComments();
|
|
296
258
|
} catch ( error ) {
|
|
297
|
-
reflowComments();
|
|
298
259
|
onError( error );
|
|
299
260
|
}
|
|
300
261
|
};
|
|
301
262
|
|
|
302
|
-
const onDelete = async (
|
|
263
|
+
const onDelete = async ( note ) => {
|
|
303
264
|
try {
|
|
304
|
-
await deleteEntityRecord(
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
comment.id,
|
|
308
|
-
undefined,
|
|
309
|
-
{
|
|
310
|
-
throwOnError: true,
|
|
311
|
-
}
|
|
312
|
-
);
|
|
265
|
+
await deleteEntityRecord( 'root', 'comment', note.id, undefined, {
|
|
266
|
+
throwOnError: true,
|
|
267
|
+
} );
|
|
313
268
|
|
|
314
|
-
if ( !
|
|
269
|
+
if ( ! note.parent ) {
|
|
315
270
|
const clientId = getSelectedBlockClientId();
|
|
316
271
|
const metadata = getBlockAttributes( clientId )?.metadata;
|
|
317
272
|
updateBlockAttributes( clientId, {
|
|
@@ -326,9 +281,7 @@ export function useBlockCommentsActions( reflowComments = noop ) {
|
|
|
326
281
|
type: 'snackbar',
|
|
327
282
|
isDismissible: true,
|
|
328
283
|
} );
|
|
329
|
-
reflowComments();
|
|
330
284
|
} catch ( error ) {
|
|
331
|
-
reflowComments();
|
|
332
285
|
onError( error );
|
|
333
286
|
}
|
|
334
287
|
};
|
|
@@ -366,68 +319,67 @@ export function useEnableFloatingSidebar( enabled = false ) {
|
|
|
366
319
|
}, [ enabled, registry ] );
|
|
367
320
|
}
|
|
368
321
|
|
|
369
|
-
export function
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
setBlockRef,
|
|
375
|
-
commentLastUpdated,
|
|
322
|
+
export function useFloatingBoard( {
|
|
323
|
+
threads,
|
|
324
|
+
selectedNoteId,
|
|
325
|
+
isFloating,
|
|
326
|
+
sidebarRef,
|
|
376
327
|
} ) {
|
|
377
|
-
const
|
|
378
|
-
const
|
|
379
|
-
( id, newHeight ) => {
|
|
380
|
-
setHeights( ( prev ) => {
|
|
381
|
-
if ( prev[ id ] !== newHeight ) {
|
|
382
|
-
return { ...prev, [ id ]: newHeight };
|
|
383
|
-
}
|
|
384
|
-
return prev;
|
|
385
|
-
} );
|
|
386
|
-
},
|
|
387
|
-
[ setHeights ]
|
|
388
|
-
);
|
|
328
|
+
const [ notePositions, setNotePositions ] = useState( {} );
|
|
329
|
+
const [ store ] = useState( createBoardStore );
|
|
389
330
|
|
|
390
|
-
|
|
391
|
-
const { y, refs } = useFloating( {
|
|
392
|
-
placement: 'right-start',
|
|
393
|
-
middleware: [
|
|
394
|
-
offsetMiddleware( {
|
|
395
|
-
crossAxis: calculatedOffset || -16,
|
|
396
|
-
} ),
|
|
397
|
-
],
|
|
398
|
-
whileElementsMounted: autoUpdate,
|
|
399
|
-
} );
|
|
400
|
-
|
|
401
|
-
// Store the block reference for each thread.
|
|
402
|
-
useEffect( () => {
|
|
403
|
-
if ( blockElement ) {
|
|
404
|
-
refs.setReference( blockElement );
|
|
405
|
-
}
|
|
406
|
-
}, [ blockElement, refs, commentLastUpdated ] );
|
|
331
|
+
const heights = useSyncExternalStore( store.subscribe, store.getSnapshot );
|
|
407
332
|
|
|
408
|
-
//
|
|
333
|
+
// Notes are positioned in canvas content-space; CSS inherits
|
|
334
|
+
// `--canvas-scroll` to translate each thread in sync with the canvas.
|
|
409
335
|
useEffect( () => {
|
|
410
|
-
if (
|
|
411
|
-
|
|
336
|
+
if ( ! isFloating || ! sidebarRef?.current ) {
|
|
337
|
+
return;
|
|
412
338
|
}
|
|
413
|
-
}, [ blockElement, thread.id, refs.floating, setBlockRef ] );
|
|
414
339
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
340
|
+
const panel = sidebarRef.current;
|
|
341
|
+
const blockEl = store.getFirstBlockElement();
|
|
342
|
+
// Climb to the block-list root so nested scroll containers
|
|
343
|
+
// (e.g. a Group with overflow:auto) don't shadow the canvas.
|
|
344
|
+
const rootEl = blockEl?.closest( '.is-root-container' ) ?? blockEl;
|
|
345
|
+
const canvas = rootEl ? getScrollContainer( rootEl ) : null;
|
|
346
|
+
|
|
347
|
+
const applyScroll = () => {
|
|
348
|
+
panel.style.setProperty(
|
|
349
|
+
'--canvas-scroll',
|
|
350
|
+
`${ -( canvas?.scrollTop ?? 0 ) }px`
|
|
351
|
+
);
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
// Recalc is deferred to a rAF; back-to-back updates collapse into one paint.
|
|
355
|
+
const rafId = window.requestAnimationFrame( () => {
|
|
356
|
+
const result = calculateNotePositions( {
|
|
357
|
+
threads,
|
|
358
|
+
selectedNoteId,
|
|
359
|
+
blockRects: store.getBlockRects(),
|
|
360
|
+
heights,
|
|
361
|
+
scrollTop: canvas?.scrollTop ?? 0,
|
|
362
|
+
} );
|
|
363
|
+
|
|
364
|
+
setNotePositions( result.positions );
|
|
365
|
+
applyScroll();
|
|
366
|
+
} );
|
|
367
|
+
|
|
368
|
+
// Root scrolling elements (documentElement/body) don't fire scroll
|
|
369
|
+
// on themselves; capture on the window catches them in either canvas.
|
|
370
|
+
const view = canvas?.ownerDocument?.defaultView;
|
|
371
|
+
const listenerOptions = { passive: true, capture: true };
|
|
372
|
+
view?.addEventListener( 'scroll', applyScroll, listenerOptions );
|
|
373
|
+
|
|
374
|
+
return () => {
|
|
375
|
+
window.cancelAnimationFrame( rafId );
|
|
376
|
+
view?.removeEventListener( 'scroll', applyScroll, listenerOptions );
|
|
377
|
+
};
|
|
378
|
+
}, [ sidebarRef, heights, isFloating, selectedNoteId, store, threads ] );
|
|
428
379
|
|
|
429
380
|
return {
|
|
430
|
-
|
|
431
|
-
|
|
381
|
+
notePositions,
|
|
382
|
+
registerThread: store.registerThread,
|
|
383
|
+
unregisterThread: store.unregisterThread,
|
|
432
384
|
};
|
|
433
385
|
}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
5
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
6
|
-
import { __experimentalVStack as VStack } from '@wordpress/components';
|
|
7
6
|
import { useRef } from '@wordpress/element';
|
|
8
7
|
import { useViewportMatch } from '@wordpress/compose';
|
|
9
8
|
import { useShortcut } from '@wordpress/keyboard-shortcuts';
|
|
@@ -21,63 +20,15 @@ import {
|
|
|
21
20
|
FLOATING_NOTES_SIDEBAR,
|
|
22
21
|
SIDEBARS,
|
|
23
22
|
} from './constants';
|
|
24
|
-
import {
|
|
23
|
+
import { Notes } from './notes';
|
|
25
24
|
import { store as editorStore } from '../../store';
|
|
26
|
-
import
|
|
27
|
-
import
|
|
25
|
+
import { AddNoteMenuItem } from './add-note-menu-item';
|
|
26
|
+
import { NoteAvatarIndicator } from './note-indicator-toolbar';
|
|
28
27
|
import { useGlobalStylesContext } from '../global-styles-provider';
|
|
29
|
-
import {
|
|
30
|
-
useBlockComments,
|
|
31
|
-
useBlockCommentsActions,
|
|
32
|
-
useEnableFloatingSidebar,
|
|
33
|
-
} from './hooks';
|
|
28
|
+
import { useNoteThreads, useEnableFloatingSidebar } from './hooks';
|
|
34
29
|
import PostTypeSupportCheck from '../post-type-support-check';
|
|
35
30
|
import { unlock } from '../../lock-unlock';
|
|
36
31
|
|
|
37
|
-
function NotesSidebarContent( {
|
|
38
|
-
styles,
|
|
39
|
-
comments,
|
|
40
|
-
commentSidebarRef,
|
|
41
|
-
reflowComments,
|
|
42
|
-
commentLastUpdated,
|
|
43
|
-
isFloating = false,
|
|
44
|
-
} ) {
|
|
45
|
-
const { onCreate, onEdit, onDelete } =
|
|
46
|
-
useBlockCommentsActions( reflowComments );
|
|
47
|
-
|
|
48
|
-
return (
|
|
49
|
-
<VStack
|
|
50
|
-
className="editor-collab-sidebar-panel"
|
|
51
|
-
style={ styles }
|
|
52
|
-
role="tree"
|
|
53
|
-
spacing="3"
|
|
54
|
-
justify="flex-start"
|
|
55
|
-
ref={ ( node ) => {
|
|
56
|
-
// Sometimes previous sidebar unmounts after the new one mounts.
|
|
57
|
-
// This ensures we always have the latest reference.
|
|
58
|
-
if ( node ) {
|
|
59
|
-
// eslint-disable-next-line react-compiler/react-compiler
|
|
60
|
-
commentSidebarRef.current = node;
|
|
61
|
-
}
|
|
62
|
-
} }
|
|
63
|
-
aria-label={
|
|
64
|
-
isFloating ? __( 'Unresolved notes' ) : __( 'All notes' )
|
|
65
|
-
}
|
|
66
|
-
>
|
|
67
|
-
<Comments
|
|
68
|
-
threads={ comments }
|
|
69
|
-
onEditComment={ onEdit }
|
|
70
|
-
onAddReply={ onCreate }
|
|
71
|
-
onCommentDelete={ onDelete }
|
|
72
|
-
commentSidebarRef={ commentSidebarRef }
|
|
73
|
-
reflowComments={ reflowComments }
|
|
74
|
-
commentLastUpdated={ commentLastUpdated }
|
|
75
|
-
isFloating={ isFloating }
|
|
76
|
-
/>
|
|
77
|
-
</VStack>
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
32
|
function NotesSidebar( { postId } ) {
|
|
82
33
|
const { getActiveComplementaryArea } = useSelect( interfaceStore );
|
|
83
34
|
const { enableComplementaryArea } = useDispatch( interfaceStore );
|
|
@@ -86,28 +37,22 @@ function NotesSidebar( { postId } ) {
|
|
|
86
37
|
);
|
|
87
38
|
const { selectNote } = unlock( useDispatch( editorStore ) );
|
|
88
39
|
const isLargeViewport = useViewportMatch( 'medium' );
|
|
89
|
-
const
|
|
40
|
+
const sidebarRef = useRef( null );
|
|
90
41
|
|
|
91
|
-
const { clientId,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
? getBlockName( _clientId ) === 'core/freeform'
|
|
106
|
-
: false,
|
|
107
|
-
};
|
|
108
|
-
},
|
|
109
|
-
[]
|
|
110
|
-
);
|
|
42
|
+
const { clientId, noteId, isClassicBlock } = useSelect( ( select ) => {
|
|
43
|
+
const { getBlockAttributes, getSelectedBlockClientId, getBlockName } =
|
|
44
|
+
select( blockEditorStore );
|
|
45
|
+
const _clientId = getSelectedBlockClientId();
|
|
46
|
+
return {
|
|
47
|
+
clientId: _clientId,
|
|
48
|
+
noteId: _clientId
|
|
49
|
+
? getBlockAttributes( _clientId )?.metadata?.noteId
|
|
50
|
+
: null,
|
|
51
|
+
isClassicBlock: _clientId
|
|
52
|
+
? getBlockName( _clientId ) === 'core/freeform'
|
|
53
|
+
: false,
|
|
54
|
+
};
|
|
55
|
+
}, [] );
|
|
111
56
|
const { isDistractionFree } = useSelect( ( select ) => {
|
|
112
57
|
const { get } = select( preferencesStore );
|
|
113
58
|
return {
|
|
@@ -119,21 +64,15 @@ function NotesSidebar( { postId } ) {
|
|
|
119
64
|
[]
|
|
120
65
|
);
|
|
121
66
|
|
|
122
|
-
const {
|
|
123
|
-
resultComments,
|
|
124
|
-
unresolvedSortedThreads,
|
|
125
|
-
reflowComments,
|
|
126
|
-
commentLastUpdated,
|
|
127
|
-
} = useBlockComments( postId );
|
|
67
|
+
const { notes, unresolvedNotes } = useNoteThreads( postId );
|
|
128
68
|
|
|
129
69
|
// Only enable the floating sidebar for large viewports.
|
|
130
70
|
const showFloatingSidebar = isLargeViewport;
|
|
131
71
|
// Fallback to "All notes" sidebar on smaller viewports.
|
|
132
|
-
const showAllNotesSidebar =
|
|
133
|
-
resultComments.length > 0 || ! showFloatingSidebar;
|
|
72
|
+
const showAllNotesSidebar = notes.length > 0 || ! showFloatingSidebar;
|
|
134
73
|
useEnableFloatingSidebar(
|
|
135
74
|
showFloatingSidebar &&
|
|
136
|
-
(
|
|
75
|
+
( unresolvedNotes.length > 0 || selectedNote !== undefined )
|
|
137
76
|
);
|
|
138
77
|
|
|
139
78
|
useShortcut(
|
|
@@ -146,10 +85,7 @@ function NotesSidebar( { postId } ) {
|
|
|
146
85
|
// When multiple notes per block are supported. Remove note ID check.
|
|
147
86
|
// See: https://github.com/WordPress/gutenberg/pull/75147.
|
|
148
87
|
isDisabled:
|
|
149
|
-
isDistractionFree ||
|
|
150
|
-
isClassicBlock ||
|
|
151
|
-
! clientId ||
|
|
152
|
-
!! blockCommentId,
|
|
88
|
+
isDistractionFree || isClassicBlock || ! clientId || !! noteId,
|
|
153
89
|
}
|
|
154
90
|
);
|
|
155
91
|
|
|
@@ -158,8 +94,8 @@ function NotesSidebar( { postId } ) {
|
|
|
158
94
|
const backgroundColor = GlobalStyles?.styles?.color?.background;
|
|
159
95
|
|
|
160
96
|
// Find the current thread for the selected block.
|
|
161
|
-
const currentThread =
|
|
162
|
-
?
|
|
97
|
+
const currentThread = noteId
|
|
98
|
+
? notes.find( ( thread ) => thread.id === noteId )
|
|
163
99
|
: null;
|
|
164
100
|
|
|
165
101
|
async function openTheSidebar( selectedClientId ) {
|
|
@@ -169,7 +105,7 @@ function NotesSidebar( { postId } ) {
|
|
|
169
105
|
selectedClientId && selectedClientId !== clientId
|
|
170
106
|
? selectedClientId
|
|
171
107
|
: clientId;
|
|
172
|
-
const targetNote =
|
|
108
|
+
const targetNote = notes.find(
|
|
173
109
|
( note ) => note.blockClientId === targetClientId
|
|
174
110
|
);
|
|
175
111
|
|
|
@@ -196,18 +132,18 @@ function NotesSidebar( { postId } ) {
|
|
|
196
132
|
}
|
|
197
133
|
|
|
198
134
|
if ( isDistractionFree ) {
|
|
199
|
-
return <
|
|
135
|
+
return <AddNoteMenuItem isDistractionFree />;
|
|
200
136
|
}
|
|
201
137
|
|
|
202
138
|
return (
|
|
203
139
|
<>
|
|
204
140
|
{ !! currentThread && (
|
|
205
|
-
<
|
|
206
|
-
|
|
141
|
+
<NoteAvatarIndicator
|
|
142
|
+
note={ currentThread }
|
|
207
143
|
onClick={ openTheSidebar }
|
|
208
144
|
/>
|
|
209
145
|
) }
|
|
210
|
-
<
|
|
146
|
+
<AddNoteMenuItem onClick={ openTheSidebar } />
|
|
211
147
|
{ showAllNotesSidebar && (
|
|
212
148
|
<PluginSidebar
|
|
213
149
|
identifier={ ALL_NOTES_SIDEBAR }
|
|
@@ -221,10 +157,7 @@ function NotesSidebar( { postId } ) {
|
|
|
221
157
|
icon={ commentIcon }
|
|
222
158
|
closeLabel={ __( 'Close Notes' ) }
|
|
223
159
|
>
|
|
224
|
-
<
|
|
225
|
-
comments={ resultComments }
|
|
226
|
-
commentSidebarRef={ commentSidebarRef }
|
|
227
|
-
/>
|
|
160
|
+
<Notes notes={ notes } sidebarRef={ sidebarRef } />
|
|
228
161
|
</PluginSidebar>
|
|
229
162
|
) }
|
|
230
163
|
{ isLargeViewport && (
|
|
@@ -236,14 +169,10 @@ function NotesSidebar( { postId } ) {
|
|
|
236
169
|
headerClassName="editor-collab-sidebar__header"
|
|
237
170
|
backgroundColor={ backgroundColor }
|
|
238
171
|
>
|
|
239
|
-
<
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
commentLastUpdated={ commentLastUpdated }
|
|
244
|
-
styles={ {
|
|
245
|
-
backgroundColor,
|
|
246
|
-
} }
|
|
172
|
+
<Notes
|
|
173
|
+
notes={ unresolvedNotes }
|
|
174
|
+
sidebarRef={ sidebarRef }
|
|
175
|
+
styles={ { backgroundColor } }
|
|
247
176
|
isFloating
|
|
248
177
|
/>
|
|
249
178
|
</PluginSidebar>
|