@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
|
@@ -20,31 +20,28 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// packages/editor/src/components/collab-sidebar/hooks.js
|
|
21
21
|
var hooks_exports = {};
|
|
22
22
|
__export(hooks_exports, {
|
|
23
|
-
useBlockComments: () => useBlockComments,
|
|
24
|
-
useBlockCommentsActions: () => useBlockCommentsActions,
|
|
25
23
|
useEnableFloatingSidebar: () => useEnableFloatingSidebar,
|
|
26
|
-
|
|
24
|
+
useFloatingBoard: () => useFloatingBoard,
|
|
25
|
+
useNoteActions: () => useNoteActions,
|
|
26
|
+
useNoteThreads: () => useNoteThreads
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(hooks_exports);
|
|
29
|
-
var import_react_dom = require("@floating-ui/react-dom");
|
|
30
29
|
var import_i18n = require("@wordpress/i18n");
|
|
31
30
|
var import_element = require("@wordpress/element");
|
|
32
31
|
var import_core_data = require("@wordpress/core-data");
|
|
33
32
|
var import_data = require("@wordpress/data");
|
|
34
33
|
var import_block_editor = require("@wordpress/block-editor");
|
|
35
34
|
var import_notices = require("@wordpress/notices");
|
|
35
|
+
var import_dom = require("@wordpress/dom");
|
|
36
36
|
var import_html_entities = require("@wordpress/html-entities");
|
|
37
37
|
var import_interface = require("@wordpress/interface");
|
|
38
38
|
var import_store = require("../../store/index.cjs");
|
|
39
39
|
var import_constants = require("./constants.cjs");
|
|
40
40
|
var import_lock_unlock = require("../../lock-unlock.cjs");
|
|
41
|
+
var import_board_store = require("./board-store.cjs");
|
|
41
42
|
var import_utils = require("./utils.cjs");
|
|
42
|
-
var {
|
|
43
|
-
function
|
|
44
|
-
const [commentLastUpdated, reflowComments] = (0, import_element.useReducer)(
|
|
45
|
-
() => Date.now(),
|
|
46
|
-
0
|
|
47
|
-
);
|
|
43
|
+
var { cleanEmptyObject } = (0, import_lock_unlock.unlock)(import_block_editor.privateApis);
|
|
44
|
+
function useNoteThreads(postId) {
|
|
48
45
|
const queryArgs = {
|
|
49
46
|
post: postId,
|
|
50
47
|
type: "note",
|
|
@@ -64,80 +61,68 @@ function useBlockComments(postId) {
|
|
|
64
61
|
clientIds: getClientIdsWithDescendants()
|
|
65
62
|
};
|
|
66
63
|
}, []);
|
|
67
|
-
const {
|
|
64
|
+
const { notes, unresolvedNotes } = (0, import_element.useMemo)(() => {
|
|
68
65
|
if (!threads || threads.length === 0) {
|
|
69
|
-
return {
|
|
66
|
+
return { notes: [], unresolvedNotes: [] };
|
|
70
67
|
}
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
68
|
+
const blocksWithNotes = {};
|
|
69
|
+
const clientIdByNoteId = /* @__PURE__ */ new Map();
|
|
70
|
+
for (const clientId of clientIds) {
|
|
71
|
+
const noteId = getBlockAttributes(clientId)?.metadata?.noteId;
|
|
72
|
+
if (noteId) {
|
|
73
|
+
const key = String(noteId);
|
|
74
|
+
blocksWithNotes[clientId] = key;
|
|
75
|
+
clientIdByNoteId.set(key, clientId);
|
|
75
76
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
blocksWithComments
|
|
82
|
-
).reduce((mapping, clientId) => {
|
|
83
|
-
mapping[blocksWithComments[clientId]] = clientId;
|
|
84
|
-
return mapping;
|
|
85
|
-
}, {});
|
|
86
|
-
threads.forEach((item) => {
|
|
87
|
-
const itemBlock = commentIdToBlockClientId[item.id];
|
|
88
|
-
compare[item.id] = {
|
|
77
|
+
}
|
|
78
|
+
const threadsById = /* @__PURE__ */ new Map();
|
|
79
|
+
const rootThreads = [];
|
|
80
|
+
for (const item of threads) {
|
|
81
|
+
const thread = {
|
|
89
82
|
...item,
|
|
90
83
|
reply: [],
|
|
91
|
-
blockClientId: item.parent === 0 ?
|
|
84
|
+
blockClientId: item.parent === 0 ? clientIdByNoteId.get(String(item.id)) ?? null : null
|
|
92
85
|
};
|
|
93
|
-
|
|
94
|
-
threads.forEach((item) => {
|
|
86
|
+
threadsById.set(item.id, thread);
|
|
95
87
|
if (item.parent === 0) {
|
|
96
|
-
|
|
97
|
-
} else if (compare[item.parent]) {
|
|
98
|
-
compare[item.parent].reply.push(compare[item.id]);
|
|
88
|
+
rootThreads.push(thread);
|
|
99
89
|
}
|
|
100
|
-
});
|
|
101
|
-
if (0 === result?.length) {
|
|
102
|
-
return { resultComments: [], unresolvedSortedThreads: [] };
|
|
103
90
|
}
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
91
|
+
for (const item of threads) {
|
|
92
|
+
if (item.parent !== 0) {
|
|
93
|
+
threadsById.get(item.parent)?.reply.unshift(threadsById.get(item.id));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (rootThreads.length === 0) {
|
|
97
|
+
return { notes: [], unresolvedNotes: [] };
|
|
98
|
+
}
|
|
99
|
+
const unresolved = [];
|
|
100
|
+
const resolved = [];
|
|
101
|
+
for (const noteId of Object.values(blocksWithNotes)) {
|
|
102
|
+
const thread = threadsById.get(Number(noteId)) ?? threadsById.get(noteId);
|
|
103
|
+
if (!thread) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (thread.status === "hold") {
|
|
107
|
+
unresolved.push(thread);
|
|
108
|
+
} else if (thread.status === "approved") {
|
|
109
|
+
resolved.push(thread);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const orphans = rootThreads.filter(
|
|
113
|
+
(thread) => !thread.blockClientId
|
|
122
114
|
);
|
|
123
|
-
const allSortedComments = [
|
|
124
|
-
...unresolvedSortedComments,
|
|
125
|
-
...resolvedSortedComments,
|
|
126
|
-
...orphanedComments
|
|
127
|
-
];
|
|
128
115
|
return {
|
|
129
|
-
|
|
130
|
-
|
|
116
|
+
notes: [...unresolved, ...resolved, ...orphans],
|
|
117
|
+
unresolvedNotes: unresolved
|
|
131
118
|
};
|
|
132
119
|
}, [clientIds, threads, getBlockAttributes]);
|
|
133
120
|
return {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
reflowComments,
|
|
137
|
-
commentLastUpdated
|
|
121
|
+
notes,
|
|
122
|
+
unresolvedNotes
|
|
138
123
|
};
|
|
139
124
|
}
|
|
140
|
-
function
|
|
125
|
+
function useNoteActions() {
|
|
141
126
|
const { createNotice } = (0, import_data.useDispatch)(import_notices.store);
|
|
142
127
|
const { saveEntityRecord, deleteEntityRecord } = (0, import_data.useDispatch)(import_core_data.store);
|
|
143
128
|
const { getCurrentPostId } = (0, import_data.useSelect)(import_store.store);
|
|
@@ -182,10 +167,8 @@ function useBlockCommentsActions(reflowComments = import_utils.noop) {
|
|
|
182
167
|
isDismissible: true
|
|
183
168
|
}
|
|
184
169
|
);
|
|
185
|
-
setTimeout(reflowComments, 300);
|
|
186
170
|
return savedRecord;
|
|
187
171
|
} catch (error) {
|
|
188
|
-
reflowComments();
|
|
189
172
|
onError(error);
|
|
190
173
|
}
|
|
191
174
|
};
|
|
@@ -209,7 +192,7 @@ function useBlockCommentsActions(reflowComments = import_utils.noop) {
|
|
|
209
192
|
throwOnError: true
|
|
210
193
|
}
|
|
211
194
|
);
|
|
212
|
-
const
|
|
195
|
+
const newNoteData = {
|
|
213
196
|
post: getCurrentPostId(),
|
|
214
197
|
content: content || "",
|
|
215
198
|
// Empty content for resolve, content for reopen.
|
|
@@ -220,7 +203,7 @@ function useBlockCommentsActions(reflowComments = import_utils.noop) {
|
|
|
220
203
|
_wp_note_status: status === "approved" ? "resolved" : "reopen"
|
|
221
204
|
}
|
|
222
205
|
};
|
|
223
|
-
await saveEntityRecord("root", "comment",
|
|
206
|
+
await saveEntityRecord("root", "comment", newNoteData, {
|
|
224
207
|
throwOnError: true
|
|
225
208
|
});
|
|
226
209
|
} else {
|
|
@@ -241,24 +224,16 @@ function useBlockCommentsActions(reflowComments = import_utils.noop) {
|
|
|
241
224
|
isDismissible: true
|
|
242
225
|
}
|
|
243
226
|
);
|
|
244
|
-
reflowComments();
|
|
245
227
|
} catch (error) {
|
|
246
|
-
reflowComments();
|
|
247
228
|
onError(error);
|
|
248
229
|
}
|
|
249
230
|
};
|
|
250
|
-
const onDelete = async (
|
|
231
|
+
const onDelete = async (note) => {
|
|
251
232
|
try {
|
|
252
|
-
await deleteEntityRecord(
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
void 0,
|
|
257
|
-
{
|
|
258
|
-
throwOnError: true
|
|
259
|
-
}
|
|
260
|
-
);
|
|
261
|
-
if (!comment.parent) {
|
|
233
|
+
await deleteEntityRecord("root", "comment", note.id, void 0, {
|
|
234
|
+
throwOnError: true
|
|
235
|
+
});
|
|
236
|
+
if (!note.parent) {
|
|
262
237
|
const clientId = getSelectedBlockClientId();
|
|
263
238
|
const metadata = getBlockAttributes(clientId)?.metadata;
|
|
264
239
|
updateBlockAttributes(clientId, {
|
|
@@ -272,9 +247,7 @@ function useBlockCommentsActions(reflowComments = import_utils.noop) {
|
|
|
272
247
|
type: "snackbar",
|
|
273
248
|
isDismissible: true
|
|
274
249
|
});
|
|
275
|
-
reflowComments();
|
|
276
250
|
} catch (error) {
|
|
277
|
-
reflowComments();
|
|
278
251
|
onError(error);
|
|
279
252
|
}
|
|
280
253
|
};
|
|
@@ -301,67 +274,59 @@ function useEnableFloatingSidebar(enabled = false) {
|
|
|
301
274
|
};
|
|
302
275
|
}, [enabled, registry]);
|
|
303
276
|
}
|
|
304
|
-
function
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
setBlockRef,
|
|
310
|
-
commentLastUpdated
|
|
277
|
+
function useFloatingBoard({
|
|
278
|
+
threads,
|
|
279
|
+
selectedNoteId,
|
|
280
|
+
isFloating,
|
|
281
|
+
sidebarRef
|
|
311
282
|
}) {
|
|
312
|
-
const
|
|
313
|
-
const
|
|
314
|
-
|
|
315
|
-
setHeights((prev) => {
|
|
316
|
-
if (prev[id] !== newHeight) {
|
|
317
|
-
return { ...prev, [id]: newHeight };
|
|
318
|
-
}
|
|
319
|
-
return prev;
|
|
320
|
-
});
|
|
321
|
-
},
|
|
322
|
-
[setHeights]
|
|
323
|
-
);
|
|
324
|
-
const { y, refs } = (0, import_react_dom.useFloating)({
|
|
325
|
-
placement: "right-start",
|
|
326
|
-
middleware: [
|
|
327
|
-
(0, import_react_dom.offset)({
|
|
328
|
-
crossAxis: calculatedOffset || -16
|
|
329
|
-
})
|
|
330
|
-
],
|
|
331
|
-
whileElementsMounted: import_react_dom.autoUpdate
|
|
332
|
-
});
|
|
333
|
-
(0, import_element.useEffect)(() => {
|
|
334
|
-
if (blockElement) {
|
|
335
|
-
refs.setReference(blockElement);
|
|
336
|
-
}
|
|
337
|
-
}, [blockElement, refs, commentLastUpdated]);
|
|
283
|
+
const [notePositions, setNotePositions] = (0, import_element.useState)({});
|
|
284
|
+
const [store] = (0, import_element.useState)(import_board_store.createBoardStore);
|
|
285
|
+
const heights = (0, import_element.useSyncExternalStore)(store.subscribe, store.getSnapshot);
|
|
338
286
|
(0, import_element.useEffect)(() => {
|
|
339
|
-
if (
|
|
340
|
-
|
|
341
|
-
}
|
|
342
|
-
}, [blockElement, thread.id, refs.floating, setBlockRef]);
|
|
343
|
-
(0, import_element.useEffect)(() => {
|
|
344
|
-
if (refs.floating?.current) {
|
|
345
|
-
const newHeight = refs.floating.current.scrollHeight;
|
|
346
|
-
updateHeight(thread.id, newHeight);
|
|
287
|
+
if (!isFloating || !sidebarRef?.current) {
|
|
288
|
+
return;
|
|
347
289
|
}
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
290
|
+
const panel = sidebarRef.current;
|
|
291
|
+
const blockEl = store.getFirstBlockElement();
|
|
292
|
+
const rootEl = blockEl?.closest(".is-root-container") ?? blockEl;
|
|
293
|
+
const canvas = rootEl ? (0, import_dom.getScrollContainer)(rootEl) : null;
|
|
294
|
+
const applyScroll = () => {
|
|
295
|
+
panel.style.setProperty(
|
|
296
|
+
"--canvas-scroll",
|
|
297
|
+
`${-(canvas?.scrollTop ?? 0)}px`
|
|
298
|
+
);
|
|
299
|
+
};
|
|
300
|
+
const rafId = window.requestAnimationFrame(() => {
|
|
301
|
+
const result = (0, import_utils.calculateNotePositions)({
|
|
302
|
+
threads,
|
|
303
|
+
selectedNoteId,
|
|
304
|
+
blockRects: store.getBlockRects(),
|
|
305
|
+
heights,
|
|
306
|
+
scrollTop: canvas?.scrollTop ?? 0
|
|
307
|
+
});
|
|
308
|
+
setNotePositions(result.positions);
|
|
309
|
+
applyScroll();
|
|
310
|
+
});
|
|
311
|
+
const view = canvas?.ownerDocument?.defaultView;
|
|
312
|
+
const listenerOptions = { passive: true, capture: true };
|
|
313
|
+
view?.addEventListener("scroll", applyScroll, listenerOptions);
|
|
314
|
+
return () => {
|
|
315
|
+
window.cancelAnimationFrame(rafId);
|
|
316
|
+
view?.removeEventListener("scroll", applyScroll, listenerOptions);
|
|
317
|
+
};
|
|
318
|
+
}, [sidebarRef, heights, isFloating, selectedNoteId, store, threads]);
|
|
355
319
|
return {
|
|
356
|
-
|
|
357
|
-
|
|
320
|
+
notePositions,
|
|
321
|
+
registerThread: store.registerThread,
|
|
322
|
+
unregisterThread: store.unregisterThread
|
|
358
323
|
};
|
|
359
324
|
}
|
|
360
325
|
// Annotate the CommonJS export names for ESM import in node:
|
|
361
326
|
0 && (module.exports = {
|
|
362
|
-
useBlockComments,
|
|
363
|
-
useBlockCommentsActions,
|
|
364
327
|
useEnableFloatingSidebar,
|
|
365
|
-
|
|
328
|
+
useFloatingBoard,
|
|
329
|
+
useNoteActions,
|
|
330
|
+
useNoteThreads
|
|
366
331
|
});
|
|
367
332
|
//# sourceMappingURL=hooks.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/collab-sidebar/hooks.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport {\n\tuseFloating,\n\toffset as offsetMiddleware,\n\tautoUpdate,\n} from '@floating-ui/react-dom';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseEffect,\n\tuseMemo,\n\tuseCallback,\n\tuseReducer,\n} from '@wordpress/element';\nimport { useEntityRecords, store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport {\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { FLOATING_NOTES_SIDEBAR } from './constants';\nimport { unlock } from '../../lock-unlock';\nimport { noop } from './utils';\n\nconst { useBlockElement, cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\nexport function useBlockComments( postId ) {\n\tconst [ commentLastUpdated, reflowComments ] = useReducer(\n\t\t() => Date.now(),\n\t\t0\n\t);\n\n\tconst queryArgs = {\n\t\tpost: postId,\n\t\ttype: 'note',\n\t\tstatus: 'all',\n\t\tper_page: -1,\n\t};\n\n\tconst { records: threads } = useEntityRecords(\n\t\t'root',\n\t\t'comment',\n\t\tqueryArgs,\n\t\t{ enabled: !! postId && typeof postId === 'number' }\n\t);\n\n\tconst { getBlockAttributes } = useSelect( blockEditorStore );\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getClientIdsWithDescendants } = select( blockEditorStore );\n\t\treturn {\n\t\t\tclientIds: getClientIdsWithDescendants(),\n\t\t};\n\t}, [] );\n\n\t// Process comments to build the tree structure.\n\tconst { resultComments, unresolvedSortedThreads } = useMemo( () => {\n\t\tif ( ! threads || threads.length === 0 ) {\n\t\t\treturn { resultComments: [], unresolvedSortedThreads: [] };\n\t\t}\n\n\t\tconst blocksWithComments = clientIds.reduce( ( results, clientId ) => {\n\t\t\tconst commentId = getBlockAttributes( clientId )?.metadata?.noteId;\n\t\t\tif ( commentId ) {\n\t\t\t\tresults[ clientId ] = commentId;\n\t\t\t}\n\t\t\treturn results;\n\t\t}, {} );\n\n\t\t// Create a compare to store the references to all objects by id.\n\t\tconst compare = {};\n\t\tconst result = [];\n\n\t\t// Create a reverse map for faster lookup.\n\t\tconst commentIdToBlockClientId = Object.keys(\n\t\t\tblocksWithComments\n\t\t).reduce( ( mapping, clientId ) => {\n\t\t\tmapping[ blocksWithComments[ clientId ] ] = clientId;\n\t\t\treturn mapping;\n\t\t}, {} );\n\n\t\t// Initialize each object with an empty `reply` array and map blockClientId.\n\t\tthreads.forEach( ( item ) => {\n\t\t\tconst itemBlock = commentIdToBlockClientId[ item.id ];\n\n\t\t\tcompare[ item.id ] = {\n\t\t\t\t...item,\n\t\t\t\treply: [],\n\t\t\t\tblockClientId: item.parent === 0 ? itemBlock : null,\n\t\t\t};\n\t\t} );\n\n\t\t// Iterate over the data to build the tree structure.\n\t\tthreads.forEach( ( item ) => {\n\t\t\tif ( item.parent === 0 ) {\n\t\t\t\t// If parent is 0, it's a root item, push it to the result array.\n\t\t\t\tresult.push( compare[ item.id ] );\n\t\t\t} else if ( compare[ item.parent ] ) {\n\t\t\t\t// Otherwise, find its parent and push it to the parent's `reply` array.\n\t\t\t\tcompare[ item.parent ].reply.push( compare[ item.id ] );\n\t\t\t}\n\t\t} );\n\n\t\tif ( 0 === result?.length ) {\n\t\t\treturn { resultComments: [], unresolvedSortedThreads: [] };\n\t\t}\n\n\t\tconst updatedResult = result.map( ( item ) => ( {\n\t\t\t...item,\n\t\t\treply: [ ...item.reply ].reverse(),\n\t\t} ) );\n\n\t\tconst threadIdMap = new Map(\n\t\t\tupdatedResult.map( ( thread ) => [ String( thread.id ), thread ] )\n\t\t);\n\n\t\t// Prepare sets to determine which threads are linked to existing blocks.\n\t\tconst mappedIds = new Set(\n\t\t\tObject.values( blocksWithComments ).map( ( id ) => String( id ) )\n\t\t);\n\n\t\t// Get comments by block order, first unresolved, then resolved.\n\t\tconst unresolvedSortedComments = Object.values( blocksWithComments )\n\t\t\t.map( ( commentId ) => threadIdMap.get( String( commentId ) ) )\n\t\t\t.filter(\n\t\t\t\t( thread ) => thread !== undefined && thread.status === 'hold'\n\t\t\t);\n\n\t\tconst resolvedSortedComments = Object.values( blocksWithComments )\n\t\t\t.map( ( commentId ) => threadIdMap.get( String( commentId ) ) )\n\t\t\t.filter(\n\t\t\t\t( thread ) =>\n\t\t\t\t\tthread !== undefined && thread.status === 'approved'\n\t\t\t);\n\n\t\t// Append orphaned notes (whose related block was deleted or missing).\n\t\tconst orphanedComments = updatedResult.filter(\n\t\t\t( thread ) => ! mappedIds.has( String( thread.id ) )\n\t\t);\n\n\t\tconst allSortedComments = [\n\t\t\t...unresolvedSortedComments,\n\t\t\t...resolvedSortedComments,\n\t\t\t...orphanedComments,\n\t\t];\n\n\t\treturn {\n\t\t\tresultComments: allSortedComments,\n\t\t\tunresolvedSortedThreads: unresolvedSortedComments,\n\t\t};\n\t}, [ clientIds, threads, getBlockAttributes ] );\n\n\treturn {\n\t\tresultComments,\n\t\tunresolvedSortedThreads,\n\t\treflowComments,\n\t\tcommentLastUpdated,\n\t};\n}\n\nexport function useBlockCommentsActions( reflowComments = noop ) {\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst { saveEntityRecord, deleteEntityRecord } = useDispatch( coreStore );\n\tconst { getCurrentPostId } = useSelect( editorStore );\n\tconst { getBlockAttributes, getSelectedBlockClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst onError = ( error ) => {\n\t\tconst errorMessage =\n\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t? decodeEntities( error.message )\n\t\t\t\t: __( 'An error occurred while performing an update.' );\n\t\tcreateNotice( 'error', errorMessage, {\n\t\t\ttype: 'snackbar',\n\t\t\tisDismissible: true,\n\t\t} );\n\t};\n\n\tconst onCreate = async ( { content, parent } ) => {\n\t\ttry {\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'comment',\n\t\t\t\t{\n\t\t\t\t\tpost: getCurrentPostId(),\n\t\t\t\t\tcontent,\n\t\t\t\t\tstatus: 'hold',\n\t\t\t\t\ttype: 'note',\n\t\t\t\t\tparent: parent || 0,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// If it's a main comment, update the block attributes with the comment id.\n\t\t\tif ( ! parent && savedRecord?.id ) {\n\t\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\t\tconst metadata = getBlockAttributes( clientId )?.metadata;\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...metadata,\n\t\t\t\t\t\tnoteId: savedRecord.id,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice(\n\t\t\t\t'snackbar',\n\t\t\t\tparent ? __( 'Reply added.' ) : __( 'Note added.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tisDismissible: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\tsetTimeout( reflowComments, 300 );\n\t\t\treturn savedRecord;\n\t\t} catch ( error ) {\n\t\t\treflowComments();\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\tconst onEdit = async ( { id, content, status } ) => {\n\t\tconst messageType = status ? status : 'updated';\n\t\tconst messages = {\n\t\t\tapproved: __( 'Note marked as resolved.' ),\n\t\t\thold: __( 'Note reopened.' ),\n\t\t\tupdated: __( 'Note updated.' ),\n\t\t};\n\n\t\ttry {\n\t\t\t// For resolution or reopen actions, create a new note with metadata.\n\t\t\tif ( status === 'approved' || status === 'hold' ) {\n\t\t\t\t// First, update the thread status.\n\t\t\t\tawait saveEntityRecord(\n\t\t\t\t\t'root',\n\t\t\t\t\t'comment',\n\t\t\t\t\t{\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Then create a new comment with the metadata.\n\t\t\t\tconst newCommentData = {\n\t\t\t\t\tpost: getCurrentPostId(),\n\t\t\t\t\tcontent: content || '', // Empty content for resolve, content for reopen.\n\t\t\t\t\ttype: 'note',\n\t\t\t\t\tstatus,\n\t\t\t\t\tparent: id,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\t_wp_note_status:\n\t\t\t\t\t\t\tstatus === 'approved' ? 'resolved' : 'reopen',\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tawait saveEntityRecord( 'root', 'comment', newCommentData, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst updateData = {\n\t\t\t\t\tid,\n\t\t\t\t\tcontent,\n\t\t\t\t\tstatus,\n\t\t\t\t};\n\n\t\t\t\tawait saveEntityRecord( 'root', 'comment', updateData, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice(\n\t\t\t\t'snackbar',\n\t\t\t\tmessages[ messageType ] ?? __( 'Note updated.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tisDismissible: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\treflowComments();\n\t\t} catch ( error ) {\n\t\t\treflowComments();\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\tconst onDelete = async ( comment ) => {\n\t\ttry {\n\t\t\tawait deleteEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'comment',\n\t\t\t\tcomment.id,\n\t\t\t\tundefined,\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( ! comment.parent ) {\n\t\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\t\tconst metadata = getBlockAttributes( clientId )?.metadata;\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\tmetadata: cleanEmptyObject( {\n\t\t\t\t\t\t...metadata,\n\t\t\t\t\t\tnoteId: undefined,\n\t\t\t\t\t} ),\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice( 'snackbar', __( 'Note deleted.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t\treflowComments();\n\t\t} catch ( error ) {\n\t\t\treflowComments();\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\treturn { onCreate, onEdit, onDelete };\n}\n\nexport function useEnableFloatingSidebar( enabled = false ) {\n\tconst registry = useRegistry();\n\tuseEffect( () => {\n\t\tif ( ! enabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { getActiveComplementaryArea } =\n\t\t\tregistry.select( interfaceStore );\n\t\tconst { disableComplementaryArea, enableComplementaryArea } =\n\t\t\tregistry.dispatch( interfaceStore );\n\n\t\tconst unsubscribe = registry.subscribe( () => {\n\t\t\t// Return `null` to indicate the user hid the complementary area.\n\t\t\tif ( getActiveComplementaryArea( 'core' ) === null ) {\n\t\t\t\tenableComplementaryArea( 'core', FLOATING_NOTES_SIDEBAR );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t\tif (\n\t\t\t\tgetActiveComplementaryArea( 'core' ) === FLOATING_NOTES_SIDEBAR\n\t\t\t) {\n\t\t\t\tdisableComplementaryArea( 'core', FLOATING_NOTES_SIDEBAR );\n\t\t\t}\n\t\t};\n\t}, [ enabled, registry ] );\n}\n\nexport function useFloatingThread( {\n\tthread,\n\tcalculatedOffset,\n\tsetHeights,\n\tselectedThread,\n\tsetBlockRef,\n\tcommentLastUpdated,\n} ) {\n\tconst blockElement = useBlockElement( thread.blockClientId );\n\tconst updateHeight = useCallback(\n\t\t( id, newHeight ) => {\n\t\t\tsetHeights( ( prev ) => {\n\t\t\t\tif ( prev[ id ] !== newHeight ) {\n\t\t\t\t\treturn { ...prev, [ id ]: newHeight };\n\t\t\t\t}\n\t\t\t\treturn prev;\n\t\t\t} );\n\t\t},\n\t\t[ setHeights ]\n\t);\n\n\t// Use floating-ui to track the block element's position with the calculated offset.\n\tconst { y, refs } = useFloating( {\n\t\tplacement: 'right-start',\n\t\tmiddleware: [\n\t\t\toffsetMiddleware( {\n\t\t\t\tcrossAxis: calculatedOffset || -16,\n\t\t\t} ),\n\t\t],\n\t\twhileElementsMounted: autoUpdate,\n\t} );\n\n\t// Store the block reference for each thread.\n\tuseEffect( () => {\n\t\tif ( blockElement ) {\n\t\t\trefs.setReference( blockElement );\n\t\t}\n\t}, [ blockElement, refs, commentLastUpdated ] );\n\n\t// Track thread heights.\n\tuseEffect( () => {\n\t\tif ( refs.floating?.current ) {\n\t\t\tsetBlockRef( thread.id, blockElement );\n\t\t}\n\t}, [ blockElement, thread.id, refs.floating, setBlockRef ] );\n\n\t// When the selected thread changes, update heights, triggering offset recalculation.\n\tuseEffect( () => {\n\t\tif ( refs.floating?.current ) {\n\t\t\tconst newHeight = refs.floating.current.scrollHeight;\n\t\t\tupdateHeight( thread.id, newHeight );\n\t\t}\n\t}, [\n\t\tthread.id,\n\t\tupdateHeight,\n\t\trefs.floating,\n\t\tselectedThread,\n\t\tcommentLastUpdated,\n\t] );\n\n\treturn {\n\t\ty,\n\t\trefs,\n\t};\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,
|
|
6
|
-
"names": ["blockEditorPrivateApis", "blockEditorStore", "noticesStore", "coreStore", "editorStore", "interfaceStore"
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseState,\n\tuseEffect,\n\tuseMemo,\n\tuseSyncExternalStore,\n} from '@wordpress/element';\nimport { useEntityRecords, store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport {\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getScrollContainer } from '@wordpress/dom';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { FLOATING_NOTES_SIDEBAR } from './constants';\nimport { unlock } from '../../lock-unlock';\nimport { createBoardStore } from './board-store';\nimport { calculateNotePositions } from './utils';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\nexport function useNoteThreads( postId ) {\n\tconst queryArgs = {\n\t\tpost: postId,\n\t\ttype: 'note',\n\t\tstatus: 'all',\n\t\tper_page: -1,\n\t};\n\n\tconst { records: threads } = useEntityRecords(\n\t\t'root',\n\t\t'comment',\n\t\tqueryArgs,\n\t\t{ enabled: !! postId && typeof postId === 'number' }\n\t);\n\n\tconst { getBlockAttributes } = useSelect( blockEditorStore );\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getClientIdsWithDescendants } = select( blockEditorStore );\n\t\treturn {\n\t\t\tclientIds: getClientIdsWithDescendants(),\n\t\t};\n\t}, [] );\n\n\t// Process notes to build the tree structure.\n\tconst { notes, unresolvedNotes } = useMemo( () => {\n\t\tif ( ! threads || threads.length === 0 ) {\n\t\t\treturn { notes: [], unresolvedNotes: [] };\n\t\t}\n\n\t\t// Single pass over clientIds: build clientId->noteId map AND reverse lookup.\n\t\tconst blocksWithNotes = {};\n\t\tconst clientIdByNoteId = new Map();\n\t\tfor ( const clientId of clientIds ) {\n\t\t\tconst noteId = getBlockAttributes( clientId )?.metadata?.noteId;\n\t\t\tif ( noteId ) {\n\t\t\t\tconst key = String( noteId );\n\t\t\t\tblocksWithNotes[ clientId ] = key;\n\t\t\t\tclientIdByNoteId.set( key, clientId );\n\t\t\t}\n\t\t}\n\n\t\t// Materialize threads; collect roots; replies linked in a second pass\n\t\t// via unshift to invert order (matches prior reverse semantics).\n\t\tconst threadsById = new Map();\n\t\tconst rootThreads = [];\n\t\tfor ( const item of threads ) {\n\t\t\tconst thread = {\n\t\t\t\t...item,\n\t\t\t\treply: [],\n\t\t\t\tblockClientId:\n\t\t\t\t\titem.parent === 0\n\t\t\t\t\t\t? clientIdByNoteId.get( String( item.id ) ) ?? null\n\t\t\t\t\t\t: null,\n\t\t\t};\n\t\t\tthreadsById.set( item.id, thread );\n\t\t\tif ( item.parent === 0 ) {\n\t\t\t\trootThreads.push( thread );\n\t\t\t}\n\t\t}\n\t\tfor ( const item of threads ) {\n\t\t\tif ( item.parent !== 0 ) {\n\t\t\t\tthreadsById\n\t\t\t\t\t.get( item.parent )\n\t\t\t\t\t?.reply.unshift( threadsById.get( item.id ) );\n\t\t\t}\n\t\t}\n\n\t\tif ( rootThreads.length === 0 ) {\n\t\t\treturn { notes: [], unresolvedNotes: [] };\n\t\t}\n\n\t\t// Single partition over notes-in-block-order.\n\t\tconst unresolved = [];\n\t\tconst resolved = [];\n\t\tfor ( const noteId of Object.values( blocksWithNotes ) ) {\n\t\t\tconst thread =\n\t\t\t\tthreadsById.get( Number( noteId ) ) ??\n\t\t\t\tthreadsById.get( noteId );\n\t\t\tif ( ! thread ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif ( thread.status === 'hold' ) {\n\t\t\t\tunresolved.push( thread );\n\t\t\t} else if ( thread.status === 'approved' ) {\n\t\t\t\tresolved.push( thread );\n\t\t\t}\n\t\t}\n\n\t\t// Orphans: root threads without a linked block. They only need to come last.\n\t\tconst orphans = rootThreads.filter(\n\t\t\t( thread ) => ! thread.blockClientId\n\t\t);\n\n\t\treturn {\n\t\t\tnotes: [ ...unresolved, ...resolved, ...orphans ],\n\t\t\tunresolvedNotes: unresolved,\n\t\t};\n\t}, [ clientIds, threads, getBlockAttributes ] );\n\n\treturn {\n\t\tnotes,\n\t\tunresolvedNotes,\n\t};\n}\n\nexport function useNoteActions() {\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst { saveEntityRecord, deleteEntityRecord } = useDispatch( coreStore );\n\tconst { getCurrentPostId } = useSelect( editorStore );\n\tconst { getBlockAttributes, getSelectedBlockClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst onError = ( error ) => {\n\t\tconst errorMessage =\n\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t? decodeEntities( error.message )\n\t\t\t\t: __( 'An error occurred while performing an update.' );\n\t\tcreateNotice( 'error', errorMessage, {\n\t\t\ttype: 'snackbar',\n\t\t\tisDismissible: true,\n\t\t} );\n\t};\n\n\tconst onCreate = async ( { content, parent } ) => {\n\t\ttry {\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'comment',\n\t\t\t\t{\n\t\t\t\t\tpost: getCurrentPostId(),\n\t\t\t\t\tcontent,\n\t\t\t\t\tstatus: 'hold',\n\t\t\t\t\ttype: 'note',\n\t\t\t\t\tparent: parent || 0,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// If it's a top-level note, update the block attributes with the note id.\n\t\t\tif ( ! parent && savedRecord?.id ) {\n\t\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\t\tconst metadata = getBlockAttributes( clientId )?.metadata;\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...metadata,\n\t\t\t\t\t\tnoteId: savedRecord.id,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice(\n\t\t\t\t'snackbar',\n\t\t\t\tparent ? __( 'Reply added.' ) : __( 'Note added.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tisDismissible: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\treturn savedRecord;\n\t\t} catch ( error ) {\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\tconst onEdit = async ( { id, content, status } ) => {\n\t\tconst messageType = status ? status : 'updated';\n\t\tconst messages = {\n\t\t\tapproved: __( 'Note marked as resolved.' ),\n\t\t\thold: __( 'Note reopened.' ),\n\t\t\tupdated: __( 'Note updated.' ),\n\t\t};\n\n\t\ttry {\n\t\t\t// For resolution or reopen actions, create a new note with metadata.\n\t\t\tif ( status === 'approved' || status === 'hold' ) {\n\t\t\t\t// First, update the thread status.\n\t\t\t\tawait saveEntityRecord(\n\t\t\t\t\t'root',\n\t\t\t\t\t'comment',\n\t\t\t\t\t{\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Then create a new note with the metadata.\n\t\t\t\tconst newNoteData = {\n\t\t\t\t\tpost: getCurrentPostId(),\n\t\t\t\t\tcontent: content || '', // Empty content for resolve, content for reopen.\n\t\t\t\t\ttype: 'note',\n\t\t\t\t\tstatus,\n\t\t\t\t\tparent: id,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\t_wp_note_status:\n\t\t\t\t\t\t\tstatus === 'approved' ? 'resolved' : 'reopen',\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tawait saveEntityRecord( 'root', 'comment', newNoteData, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst updateData = {\n\t\t\t\t\tid,\n\t\t\t\t\tcontent,\n\t\t\t\t\tstatus,\n\t\t\t\t};\n\n\t\t\t\tawait saveEntityRecord( 'root', 'comment', updateData, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice(\n\t\t\t\t'snackbar',\n\t\t\t\tmessages[ messageType ] ?? __( 'Note updated.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tisDismissible: true,\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\tconst onDelete = async ( note ) => {\n\t\ttry {\n\t\t\tawait deleteEntityRecord( 'root', 'comment', note.id, undefined, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\n\t\t\tif ( ! note.parent ) {\n\t\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\t\tconst metadata = getBlockAttributes( clientId )?.metadata;\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\tmetadata: cleanEmptyObject( {\n\t\t\t\t\t\t...metadata,\n\t\t\t\t\t\tnoteId: undefined,\n\t\t\t\t\t} ),\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tcreateNotice( 'snackbar', __( 'Note deleted.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tonError( error );\n\t\t}\n\t};\n\n\treturn { onCreate, onEdit, onDelete };\n}\n\nexport function useEnableFloatingSidebar( enabled = false ) {\n\tconst registry = useRegistry();\n\tuseEffect( () => {\n\t\tif ( ! enabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { getActiveComplementaryArea } =\n\t\t\tregistry.select( interfaceStore );\n\t\tconst { disableComplementaryArea, enableComplementaryArea } =\n\t\t\tregistry.dispatch( interfaceStore );\n\n\t\tconst unsubscribe = registry.subscribe( () => {\n\t\t\t// Return `null` to indicate the user hid the complementary area.\n\t\t\tif ( getActiveComplementaryArea( 'core' ) === null ) {\n\t\t\t\tenableComplementaryArea( 'core', FLOATING_NOTES_SIDEBAR );\n\t\t\t}\n\t\t} );\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t\tif (\n\t\t\t\tgetActiveComplementaryArea( 'core' ) === FLOATING_NOTES_SIDEBAR\n\t\t\t) {\n\t\t\t\tdisableComplementaryArea( 'core', FLOATING_NOTES_SIDEBAR );\n\t\t\t}\n\t\t};\n\t}, [ enabled, registry ] );\n}\n\nexport function useFloatingBoard( {\n\tthreads,\n\tselectedNoteId,\n\tisFloating,\n\tsidebarRef,\n} ) {\n\tconst [ notePositions, setNotePositions ] = useState( {} );\n\tconst [ store ] = useState( createBoardStore );\n\n\tconst heights = useSyncExternalStore( store.subscribe, store.getSnapshot );\n\n\t// Notes are positioned in canvas content-space; CSS inherits\n\t// `--canvas-scroll` to translate each thread in sync with the canvas.\n\tuseEffect( () => {\n\t\tif ( ! isFloating || ! sidebarRef?.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst panel = sidebarRef.current;\n\t\tconst blockEl = store.getFirstBlockElement();\n\t\t// Climb to the block-list root so nested scroll containers\n\t\t// (e.g. a Group with overflow:auto) don't shadow the canvas.\n\t\tconst rootEl = blockEl?.closest( '.is-root-container' ) ?? blockEl;\n\t\tconst canvas = rootEl ? getScrollContainer( rootEl ) : null;\n\n\t\tconst applyScroll = () => {\n\t\t\tpanel.style.setProperty(\n\t\t\t\t'--canvas-scroll',\n\t\t\t\t`${ -( canvas?.scrollTop ?? 0 ) }px`\n\t\t\t);\n\t\t};\n\n\t\t// Recalc is deferred to a rAF; back-to-back updates collapse into one paint.\n\t\tconst rafId = window.requestAnimationFrame( () => {\n\t\t\tconst result = calculateNotePositions( {\n\t\t\t\tthreads,\n\t\t\t\tselectedNoteId,\n\t\t\t\tblockRects: store.getBlockRects(),\n\t\t\t\theights,\n\t\t\t\tscrollTop: canvas?.scrollTop ?? 0,\n\t\t\t} );\n\n\t\t\tsetNotePositions( result.positions );\n\t\t\tapplyScroll();\n\t\t} );\n\n\t\t// Root scrolling elements (documentElement/body) don't fire scroll\n\t\t// on themselves; capture on the window catches them in either canvas.\n\t\tconst view = canvas?.ownerDocument?.defaultView;\n\t\tconst listenerOptions = { passive: true, capture: true };\n\t\tview?.addEventListener( 'scroll', applyScroll, listenerOptions );\n\n\t\treturn () => {\n\t\t\twindow.cancelAnimationFrame( rafId );\n\t\t\tview?.removeEventListener( 'scroll', applyScroll, listenerOptions );\n\t\t};\n\t}, [ sidebarRef, heights, isFloating, selectedNoteId, store, threads ] );\n\n\treturn {\n\t\tnotePositions,\n\t\tregisterThread: store.registerThread,\n\t\tunregisterThread: store.unregisterThread,\n\t};\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["blockEditorPrivateApis", "blockEditorStore", "noticesStore", "coreStore", "editorStore", "interfaceStore"]
|
|
7
7
|
}
|
|
@@ -35,7 +35,6 @@ __export(collab_sidebar_exports, {
|
|
|
35
35
|
module.exports = __toCommonJS(collab_sidebar_exports);
|
|
36
36
|
var import_i18n = require("@wordpress/i18n");
|
|
37
37
|
var import_data = require("@wordpress/data");
|
|
38
|
-
var import_components = require("@wordpress/components");
|
|
39
38
|
var import_element = require("@wordpress/element");
|
|
40
39
|
var import_compose = require("@wordpress/compose");
|
|
41
40
|
var import_keyboard_shortcuts = require("@wordpress/keyboard-shortcuts");
|
|
@@ -45,54 +44,15 @@ var import_interface = require("@wordpress/interface");
|
|
|
45
44
|
var import_preferences = require("@wordpress/preferences");
|
|
46
45
|
var import_plugin_sidebar = __toESM(require("../plugin-sidebar/index.cjs"));
|
|
47
46
|
var import_constants = require("./constants.cjs");
|
|
48
|
-
var
|
|
47
|
+
var import_notes = require("./notes.cjs");
|
|
49
48
|
var import_store = require("../../store/index.cjs");
|
|
50
|
-
var
|
|
51
|
-
var
|
|
49
|
+
var import_add_note_menu_item = require("./add-note-menu-item.cjs");
|
|
50
|
+
var import_note_indicator_toolbar = require("./note-indicator-toolbar.cjs");
|
|
52
51
|
var import_global_styles_provider = require("../global-styles-provider/index.cjs");
|
|
53
52
|
var import_hooks = require("./hooks.cjs");
|
|
54
53
|
var import_post_type_support_check = __toESM(require("../post-type-support-check/index.cjs"));
|
|
55
54
|
var import_lock_unlock = require("../../lock-unlock.cjs");
|
|
56
55
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
57
|
-
function NotesSidebarContent({
|
|
58
|
-
styles,
|
|
59
|
-
comments,
|
|
60
|
-
commentSidebarRef,
|
|
61
|
-
reflowComments,
|
|
62
|
-
commentLastUpdated,
|
|
63
|
-
isFloating = false
|
|
64
|
-
}) {
|
|
65
|
-
const { onCreate, onEdit, onDelete } = (0, import_hooks.useBlockCommentsActions)(reflowComments);
|
|
66
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
67
|
-
import_components.__experimentalVStack,
|
|
68
|
-
{
|
|
69
|
-
className: "editor-collab-sidebar-panel",
|
|
70
|
-
style: styles,
|
|
71
|
-
role: "tree",
|
|
72
|
-
spacing: "3",
|
|
73
|
-
justify: "flex-start",
|
|
74
|
-
ref: (node) => {
|
|
75
|
-
if (node) {
|
|
76
|
-
commentSidebarRef.current = node;
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
"aria-label": isFloating ? (0, import_i18n.__)("Unresolved notes") : (0, import_i18n.__)("All notes"),
|
|
80
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
81
|
-
import_comments.Comments,
|
|
82
|
-
{
|
|
83
|
-
threads: comments,
|
|
84
|
-
onEditComment: onEdit,
|
|
85
|
-
onAddReply: onCreate,
|
|
86
|
-
onCommentDelete: onDelete,
|
|
87
|
-
commentSidebarRef,
|
|
88
|
-
reflowComments,
|
|
89
|
-
commentLastUpdated,
|
|
90
|
-
isFloating
|
|
91
|
-
}
|
|
92
|
-
)
|
|
93
|
-
}
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
56
|
function NotesSidebar({ postId }) {
|
|
97
57
|
const { getActiveComplementaryArea } = (0, import_data.useSelect)(import_interface.store);
|
|
98
58
|
const { enableComplementaryArea } = (0, import_data.useDispatch)(import_interface.store);
|
|
@@ -101,23 +61,16 @@ function NotesSidebar({ postId }) {
|
|
|
101
61
|
);
|
|
102
62
|
const { selectNote } = (0, import_lock_unlock.unlock)((0, import_data.useDispatch)(import_store.store));
|
|
103
63
|
const isLargeViewport = (0, import_compose.useViewportMatch)("medium");
|
|
104
|
-
const
|
|
105
|
-
const { clientId,
|
|
106
|
-
(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
clientId: _clientId,
|
|
115
|
-
blockCommentId: _clientId ? getBlockAttributes(_clientId)?.metadata?.noteId : null,
|
|
116
|
-
isClassicBlock: _clientId ? getBlockName(_clientId) === "core/freeform" : false
|
|
117
|
-
};
|
|
118
|
-
},
|
|
119
|
-
[]
|
|
120
|
-
);
|
|
64
|
+
const sidebarRef = (0, import_element.useRef)(null);
|
|
65
|
+
const { clientId, noteId, isClassicBlock } = (0, import_data.useSelect)((select) => {
|
|
66
|
+
const { getBlockAttributes, getSelectedBlockClientId, getBlockName } = select(import_block_editor.store);
|
|
67
|
+
const _clientId = getSelectedBlockClientId();
|
|
68
|
+
return {
|
|
69
|
+
clientId: _clientId,
|
|
70
|
+
noteId: _clientId ? getBlockAttributes(_clientId)?.metadata?.noteId : null,
|
|
71
|
+
isClassicBlock: _clientId ? getBlockName(_clientId) === "core/freeform" : false
|
|
72
|
+
};
|
|
73
|
+
}, []);
|
|
121
74
|
const { isDistractionFree } = (0, import_data.useSelect)((select) => {
|
|
122
75
|
const { get } = select(import_preferences.store);
|
|
123
76
|
return {
|
|
@@ -128,16 +81,11 @@ function NotesSidebar({ postId }) {
|
|
|
128
81
|
(select) => (0, import_lock_unlock.unlock)(select(import_store.store)).getSelectedNote(),
|
|
129
82
|
[]
|
|
130
83
|
);
|
|
131
|
-
const {
|
|
132
|
-
resultComments,
|
|
133
|
-
unresolvedSortedThreads,
|
|
134
|
-
reflowComments,
|
|
135
|
-
commentLastUpdated
|
|
136
|
-
} = (0, import_hooks.useBlockComments)(postId);
|
|
84
|
+
const { notes, unresolvedNotes } = (0, import_hooks.useNoteThreads)(postId);
|
|
137
85
|
const showFloatingSidebar = isLargeViewport;
|
|
138
|
-
const showAllNotesSidebar =
|
|
86
|
+
const showAllNotesSidebar = notes.length > 0 || !showFloatingSidebar;
|
|
139
87
|
(0, import_hooks.useEnableFloatingSidebar)(
|
|
140
|
-
showFloatingSidebar && (
|
|
88
|
+
showFloatingSidebar && (unresolvedNotes.length > 0 || selectedNote !== void 0)
|
|
141
89
|
);
|
|
142
90
|
(0, import_keyboard_shortcuts.useShortcut)(
|
|
143
91
|
"core/editor/new-note",
|
|
@@ -148,17 +96,17 @@ function NotesSidebar({ postId }) {
|
|
|
148
96
|
{
|
|
149
97
|
// When multiple notes per block are supported. Remove note ID check.
|
|
150
98
|
// See: https://github.com/WordPress/gutenberg/pull/75147.
|
|
151
|
-
isDisabled: isDistractionFree || isClassicBlock || !clientId || !!
|
|
99
|
+
isDisabled: isDistractionFree || isClassicBlock || !clientId || !!noteId
|
|
152
100
|
}
|
|
153
101
|
);
|
|
154
102
|
const { merged: GlobalStyles } = (0, import_global_styles_provider.useGlobalStylesContext)();
|
|
155
103
|
const backgroundColor = GlobalStyles?.styles?.color?.background;
|
|
156
|
-
const currentThread =
|
|
104
|
+
const currentThread = noteId ? notes.find((thread) => thread.id === noteId) : null;
|
|
157
105
|
async function openTheSidebar(selectedClientId) {
|
|
158
106
|
const prevArea = await getActiveComplementaryArea("core");
|
|
159
107
|
const activeNotesArea = import_constants.SIDEBARS.find((name) => name === prevArea);
|
|
160
108
|
const targetClientId = selectedClientId && selectedClientId !== clientId ? selectedClientId : clientId;
|
|
161
|
-
const targetNote =
|
|
109
|
+
const targetNote = notes.find(
|
|
162
110
|
(note) => note.blockClientId === targetClientId
|
|
163
111
|
);
|
|
164
112
|
if (targetNote?.status === "approved") {
|
|
@@ -178,17 +126,17 @@ function NotesSidebar({ postId }) {
|
|
|
178
126
|
selectNote(targetNote ? targetNote.id : "new", { focus: true });
|
|
179
127
|
}
|
|
180
128
|
if (isDistractionFree) {
|
|
181
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_add_note_menu_item.AddNoteMenuItem, { isDistractionFree: true });
|
|
182
130
|
}
|
|
183
131
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
184
132
|
!!currentThread && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
185
|
-
|
|
133
|
+
import_note_indicator_toolbar.NoteAvatarIndicator,
|
|
186
134
|
{
|
|
187
|
-
|
|
135
|
+
note: currentThread,
|
|
188
136
|
onClick: openTheSidebar
|
|
189
137
|
}
|
|
190
138
|
),
|
|
191
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
139
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_add_note_menu_item.AddNoteMenuItem, { onClick: openTheSidebar }),
|
|
192
140
|
showAllNotesSidebar && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
193
141
|
import_plugin_sidebar.default,
|
|
194
142
|
{
|
|
@@ -198,13 +146,7 @@ function NotesSidebar({ postId }) {
|
|
|
198
146
|
header: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "interface-complementary-area-header__title", children: (0, import_i18n.__)("All notes") }),
|
|
199
147
|
icon: import_icons.comment,
|
|
200
148
|
closeLabel: (0, import_i18n.__)("Close Notes"),
|
|
201
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
202
|
-
NotesSidebarContent,
|
|
203
|
-
{
|
|
204
|
-
comments: resultComments,
|
|
205
|
-
commentSidebarRef
|
|
206
|
-
}
|
|
207
|
-
)
|
|
149
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_notes.Notes, { notes, sidebarRef })
|
|
208
150
|
}
|
|
209
151
|
),
|
|
210
152
|
isLargeViewport && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -217,15 +159,11 @@ function NotesSidebar({ postId }) {
|
|
|
217
159
|
headerClassName: "editor-collab-sidebar__header",
|
|
218
160
|
backgroundColor,
|
|
219
161
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
220
|
-
|
|
162
|
+
import_notes.Notes,
|
|
221
163
|
{
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
commentLastUpdated,
|
|
226
|
-
styles: {
|
|
227
|
-
backgroundColor
|
|
228
|
-
},
|
|
164
|
+
notes: unresolvedNotes,
|
|
165
|
+
sidebarRef,
|
|
166
|
+
styles: { backgroundColor },
|
|
229
167
|
isFloating: true
|
|
230
168
|
}
|
|
231
169
|
)
|