@wordpress/editor 14.44.0 → 14.44.1-next.v.202604201441.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/build/components/collab-sidebar/add-comment.cjs +6 -22
- package/build/components/collab-sidebar/add-comment.cjs.map +3 -3
- package/build/components/collab-sidebar/board-store.cjs +103 -0
- package/build/components/collab-sidebar/board-store.cjs.map +7 -0
- package/build/components/collab-sidebar/comment-form.cjs +2 -10
- package/build/components/collab-sidebar/comment-form.cjs.map +2 -2
- package/build/components/collab-sidebar/comments.cjs +29 -149
- package/build/components/collab-sidebar/comments.cjs.map +3 -3
- package/build/components/collab-sidebar/floating-container.cjs +62 -0
- package/build/components/collab-sidebar/floating-container.cjs.map +7 -0
- package/build/components/collab-sidebar/hooks.cjs +49 -41
- package/build/components/collab-sidebar/hooks.cjs.map +2 -2
- package/build/components/collab-sidebar/index.cjs +2 -13
- package/build/components/collab-sidebar/index.cjs.map +2 -2
- package/build/components/collab-sidebar/utils.cjs +72 -4
- 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/media-categories/index.cjs +1 -1
- package/build/components/media-categories/index.cjs.map +1 -1
- package/build/components/more-menu/index.cjs +1 -1
- package/build/components/more-menu/index.cjs.map +1 -1
- 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/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-module/components/collab-sidebar/add-comment.mjs +8 -27
- package/build-module/components/collab-sidebar/add-comment.mjs.map +2 -2
- package/build-module/components/collab-sidebar/board-store.mjs +78 -0
- package/build-module/components/collab-sidebar/board-store.mjs.map +7 -0
- package/build-module/components/collab-sidebar/comment-form.mjs +4 -12
- package/build-module/components/collab-sidebar/comment-form.mjs.map +2 -2
- package/build-module/components/collab-sidebar/comments.mjs +30 -151
- package/build-module/components/collab-sidebar/comments.mjs.map +2 -2
- package/build-module/components/collab-sidebar/floating-container.mjs +27 -0
- package/build-module/components/collab-sidebar/floating-container.mjs.map +7 -0
- package/build-module/components/collab-sidebar/hooks.mjs +51 -44
- package/build-module/components/collab-sidebar/hooks.mjs.map +2 -2
- package/build-module/components/collab-sidebar/index.mjs +2 -13
- package/build-module/components/collab-sidebar/index.mjs.map +2 -2
- package/build-module/components/collab-sidebar/utils.mjs +71 -3
- 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/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 +1 -1
- package/build-module/components/more-menu/index.mjs.map +1 -1
- 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/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-style/style-rtl.css +12 -30
- package/build-style/style.css +12 -30
- package/build-types/components/collab-sidebar/add-comment.d.ts +2 -6
- package/build-types/components/collab-sidebar/add-comment.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/board-store.d.ts +8 -0
- package/build-types/components/collab-sidebar/board-store.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/comment-form.d.ts +1 -3
- package/build-types/components/collab-sidebar/comment-form.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/comments.d.ts +1 -3
- package/build-types/components/collab-sidebar/comments.d.ts.map +1 -1
- 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 -9
- 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/utils.d.ts +27 -4
- package/build-types/components/collab-sidebar/utils.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/package.json +45 -45
- package/src/components/collab-sidebar/add-comment.js +9 -31
- package/src/components/collab-sidebar/board-store.js +83 -0
- package/src/components/collab-sidebar/comment-form.js +5 -14
- package/src/components/collab-sidebar/comments.js +29 -202
- package/src/components/collab-sidebar/floating-container.js +29 -0
- package/src/components/collab-sidebar/hooks.js +60 -48
- package/src/components/collab-sidebar/index.js +3 -14
- package/src/components/collab-sidebar/test/utils.js +153 -0
- package/src/components/collab-sidebar/utils.js +112 -4
- 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-outline/style.scss +1 -1
- package/src/components/media-categories/index.js +1 -1
- package/src/components/more-menu/index.js +1 -1
- package/src/components/post-publish-panel/maybe-upload-media.js +1 -1
- package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +2 -2
- package/src/components/post-revisions-preview/style.scss +1 -1
- package/src/components/style-book/constants.ts +1 -1
- package/src/components/style-book/index.js +1 -1
- package/src/components/template-actions-panel/style.scss +1 -1
|
@@ -33,7 +33,6 @@ __export(add_comment_exports, {
|
|
|
33
33
|
AddComment: () => AddComment
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(add_comment_exports);
|
|
36
|
-
var import_clsx = __toESM(require("clsx"));
|
|
37
36
|
var import_i18n = require("@wordpress/i18n");
|
|
38
37
|
var import_data = require("@wordpress/data");
|
|
39
38
|
var import_components = require("@wordpress/components");
|
|
@@ -41,18 +40,12 @@ var import_block_editor = require("@wordpress/block-editor");
|
|
|
41
40
|
var import_lock_unlock = require("../../lock-unlock.cjs");
|
|
42
41
|
var import_comment_author_info = __toESM(require("./comment-author-info.cjs"));
|
|
43
42
|
var import_comment_form = __toESM(require("./comment-form.cjs"));
|
|
43
|
+
var import_floating_container = require("./floating-container.cjs");
|
|
44
44
|
var import_utils = require("./utils.cjs");
|
|
45
45
|
var import_store = require("../../store/index.cjs");
|
|
46
46
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
47
47
|
var { useBlockElement } = (0, import_lock_unlock.unlock)(import_block_editor.privateApis);
|
|
48
|
-
function AddComment({
|
|
49
|
-
onSubmit,
|
|
50
|
-
commentSidebarRef,
|
|
51
|
-
reflowComments = import_utils.noop,
|
|
52
|
-
isFloating = false,
|
|
53
|
-
y,
|
|
54
|
-
refs
|
|
55
|
-
}) {
|
|
48
|
+
function AddComment({ onSubmit, commentSidebarRef, floating }) {
|
|
56
49
|
const { clientId } = (0, import_data.useSelect)((select) => {
|
|
57
50
|
const { getSelectedBlockClientId } = select(import_block_editor.store);
|
|
58
51
|
return {
|
|
@@ -75,23 +68,15 @@ function AddComment({
|
|
|
75
68
|
return null;
|
|
76
69
|
}
|
|
77
70
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
78
|
-
|
|
71
|
+
import_floating_container.FloatingContainer,
|
|
79
72
|
{
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
{
|
|
83
|
-
"is-floating": isFloating
|
|
84
|
-
}
|
|
85
|
-
),
|
|
73
|
+
floating,
|
|
74
|
+
className: "editor-collab-sidebar-panel__thread is-selected",
|
|
86
75
|
spacing: "3",
|
|
87
76
|
tabIndex: 0,
|
|
88
77
|
"aria-label": (0, import_i18n.__)("New note"),
|
|
89
78
|
role: "treeitem",
|
|
90
|
-
|
|
91
|
-
style: isFloating ? (
|
|
92
|
-
// Delay showing the floating note box until a Y position is known to prevent blink.
|
|
93
|
-
{ top: y, opacity: !y ? 0 : void 0 }
|
|
94
|
-
) : void 0,
|
|
79
|
+
style: floating ? { opacity: !floating.y ? 0 : void 0 } : void 0,
|
|
95
80
|
onBlur: (event) => {
|
|
96
81
|
if (!document.hasFocus()) {
|
|
97
82
|
return;
|
|
@@ -113,7 +98,6 @@ function AddComment({
|
|
|
113
98
|
(0, import_utils.focusCommentThread)(id, commentSidebarRef.current);
|
|
114
99
|
},
|
|
115
100
|
onCancel: unselectThread,
|
|
116
|
-
reflowComments,
|
|
117
101
|
submitButtonText: (0, import_i18n.__)("Add note"),
|
|
118
102
|
labelText: (0, import_i18n.__)("New note")
|
|
119
103
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/collab-sidebar/add-comment.js"],
|
|
4
|
-
"sourcesContent": ["/**\n *
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,
|
|
6
|
-
"names": ["blockEditorPrivateApis", "blockEditorStore", "editorStore", "
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport CommentAuthorInfo from './comment-author-info';\nimport CommentForm from './comment-form';\nimport { FloatingContainer } from './floating-container';\nimport { focusCommentThread } from './utils';\nimport { store as editorStore } from '../../store';\n\nconst { useBlockElement } = unlock( blockEditorPrivateApis );\n\nexport function AddComment( { onSubmit, commentSidebarRef, floating } ) {\n\tconst { clientId } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientId } = select( blockEditorStore );\n\t\treturn {\n\t\t\tclientId: getSelectedBlockClientId(),\n\t\t};\n\t}, [] );\n\tconst selectedNote = useSelect(\n\t\t( select ) => unlock( select( editorStore ) ).getSelectedNote(),\n\t\t[]\n\t);\n\tconst blockElement = useBlockElement( clientId );\n\tconst { toggleBlockSpotlight } = unlock( useDispatch( blockEditorStore ) );\n\tconst { selectNote } = unlock( useDispatch( editorStore ) );\n\n\tconst unselectThread = () => {\n\t\tselectNote( undefined );\n\t\tblockElement?.focus();\n\t\ttoggleBlockSpotlight( clientId, false );\n\t};\n\n\tif ( selectedNote !== 'new' || ! clientId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<FloatingContainer\n\t\t\tfloating={ floating }\n\t\t\tclassName=\"editor-collab-sidebar-panel__thread is-selected\"\n\t\t\tspacing=\"3\"\n\t\t\ttabIndex={ 0 }\n\t\t\taria-label={ __( 'New note' ) }\n\t\t\trole=\"treeitem\"\n\t\t\tstyle={\n\t\t\t\tfloating ? { opacity: ! floating.y ? 0 : undefined } : undefined\n\t\t\t}\n\t\t\tonBlur={ ( event ) => {\n\t\t\t\t// Don't deselect notes when the browser window/tab loses focus.\n\t\t\t\tif ( ! document.hasFocus() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( event.currentTarget.contains( event.relatedTarget ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\ttoggleBlockSpotlight( clientId, false );\n\t\t\t\tselectNote( undefined );\n\t\t\t} }\n\t\t>\n\t\t\t<HStack alignment=\"left\" spacing=\"3\">\n\t\t\t\t<CommentAuthorInfo />\n\t\t\t</HStack>\n\t\t\t<CommentForm\n\t\t\t\tonSubmit={ async ( inputComment ) => {\n\t\t\t\t\tconst { id } = await onSubmit( { content: inputComment } );\n\t\t\t\t\tselectNote( id );\n\t\t\t\t\tfocusCommentThread( id, commentSidebarRef.current );\n\t\t\t\t} }\n\t\t\t\tonCancel={ unselectThread }\n\t\t\t\tsubmitButtonText={ __( 'Add note' ) }\n\t\t\t\tlabelText={ __( 'New note' ) }\n\t\t\t/>\n\t\t</FloatingContainer>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,kBAAuC;AACvC,wBAA+C;AAC/C,0BAGO;AAKP,yBAAuB;AACvB,iCAA8B;AAC9B,0BAAwB;AACxB,gCAAkC;AAClC,mBAAmC;AACnC,mBAAqC;AA8BnC;AA5BF,IAAM,EAAE,gBAAgB,QAAI,2BAAQ,oBAAAA,WAAuB;AAEpD,SAAS,WAAY,EAAE,UAAU,mBAAmB,SAAS,GAAI;AACvE,QAAM,EAAE,SAAS,QAAI,uBAAW,CAAE,WAAY;AAC7C,UAAM,EAAE,yBAAyB,IAAI,OAAQ,oBAAAC,KAAiB;AAC9D,WAAO;AAAA,MACN,UAAU,yBAAyB;AAAA,IACpC;AAAA,EACD,GAAG,CAAC,CAAE;AACN,QAAM,mBAAe;AAAA,IACpB,CAAE,eAAY,2BAAQ,OAAQ,aAAAC,KAAY,CAAE,EAAE,gBAAgB;AAAA,IAC9D,CAAC;AAAA,EACF;AACA,QAAM,eAAe,gBAAiB,QAAS;AAC/C,QAAM,EAAE,qBAAqB,QAAI,+BAAQ,yBAAa,oBAAAD,KAAiB,CAAE;AACzE,QAAM,EAAE,WAAW,QAAI,+BAAQ,yBAAa,aAAAC,KAAY,CAAE;AAE1D,QAAM,iBAAiB,MAAM;AAC5B,eAAY,MAAU;AACtB,kBAAc,MAAM;AACpB,yBAAsB,UAAU,KAAM;AAAA,EACvC;AAEA,MAAK,iBAAiB,SAAS,CAAE,UAAW;AAC3C,WAAO;AAAA,EACR;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,UAAW;AAAA,MACX,kBAAa,gBAAI,UAAW;AAAA,MAC5B,MAAK;AAAA,MACL,OACC,WAAW,EAAE,SAAS,CAAE,SAAS,IAAI,IAAI,OAAU,IAAI;AAAA,MAExD,QAAS,CAAE,UAAW;AAErB,YAAK,CAAE,SAAS,SAAS,GAAI;AAC5B;AAAA,QACD;AACA,YAAK,MAAM,cAAc,SAAU,MAAM,aAAc,GAAI;AAC1D;AAAA,QACD;AACA,6BAAsB,UAAU,KAAM;AACtC,mBAAY,MAAU;AAAA,MACvB;AAAA,MAEA;AAAA,oDAAC,kBAAAC,sBAAA,EAAO,WAAU,QAAO,SAAQ,KAChC,sDAAC,2BAAAC,SAAA,EAAkB,GACpB;AAAA,QACA;AAAA,UAAC,oBAAAC;AAAA,UAAA;AAAA,YACA,UAAW,OAAQ,iBAAkB;AACpC,oBAAM,EAAE,GAAG,IAAI,MAAM,SAAU,EAAE,SAAS,aAAa,CAAE;AACzD,yBAAY,EAAG;AACf,mDAAoB,IAAI,kBAAkB,OAAQ;AAAA,YACnD;AAAA,YACA,UAAW;AAAA,YACX,sBAAmB,gBAAI,UAAW;AAAA,YAClC,eAAY,gBAAI,UAAW;AAAA;AAAA,QAC5B;AAAA;AAAA;AAAA,EACD;AAEF;",
|
|
6
|
+
"names": ["blockEditorPrivateApis", "blockEditorStore", "editorStore", "HStack", "CommentAuthorInfo", "CommentForm"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// packages/editor/src/components/collab-sidebar/board-store.js
|
|
21
|
+
var board_store_exports = {};
|
|
22
|
+
__export(board_store_exports, {
|
|
23
|
+
createBoardStore: () => createBoardStore
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(board_store_exports);
|
|
26
|
+
function createBoardStore() {
|
|
27
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
28
|
+
const blockRefs = /* @__PURE__ */ new Map();
|
|
29
|
+
const floatingRefs = /* @__PURE__ */ new Map();
|
|
30
|
+
const idByElement = /* @__PURE__ */ new WeakMap();
|
|
31
|
+
const heights = {};
|
|
32
|
+
let snapshot = {};
|
|
33
|
+
function emit() {
|
|
34
|
+
snapshot = { ...heights };
|
|
35
|
+
for (const listener of listeners) {
|
|
36
|
+
listener();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const observer = new window.ResizeObserver((entries) => {
|
|
40
|
+
let changed = false;
|
|
41
|
+
for (const entry of entries) {
|
|
42
|
+
const id = idByElement.get(entry.target);
|
|
43
|
+
const newHeight = entry.borderBoxSize[0].blockSize;
|
|
44
|
+
if (heights[id] !== newHeight) {
|
|
45
|
+
heights[id] = newHeight;
|
|
46
|
+
changed = true;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (changed) {
|
|
50
|
+
emit();
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
subscribe(listener) {
|
|
55
|
+
listeners.add(listener);
|
|
56
|
+
return () => {
|
|
57
|
+
listeners.delete(listener);
|
|
58
|
+
if (listeners.size === 0) {
|
|
59
|
+
observer.disconnect();
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
},
|
|
63
|
+
getSnapshot() {
|
|
64
|
+
return snapshot;
|
|
65
|
+
},
|
|
66
|
+
registerThread(id, blockEl, floatingEl) {
|
|
67
|
+
blockRefs.set(id, blockEl);
|
|
68
|
+
const prev = floatingRefs.get(id);
|
|
69
|
+
if (prev && prev !== floatingEl) {
|
|
70
|
+
observer.unobserve(prev);
|
|
71
|
+
idByElement.delete(prev);
|
|
72
|
+
}
|
|
73
|
+
if (floatingEl) {
|
|
74
|
+
floatingRefs.set(id, floatingEl);
|
|
75
|
+
idByElement.set(floatingEl, id);
|
|
76
|
+
observer.observe(floatingEl);
|
|
77
|
+
}
|
|
78
|
+
emit();
|
|
79
|
+
},
|
|
80
|
+
unregisterThread(id) {
|
|
81
|
+
blockRefs.delete(id);
|
|
82
|
+
const prev = floatingRefs.get(id);
|
|
83
|
+
if (prev) {
|
|
84
|
+
observer.unobserve(prev);
|
|
85
|
+
idByElement.delete(prev);
|
|
86
|
+
floatingRefs.delete(id);
|
|
87
|
+
}
|
|
88
|
+
delete heights[id];
|
|
89
|
+
},
|
|
90
|
+
getBlockRects() {
|
|
91
|
+
return Object.fromEntries(
|
|
92
|
+
Array.from(blockRefs).flatMap(
|
|
93
|
+
([id, el]) => el ? [[id, el.getBoundingClientRect()]] : []
|
|
94
|
+
)
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
100
|
+
0 && (module.exports = {
|
|
101
|
+
createBoardStore
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=board-store.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/collab-sidebar/board-store.js"],
|
|
4
|
+
"sourcesContent": ["export function createBoardStore() {\n\tconst listeners = new Set();\n\tconst blockRefs = new Map();\n\tconst floatingRefs = new Map();\n\tconst idByElement = new WeakMap();\n\tconst heights = {};\n\tlet snapshot = {};\n\n\tfunction emit() {\n\t\tsnapshot = { ...heights };\n\t\tfor ( const listener of listeners ) {\n\t\t\tlistener();\n\t\t}\n\t}\n\n\tconst observer = new window.ResizeObserver( ( entries ) => {\n\t\tlet changed = false;\n\t\tfor ( const entry of entries ) {\n\t\t\tconst id = idByElement.get( entry.target );\n\t\t\tconst newHeight = entry.borderBoxSize[ 0 ].blockSize;\n\t\t\tif ( heights[ id ] !== newHeight ) {\n\t\t\t\theights[ id ] = newHeight;\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t}\n\t\tif ( changed ) {\n\t\t\temit();\n\t\t}\n\t} );\n\n\treturn {\n\t\tsubscribe( listener ) {\n\t\t\tlisteners.add( listener );\n\t\t\treturn () => {\n\t\t\t\tlisteners.delete( listener );\n\t\t\t\tif ( listeners.size === 0 ) {\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\n\t\tgetSnapshot() {\n\t\t\treturn snapshot;\n\t\t},\n\n\t\tregisterThread( id, blockEl, floatingEl ) {\n\t\t\tblockRefs.set( id, blockEl );\n\n\t\t\tconst prev = floatingRefs.get( id );\n\t\t\tif ( prev && prev !== floatingEl ) {\n\t\t\t\tobserver.unobserve( prev );\n\t\t\t\tidByElement.delete( prev );\n\t\t\t}\n\t\t\tif ( floatingEl ) {\n\t\t\t\tfloatingRefs.set( id, floatingEl );\n\t\t\t\tidByElement.set( floatingEl, id );\n\t\t\t\tobserver.observe( floatingEl );\n\t\t\t}\n\n\t\t\temit();\n\t\t},\n\n\t\tunregisterThread( id ) {\n\t\t\tblockRefs.delete( id );\n\t\t\tconst prev = floatingRefs.get( id );\n\t\t\tif ( prev ) {\n\t\t\t\tobserver.unobserve( prev );\n\t\t\t\tidByElement.delete( prev );\n\t\t\t\tfloatingRefs.delete( id );\n\t\t\t}\n\t\t\tdelete heights[ id ];\n\t\t},\n\n\t\tgetBlockRects() {\n\t\t\t// Batch all rect reads before any writes to avoid layout thrashing.\n\t\t\treturn Object.fromEntries(\n\t\t\t\tArray.from( blockRefs ).flatMap( ( [ id, el ] ) =>\n\t\t\t\t\tel ? [ [ id, el.getBoundingClientRect() ] ] : []\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t};\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,mBAAmB;AAClC,QAAM,YAAY,oBAAI,IAAI;AAC1B,QAAM,YAAY,oBAAI,IAAI;AAC1B,QAAM,eAAe,oBAAI,IAAI;AAC7B,QAAM,cAAc,oBAAI,QAAQ;AAChC,QAAM,UAAU,CAAC;AACjB,MAAI,WAAW,CAAC;AAEhB,WAAS,OAAO;AACf,eAAW,EAAE,GAAG,QAAQ;AACxB,eAAY,YAAY,WAAY;AACnC,eAAS;AAAA,IACV;AAAA,EACD;AAEA,QAAM,WAAW,IAAI,OAAO,eAAgB,CAAE,YAAa;AAC1D,QAAI,UAAU;AACd,eAAY,SAAS,SAAU;AAC9B,YAAM,KAAK,YAAY,IAAK,MAAM,MAAO;AACzC,YAAM,YAAY,MAAM,cAAe,CAAE,EAAE;AAC3C,UAAK,QAAS,EAAG,MAAM,WAAY;AAClC,gBAAS,EAAG,IAAI;AAChB,kBAAU;AAAA,MACX;AAAA,IACD;AACA,QAAK,SAAU;AACd,WAAK;AAAA,IACN;AAAA,EACD,CAAE;AAEF,SAAO;AAAA,IACN,UAAW,UAAW;AACrB,gBAAU,IAAK,QAAS;AACxB,aAAO,MAAM;AACZ,kBAAU,OAAQ,QAAS;AAC3B,YAAK,UAAU,SAAS,GAAI;AAC3B,mBAAS,WAAW;AAAA,QACrB;AAAA,MACD;AAAA,IACD;AAAA,IAEA,cAAc;AACb,aAAO;AAAA,IACR;AAAA,IAEA,eAAgB,IAAI,SAAS,YAAa;AACzC,gBAAU,IAAK,IAAI,OAAQ;AAE3B,YAAM,OAAO,aAAa,IAAK,EAAG;AAClC,UAAK,QAAQ,SAAS,YAAa;AAClC,iBAAS,UAAW,IAAK;AACzB,oBAAY,OAAQ,IAAK;AAAA,MAC1B;AACA,UAAK,YAAa;AACjB,qBAAa,IAAK,IAAI,UAAW;AACjC,oBAAY,IAAK,YAAY,EAAG;AAChC,iBAAS,QAAS,UAAW;AAAA,MAC9B;AAEA,WAAK;AAAA,IACN;AAAA,IAEA,iBAAkB,IAAK;AACtB,gBAAU,OAAQ,EAAG;AACrB,YAAM,OAAO,aAAa,IAAK,EAAG;AAClC,UAAK,MAAO;AACX,iBAAS,UAAW,IAAK;AACzB,oBAAY,OAAQ,IAAK;AACzB,qBAAa,OAAQ,EAAG;AAAA,MACzB;AACA,aAAO,QAAS,EAAG;AAAA,IACpB;AAAA,IAEA,gBAAgB;AAEf,aAAO,OAAO;AAAA,QACb,MAAM,KAAM,SAAU,EAAE;AAAA,UAAS,CAAE,CAAE,IAAI,EAAG,MAC3C,KAAK,CAAE,CAAE,IAAI,GAAG,sBAAsB,CAAE,CAAE,IAAI,CAAC;AAAA,QAChD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -46,16 +46,11 @@ function CommentForm({
|
|
|
46
46
|
onCancel,
|
|
47
47
|
thread,
|
|
48
48
|
submitButtonText,
|
|
49
|
-
labelText
|
|
50
|
-
reflowComments = import_utils.noop
|
|
49
|
+
labelText
|
|
51
50
|
}) {
|
|
52
51
|
const [inputComment, setInputComment] = (0, import_element.useState)(
|
|
53
52
|
thread?.content?.raw ?? ""
|
|
54
53
|
);
|
|
55
|
-
const debouncedCommentUpdated = (0, import_compose.useDebounce)(reflowComments, 100);
|
|
56
|
-
const updateComment = (value) => {
|
|
57
|
-
setInputComment(value);
|
|
58
|
-
};
|
|
59
54
|
const inputId = (0, import_compose.useInstanceId)(CommentForm, "comment-input");
|
|
60
55
|
const isDisabled = inputComment === thread?.content?.raw || !(0, import_utils.sanitizeCommentString)(inputComment).length;
|
|
61
56
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
@@ -76,10 +71,7 @@ function CommentForm({
|
|
|
76
71
|
{
|
|
77
72
|
id: inputId,
|
|
78
73
|
value: inputComment ?? "",
|
|
79
|
-
onChange: (comment) =>
|
|
80
|
-
updateComment(comment.target.value);
|
|
81
|
-
debouncedCommentUpdated();
|
|
82
|
-
},
|
|
74
|
+
onChange: (comment) => setInputComment(comment.target.value),
|
|
83
75
|
rows: 1,
|
|
84
76
|
maxRows: 20,
|
|
85
77
|
onKeyDown: (event) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/collab-sidebar/comment-form.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport TextareaAutosize from 'react-autosize-textarea';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tButton,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useInstanceId
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qCAA6B;AAK7B,qBAAyB;AACzB,wBAMO;AACP,kBAAmB;AACnB,
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport TextareaAutosize from 'react-autosize-textarea';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tButton,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { isKeyboardEvent } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { sanitizeCommentString } from './utils';\n\nfunction CommentForm( {\n\tonSubmit,\n\tonCancel,\n\tthread,\n\tsubmitButtonText,\n\tlabelText,\n} ) {\n\tconst [ inputComment, setInputComment ] = useState(\n\t\tthread?.content?.raw ?? ''\n\t);\n\n\tconst inputId = useInstanceId( CommentForm, 'comment-input' );\n\tconst isDisabled =\n\t\tinputComment === thread?.content?.raw ||\n\t\t! sanitizeCommentString( inputComment ).length;\n\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"editor-collab-sidebar-panel__comment-form\"\n\t\t\tspacing=\"4\"\n\t\t\tas=\"form\"\n\t\t\tonSubmit={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonSubmit( inputComment );\n\t\t\t\tsetInputComment( '' );\n\t\t\t} }\n\t\t>\n\t\t\t<VisuallyHidden as=\"label\" htmlFor={ inputId }>\n\t\t\t\t{ labelText ?? __( 'Note' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t<TextareaAutosize\n\t\t\t\tid={ inputId }\n\t\t\t\tvalue={ inputComment ?? '' }\n\t\t\t\tonChange={ ( comment ) =>\n\t\t\t\t\tsetInputComment( comment.target.value )\n\t\t\t\t}\n\t\t\t\trows={ 1 }\n\t\t\t\tmaxRows={ 20 }\n\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tisKeyboardEvent.primary( event, 'Enter' ) &&\n\t\t\t\t\t\t! isDisabled\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.target.parentNode.requestSubmit();\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( event.key === 'Escape' ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t// Passing event for reply forms.\n\t\t\t\t\t\tonCancel( event );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<HStack spacing=\"2\" justify=\"flex-end\" wrap>\n\t\t\t\t<Button size=\"compact\" variant=\"tertiary\" onClick={ onCancel }>\n\t\t\t\t\t<Truncate>{ __( 'Cancel' ) }</Truncate>\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t>\n\t\t\t\t\t<Truncate>{ submitButtonText }</Truncate>\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nexport default CommentForm;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qCAA6B;AAK7B,qBAAyB;AACzB,wBAMO;AACP,kBAAmB;AACnB,qBAA8B;AAC9B,sBAAgC;AAKhC,mBAAsC;AA6BnC;AA3BH,SAAS,YAAa;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,CAAE,cAAc,eAAgB,QAAI;AAAA,IACzC,QAAQ,SAAS,OAAO;AAAA,EACzB;AAEA,QAAM,cAAU,8BAAe,aAAa,eAAgB;AAC5D,QAAM,aACL,iBAAiB,QAAQ,SAAS,OAClC,KAAE,oCAAuB,YAAa,EAAE;AAEzC,SACC;AAAA,IAAC,kBAAAA;AAAA,IAAA;AAAA,MACA,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,IAAG;AAAA,MACH,UAAW,CAAE,UAAW;AACvB,cAAM,eAAe;AACrB,iBAAU,YAAa;AACvB,wBAAiB,EAAG;AAAA,MACrB;AAAA,MAEA;AAAA,oDAAC,oCAAe,IAAG,SAAQ,SAAU,SAClC,2BAAa,gBAAI,MAAO,GAC3B;AAAA,QACA;AAAA,UAAC,+BAAAC;AAAA,UAAA;AAAA,YACA,IAAK;AAAA,YACL,OAAQ,gBAAgB;AAAA,YACxB,UAAW,CAAE,YACZ,gBAAiB,QAAQ,OAAO,KAAM;AAAA,YAEvC,MAAO;AAAA,YACP,SAAU;AAAA,YACV,WAAY,CAAE,UAAW;AACxB,kBACC,gCAAgB,QAAS,OAAO,OAAQ,KACxC,CAAE,YACD;AACD,sBAAM,OAAO,WAAW,cAAc;AAAA,cACvC;AAEA,kBAAK,MAAM,QAAQ,UAAW;AAC7B,sBAAM,eAAe;AAErB,yBAAU,KAAM;AAAA,cACjB;AAAA,YACD;AAAA;AAAA,QACD;AAAA,QACA,6CAAC,kBAAAC,sBAAA,EAAO,SAAQ,KAAI,SAAQ,YAAW,MAAI,MAC1C;AAAA,sDAAC,4BAAO,MAAK,WAAU,SAAQ,YAAW,SAAU,UACnD,sDAAC,kBAAAC,wBAAA,EAAW,8BAAI,QAAS,GAAG,GAC7B;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACA,MAAK;AAAA,cACL,wBAAsB;AAAA,cACtB,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,UAAW;AAAA,cAEX,sDAAC,kBAAAA,wBAAA,EAAW,4BAAkB;AAAA;AAAA,UAC/B;AAAA,WACD;AAAA;AAAA;AAAA,EACD;AAEF;AAEA,IAAO,uBAAQ;",
|
|
6
6
|
"names": ["VStack", "TextareaAutosize", "HStack", "Truncate"]
|
|
7
7
|
}
|
|
@@ -48,6 +48,7 @@ var import_comment_author_info = __toESM(require("./comment-author-info.cjs"));
|
|
|
48
48
|
var import_comment_form = __toESM(require("./comment-form.cjs"));
|
|
49
49
|
var import_utils = require("./utils.cjs");
|
|
50
50
|
var import_hooks = require("./hooks.cjs");
|
|
51
|
+
var import_floating_container = require("./floating-container.cjs");
|
|
51
52
|
var import_add_comment = require("./add-comment.cjs");
|
|
52
53
|
var import_store = require("../../store/index.cjs");
|
|
53
54
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -59,16 +60,9 @@ function Comments({
|
|
|
59
60
|
onAddReply,
|
|
60
61
|
onCommentDelete,
|
|
61
62
|
commentSidebarRef,
|
|
62
|
-
|
|
63
|
-
isFloating = false,
|
|
64
|
-
commentLastUpdated
|
|
63
|
+
isFloating = false
|
|
65
64
|
}) {
|
|
66
|
-
const
|
|
67
|
-
const [boardOffsets, setBoardOffsets] = (0, import_element.useState)({});
|
|
68
|
-
const [blockRefs, setBlockRefs] = (0, import_element.useState)({});
|
|
69
|
-
const { setCanvasMinHeight, selectNote } = (0, import_lock_unlock.unlock)(
|
|
70
|
-
(0, import_data.useDispatch)(import_store.store)
|
|
71
|
-
);
|
|
65
|
+
const { selectNote } = (0, import_lock_unlock.unlock)((0, import_data.useDispatch)(import_store.store));
|
|
72
66
|
const { selectBlock, toggleBlockSpotlight } = (0, import_lock_unlock.unlock)(
|
|
73
67
|
(0, import_data.useDispatch)(import_block_editor.store)
|
|
74
68
|
);
|
|
@@ -161,96 +155,13 @@ function Comments({
|
|
|
161
155
|
selectNote(selectedNote);
|
|
162
156
|
}
|
|
163
157
|
}, [noteFocused, selectedNote, selectNote, commentSidebarRef]);
|
|
164
|
-
(0,
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}
|
|
170
|
-
const selectedThreadIndex = threads.findIndex(
|
|
171
|
-
(t) => t.id === selectedNote
|
|
172
|
-
);
|
|
173
|
-
const breakIndex = selectedThreadIndex === -1 ? 0 : selectedThreadIndex;
|
|
174
|
-
const selectedThreadData = threads[breakIndex];
|
|
175
|
-
if (!selectedThreadData || !blockRefs[selectedThreadData.id]) {
|
|
176
|
-
return { offsets, minHeight: 0 };
|
|
177
|
-
}
|
|
178
|
-
let blockElement = blockRefs[selectedThreadData.id];
|
|
179
|
-
let blockRect = blockElement?.getBoundingClientRect();
|
|
180
|
-
const selectedThreadTop = blockRect?.top || 0;
|
|
181
|
-
const selectedThreadHeight = heights[selectedThreadData.id] || 0;
|
|
182
|
-
offsets[selectedThreadData.id] = -16;
|
|
183
|
-
let previousThreadData = {
|
|
184
|
-
threadTop: selectedThreadTop - 16,
|
|
185
|
-
threadHeight: selectedThreadHeight
|
|
186
|
-
};
|
|
187
|
-
for (let i = breakIndex + 1; i < threads.length; i++) {
|
|
188
|
-
const thread = threads[i];
|
|
189
|
-
if (!blockRefs[thread.id]) {
|
|
190
|
-
continue;
|
|
191
|
-
}
|
|
192
|
-
blockElement = blockRefs[thread.id];
|
|
193
|
-
blockRect = blockElement?.getBoundingClientRect();
|
|
194
|
-
const threadTop = blockRect?.top || 0;
|
|
195
|
-
const threadHeight = heights[thread.id] || 0;
|
|
196
|
-
let additionalOffset = -16;
|
|
197
|
-
const previousBottom = previousThreadData.threadTop + previousThreadData.threadHeight;
|
|
198
|
-
if (threadTop < previousBottom + 16) {
|
|
199
|
-
additionalOffset = previousBottom - threadTop + 20;
|
|
200
|
-
}
|
|
201
|
-
offsets[thread.id] = additionalOffset;
|
|
202
|
-
previousThreadData = {
|
|
203
|
-
threadTop: threadTop + additionalOffset,
|
|
204
|
-
threadHeight
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
let nextThreadData = {
|
|
208
|
-
threadTop: selectedThreadTop - 16
|
|
209
|
-
};
|
|
210
|
-
for (let i = selectedThreadIndex - 1; i >= 0; i--) {
|
|
211
|
-
const thread = threads[i];
|
|
212
|
-
if (!blockRefs[thread.id]) {
|
|
213
|
-
continue;
|
|
214
|
-
}
|
|
215
|
-
blockElement = blockRefs[thread.id];
|
|
216
|
-
blockRect = blockElement?.getBoundingClientRect();
|
|
217
|
-
const threadTop = blockRect?.top || 0;
|
|
218
|
-
const threadHeight = heights[thread.id] || 0;
|
|
219
|
-
let additionalOffset = -16;
|
|
220
|
-
const threadBottom = threadTop + threadHeight;
|
|
221
|
-
if (threadBottom > nextThreadData.threadTop) {
|
|
222
|
-
additionalOffset = nextThreadData.threadTop - threadTop - threadHeight - 20;
|
|
223
|
-
}
|
|
224
|
-
offsets[thread.id] = additionalOffset;
|
|
225
|
-
nextThreadData = {
|
|
226
|
-
threadTop: threadTop + additionalOffset
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
let editorMinHeight = 0;
|
|
230
|
-
const lastThread = threads[threads.length - 1];
|
|
231
|
-
if (blockRefs[lastThread.id]) {
|
|
232
|
-
const lastBlockElement = blockRefs[lastThread.id];
|
|
233
|
-
const lastBlockRect = lastBlockElement?.getBoundingClientRect();
|
|
234
|
-
const lastThreadTop = lastBlockRect?.top || 0;
|
|
235
|
-
const lastThreadHeight = heights[lastThread.id] || 0;
|
|
236
|
-
const lastThreadOffset = offsets[lastThread.id] || 0;
|
|
237
|
-
editorMinHeight = lastThreadTop + lastThreadHeight + lastThreadOffset + 32;
|
|
238
|
-
}
|
|
239
|
-
return { offsets, minHeight: editorMinHeight };
|
|
240
|
-
};
|
|
241
|
-
const { offsets: newOffsets, minHeight } = calculateAllOffsets();
|
|
242
|
-
if (Object.keys(newOffsets).length > 0) {
|
|
243
|
-
setBoardOffsets(newOffsets);
|
|
158
|
+
const { boardOffsets, registerThread, unregisterThread } = (0, import_hooks.useFloatingBoard)(
|
|
159
|
+
{
|
|
160
|
+
threads,
|
|
161
|
+
selectedNoteId: selectedNote,
|
|
162
|
+
isFloating
|
|
244
163
|
}
|
|
245
|
-
|
|
246
|
-
}, [
|
|
247
|
-
heights,
|
|
248
|
-
blockRefs,
|
|
249
|
-
isFloating,
|
|
250
|
-
threads,
|
|
251
|
-
selectedNote,
|
|
252
|
-
setCanvasMinHeight
|
|
253
|
-
]);
|
|
164
|
+
);
|
|
254
165
|
const handleThreadNavigation = (event, thread, isSelected) => {
|
|
255
166
|
if (event.defaultPrevented) {
|
|
256
167
|
return;
|
|
@@ -283,9 +194,6 @@ function Comments({
|
|
|
283
194
|
);
|
|
284
195
|
}
|
|
285
196
|
};
|
|
286
|
-
const setBlockRef = (0, import_element.useCallback)((id, blockRef) => {
|
|
287
|
-
setBlockRefs((prev) => ({ ...prev, [id]: blockRef }));
|
|
288
|
-
}, []);
|
|
289
197
|
const hasThreads = Array.isArray(threads) && threads.length > 0;
|
|
290
198
|
if (!hasThreads && !isFloating) {
|
|
291
199
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -313,12 +221,11 @@ function Comments({
|
|
|
313
221
|
onEditComment,
|
|
314
222
|
isSelected: selectedNote === thread.id,
|
|
315
223
|
commentSidebarRef,
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
commentLastUpdated,
|
|
224
|
+
floating: isFloating ? {
|
|
225
|
+
calculatedOffset: boardOffsets[thread.id] ?? 0,
|
|
226
|
+
registerThread,
|
|
227
|
+
unregisterThread
|
|
228
|
+
} : void 0,
|
|
322
229
|
onKeyDown: (event) => handleThreadNavigation(
|
|
323
230
|
event,
|
|
324
231
|
thread,
|
|
@@ -336,22 +243,14 @@ function Thread({
|
|
|
336
243
|
onCommentDelete,
|
|
337
244
|
isSelected,
|
|
338
245
|
commentSidebarRef,
|
|
339
|
-
|
|
340
|
-
isFloating,
|
|
341
|
-
calculatedOffset,
|
|
342
|
-
setHeights,
|
|
343
|
-
setBlockRef,
|
|
344
|
-
commentLastUpdated,
|
|
246
|
+
floating,
|
|
345
247
|
onKeyDown
|
|
346
248
|
}) {
|
|
249
|
+
const isFloating = !!floating;
|
|
347
250
|
const { toggleBlockHighlight, selectBlock, toggleBlockSpotlight } = (0, import_lock_unlock.unlock)(
|
|
348
251
|
(0, import_data.useDispatch)(import_block_editor.store)
|
|
349
252
|
);
|
|
350
253
|
const { selectNote } = (0, import_lock_unlock.unlock)((0, import_data.useDispatch)(import_store.store));
|
|
351
|
-
const selectedNote = (0, import_data.useSelect)(
|
|
352
|
-
(select) => (0, import_lock_unlock.unlock)(select(import_store.store)).getSelectedNote(),
|
|
353
|
-
[]
|
|
354
|
-
);
|
|
355
254
|
const relatedBlockElement = useBlockElement(thread.blockClientId);
|
|
356
255
|
const debouncedToggleBlockHighlight = (0, import_compose.useDebounce)(
|
|
357
256
|
toggleBlockHighlight,
|
|
@@ -359,11 +258,9 @@ function Thread({
|
|
|
359
258
|
);
|
|
360
259
|
const { y, refs } = (0, import_hooks.useFloatingThread)({
|
|
361
260
|
thread,
|
|
362
|
-
calculatedOffset,
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
selectedThread: selectedNote,
|
|
366
|
-
commentLastUpdated
|
|
261
|
+
calculatedOffset: floating?.calculatedOffset ?? 0,
|
|
262
|
+
registerThread: floating?.registerThread,
|
|
263
|
+
unregisterThread: floating?.unregisterThread
|
|
367
264
|
});
|
|
368
265
|
const isKeyboardTabbingRef = (0, import_element.useRef)(false);
|
|
369
266
|
const onMouseEnter = () => {
|
|
@@ -429,19 +326,16 @@ function Thread({
|
|
|
429
326
|
{
|
|
430
327
|
onSubmit: onAddReply,
|
|
431
328
|
commentSidebarRef,
|
|
432
|
-
|
|
433
|
-
isFloating,
|
|
434
|
-
y,
|
|
435
|
-
refs
|
|
329
|
+
floating: { y, refs }
|
|
436
330
|
}
|
|
437
331
|
);
|
|
438
332
|
}
|
|
439
333
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
440
|
-
|
|
334
|
+
import_floating_container.FloatingContainer,
|
|
441
335
|
{
|
|
336
|
+
floating: isFloating ? { y, refs } : void 0,
|
|
442
337
|
className: (0, import_clsx.default)("editor-collab-sidebar-panel__thread", {
|
|
443
|
-
"is-selected": isSelected
|
|
444
|
-
"is-floating": isFloating
|
|
338
|
+
"is-selected": isSelected
|
|
445
339
|
}),
|
|
446
340
|
id: `comment-thread-${thread.id}`,
|
|
447
341
|
spacing: "3",
|
|
@@ -466,8 +360,6 @@ function Thread({
|
|
|
466
360
|
role: "treeitem",
|
|
467
361
|
"aria-label": ariaLabel,
|
|
468
362
|
"aria-expanded": isSelected,
|
|
469
|
-
ref: isFloating ? refs.setFloating : void 0,
|
|
470
|
-
style: isFloating ? { top: y } : void 0,
|
|
471
363
|
children: [
|
|
472
364
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
473
365
|
import_components.Button,
|
|
@@ -505,8 +397,7 @@ function Thread({
|
|
|
505
397
|
}
|
|
506
398
|
}
|
|
507
399
|
},
|
|
508
|
-
onDelete: onCommentDelete
|
|
509
|
-
reflowComments
|
|
400
|
+
onDelete: onCommentDelete
|
|
510
401
|
}
|
|
511
402
|
),
|
|
512
403
|
isSelected && allReplies.map((reply) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -516,8 +407,7 @@ function Thread({
|
|
|
516
407
|
parent: thread,
|
|
517
408
|
isExpanded: isSelected,
|
|
518
409
|
onEdit: onEditComment,
|
|
519
|
-
onDelete: onCommentDelete
|
|
520
|
-
reflowComments
|
|
410
|
+
onDelete: onCommentDelete
|
|
521
411
|
},
|
|
522
412
|
reply.id
|
|
523
413
|
)),
|
|
@@ -552,8 +442,7 @@ function Thread({
|
|
|
552
442
|
parent: thread,
|
|
553
443
|
isExpanded: isSelected,
|
|
554
444
|
onEdit: onEditComment,
|
|
555
|
-
onDelete: onCommentDelete
|
|
556
|
-
reflowComments
|
|
445
|
+
onDelete: onCommentDelete
|
|
557
446
|
}
|
|
558
447
|
),
|
|
559
448
|
isSelected && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalVStack, { spacing: "2", role: "treeitem", children: [
|
|
@@ -590,8 +479,7 @@ function Thread({
|
|
|
590
479
|
(0, import_i18n.__)("Reply to note %1$s by %2$s"),
|
|
591
480
|
thread.id,
|
|
592
481
|
thread.author_name
|
|
593
|
-
)
|
|
594
|
-
reflowComments
|
|
482
|
+
)
|
|
595
483
|
}
|
|
596
484
|
) })
|
|
597
485
|
] }),
|
|
@@ -612,14 +500,7 @@ function Thread({
|
|
|
612
500
|
}
|
|
613
501
|
);
|
|
614
502
|
}
|
|
615
|
-
var CommentBoard = ({
|
|
616
|
-
thread,
|
|
617
|
-
parent,
|
|
618
|
-
isExpanded,
|
|
619
|
-
onEdit,
|
|
620
|
-
onDelete,
|
|
621
|
-
reflowComments
|
|
622
|
-
}) => {
|
|
503
|
+
var CommentBoard = ({ thread, parent, isExpanded, onEdit, onDelete }) => {
|
|
623
504
|
const [actionState, setActionState] = (0, import_element.useState)(false);
|
|
624
505
|
const [showConfirmDialog, setShowConfirmDialog] = (0, import_element.useState)(false);
|
|
625
506
|
const actionButtonRef = (0, import_element.useRef)(null);
|
|
@@ -767,8 +648,7 @@ var CommentBoard = ({
|
|
|
767
648
|
(0, import_i18n.__)("Edit note %1$s by %2$s"),
|
|
768
649
|
thread.id,
|
|
769
650
|
thread.author_name
|
|
770
|
-
)
|
|
771
|
-
reflowComments
|
|
651
|
+
)
|
|
772
652
|
}
|
|
773
653
|
) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
774
654
|
import_element.RawHTML,
|