@dxos/plugin-thread 0.8.1-staging.391c573 → 0.8.1-staging.5be625a
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/dist/lib/browser/ChannelContainer-ITIG7L7P.mjs +75 -0
- package/dist/lib/browser/ChannelContainer-ITIG7L7P.mjs.map +7 -0
- package/dist/lib/browser/{chunk-NAO3LZMZ.mjs → chunk-NOOMCX5E.mjs} +3 -2
- package/dist/lib/browser/chunk-NOOMCX5E.mjs.map +7 -0
- package/dist/lib/browser/{chunk-UPKU23DA.mjs → chunk-NRMJGYMA.mjs} +50 -43
- package/dist/lib/browser/chunk-NRMJGYMA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-YK3ICB7G.mjs → chunk-SJPT347G.mjs} +19 -6
- package/dist/lib/browser/chunk-SJPT347G.mjs.map +7 -0
- package/dist/lib/browser/{chunk-BNEWNQBO.mjs → chunk-SMQYULO6.mjs} +16 -4
- package/dist/lib/browser/{chunk-BNEWNQBO.mjs.map → chunk-SMQYULO6.mjs.map} +4 -4
- package/dist/lib/browser/{chunk-636QDHE3.mjs → chunk-WBJLUUOK.mjs} +1 -1
- package/dist/lib/browser/{chunk-636QDHE3.mjs.map → chunk-WBJLUUOK.mjs.map} +2 -2
- package/dist/lib/browser/index.mjs +42 -31
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-FAFQ54NP.mjs → intent-resolver-FSG3ZOIM.mjs} +65 -62
- package/dist/lib/browser/intent-resolver-FSG3ZOIM.mjs.map +7 -0
- package/dist/lib/browser/{markdown-RPYOUBVR.mjs → markdown-MYZQDQFY.mjs} +6 -6
- package/dist/lib/browser/markdown-MYZQDQFY.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-Y4MUSICN.mjs → react-surface-KOYRIK3E.mjs} +25 -32
- package/dist/lib/browser/react-surface-KOYRIK3E.mjs.map +7 -0
- package/dist/lib/browser/{settings-WQTE5AEZ.mjs → settings-5CREE7BH.mjs} +3 -3
- package/dist/lib/browser/{state-GNFUURIC.mjs → state-HPUFZBB7.mjs} +4 -3
- package/dist/lib/browser/state-HPUFZBB7.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +2 -2
- package/dist/lib/node/ChannelContainer-F7345XW2.cjs +99 -0
- package/dist/lib/node/ChannelContainer-F7345XW2.cjs.map +7 -0
- package/dist/lib/node/{chunk-CMEMMYDL.cjs → chunk-AXTPNGRI.cjs} +23 -10
- package/dist/lib/node/chunk-AXTPNGRI.cjs.map +7 -0
- package/dist/lib/node/{chunk-RQR5Z23G.cjs → chunk-DGV5ABT6.cjs} +52 -45
- package/dist/lib/node/chunk-DGV5ABT6.cjs.map +7 -0
- package/dist/lib/node/{chunk-AWSTZ2KN.cjs → chunk-JBOC6MIE.cjs} +30 -6
- package/dist/lib/node/chunk-JBOC6MIE.cjs.map +7 -0
- package/dist/lib/node/{chunk-F735VMTN.cjs → chunk-ONLWOUYZ.cjs} +4 -4
- package/dist/lib/node/{chunk-F735VMTN.cjs.map → chunk-ONLWOUYZ.cjs.map} +2 -2
- package/dist/lib/node/{chunk-FPWNZ6TB.cjs → chunk-VEVJBOWK.cjs} +8 -7
- package/dist/lib/node/chunk-VEVJBOWK.cjs.map +7 -0
- package/dist/lib/node/index.cjs +77 -67
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/{intent-resolver-DVBEXJ33.cjs → intent-resolver-NBME5QSW.cjs} +79 -76
- package/dist/lib/node/intent-resolver-NBME5QSW.cjs.map +7 -0
- package/dist/lib/node/{markdown-ELRGISXE.cjs → markdown-QBQTARMD.cjs} +12 -12
- package/dist/lib/node/markdown-QBQTARMD.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-7HLTN5XS.cjs → react-surface-ICWYXRJU.cjs} +46 -53
- package/dist/lib/node/react-surface-ICWYXRJU.cjs.map +7 -0
- package/dist/lib/node/{settings-7VQYARM5.cjs → settings-XOLYNUHH.cjs} +8 -8
- package/dist/lib/node/{state-TQWEZ6B3.cjs → state-JMI5ZXZI.cjs} +8 -7
- package/dist/lib/node/state-JMI5ZXZI.cjs.map +7 -0
- package/dist/lib/node/types.cjs +4 -4
- package/dist/lib/node/types.cjs.map +1 -1
- package/dist/lib/node-esm/ChannelContainer-GP6Y6JSN.mjs +76 -0
- package/dist/lib/node-esm/ChannelContainer-GP6Y6JSN.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FXUATCLW.mjs → chunk-42F2DTMM.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-FXUATCLW.mjs.map → chunk-42F2DTMM.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-33NDMQQQ.mjs → chunk-FZXTP57V.mjs} +19 -6
- package/dist/lib/node-esm/chunk-FZXTP57V.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-CISLDOH7.mjs → chunk-TW2NME6Z.mjs} +50 -43
- package/dist/lib/node-esm/chunk-TW2NME6Z.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ZJITX3TO.mjs → chunk-TXW5SIBN.mjs} +3 -2
- package/dist/lib/node-esm/chunk-TXW5SIBN.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HLWJTUWZ.mjs → chunk-XQO5DGHF.mjs} +16 -4
- package/dist/lib/node-esm/{chunk-HLWJTUWZ.mjs.map → chunk-XQO5DGHF.mjs.map} +4 -4
- package/dist/lib/node-esm/index.mjs +42 -31
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-DHVLBNCC.mjs → intent-resolver-QQCCKVEW.mjs} +65 -62
- package/dist/lib/node-esm/intent-resolver-QQCCKVEW.mjs.map +7 -0
- package/dist/lib/node-esm/{markdown-23OB7EZG.mjs → markdown-QO5HK24O.mjs} +6 -6
- package/dist/lib/node-esm/markdown-QO5HK24O.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-AZHTTR6J.mjs → react-surface-Z4CLCKTN.mjs} +25 -32
- package/dist/lib/node-esm/react-surface-Z4CLCKTN.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-SGMM7UDT.mjs → settings-32PBKVBB.mjs} +3 -3
- package/dist/lib/node-esm/{state-7MLR27YG.mjs → state-PSZO57LP.mjs} +4 -3
- package/dist/lib/node-esm/state-PSZO57LP.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +2 -2
- package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +5 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/ChannelContainer.d.ts +9 -0
- package/dist/types/src/components/ChannelContainer.d.ts.map +1 -0
- package/dist/types/src/components/Chat.stories.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +7 -1
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/CommentContainer.d.ts.map +1 -1
- package/dist/types/src/components/Comments.stories.d.ts.map +1 -1
- package/dist/types/src/components/MessageContainer.d.ts +3 -2
- package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
- package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +3 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/testing.d.ts +44 -40
- package/dist/types/src/components/testing.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +4 -0
- package/dist/types/src/events.d.ts.map +1 -0
- package/dist/types/src/hooks/analytics.d.ts +2 -1
- package/dist/types/src/hooks/analytics.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -7
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +2 -9
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +20 -4
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +33 -30
- package/src/ThreadPlugin.tsx +11 -7
- package/src/capabilities/capabilities.ts +6 -0
- package/src/capabilities/intent-resolver.ts +39 -33
- package/src/capabilities/react-surface.tsx +6 -18
- package/src/capabilities/state.ts +1 -1
- package/src/components/ChannelContainer.tsx +80 -0
- package/src/components/Chat.stories.tsx +19 -9
- package/src/components/ChatContainer.tsx +27 -29
- package/src/components/CommentContainer.tsx +8 -2
- package/src/components/Comments.stories.tsx +2 -1
- package/src/components/MessageContainer.tsx +18 -14
- package/src/components/ThreadComplementary.tsx +5 -4
- package/src/components/index.ts +1 -1
- package/src/components/testing.ts +4 -27
- package/src/events.ts +11 -0
- package/src/extensions/threads.ts +2 -2
- package/src/hooks/analytics.ts +7 -2
- package/src/index.ts +2 -0
- package/src/meta.ts +2 -2
- package/src/translations.ts +1 -3
- package/src/types.ts +18 -4
- package/dist/lib/browser/ThreadContainer-6OP5AG2W.mjs +0 -19
- package/dist/lib/browser/ThreadContainer-6OP5AG2W.mjs.map +0 -7
- package/dist/lib/browser/chunk-NAO3LZMZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-UPKU23DA.mjs.map +0 -7
- package/dist/lib/browser/chunk-VOMIDDNO.mjs +0 -15
- package/dist/lib/browser/chunk-VOMIDDNO.mjs.map +0 -7
- package/dist/lib/browser/chunk-YK3ICB7G.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-FAFQ54NP.mjs.map +0 -7
- package/dist/lib/browser/markdown-RPYOUBVR.mjs.map +0 -7
- package/dist/lib/browser/react-surface-Y4MUSICN.mjs.map +0 -7
- package/dist/lib/browser/state-GNFUURIC.mjs.map +0 -7
- package/dist/lib/node/ThreadContainer-LTKKLPXX.cjs +0 -45
- package/dist/lib/node/ThreadContainer-LTKKLPXX.cjs.map +0 -7
- package/dist/lib/node/chunk-AWSTZ2KN.cjs.map +0 -7
- package/dist/lib/node/chunk-BHFHFTHO.cjs +0 -50
- package/dist/lib/node/chunk-BHFHFTHO.cjs.map +0 -7
- package/dist/lib/node/chunk-CMEMMYDL.cjs.map +0 -7
- package/dist/lib/node/chunk-FPWNZ6TB.cjs.map +0 -7
- package/dist/lib/node/chunk-RQR5Z23G.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-DVBEXJ33.cjs.map +0 -7
- package/dist/lib/node/markdown-ELRGISXE.cjs.map +0 -7
- package/dist/lib/node/react-surface-7HLTN5XS.cjs.map +0 -7
- package/dist/lib/node/state-TQWEZ6B3.cjs.map +0 -7
- package/dist/lib/node-esm/ThreadContainer-SV74JFRH.mjs +0 -20
- package/dist/lib/node-esm/ThreadContainer-SV74JFRH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-33NDMQQQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CISLDOH7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PJPVEO7E.mjs +0 -17
- package/dist/lib/node-esm/chunk-PJPVEO7E.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZJITX3TO.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-DHVLBNCC.mjs.map +0 -7
- package/dist/lib/node-esm/markdown-23OB7EZG.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-AZHTTR6J.mjs.map +0 -7
- package/dist/lib/node-esm/state-7MLR27YG.mjs.map +0 -7
- package/dist/types/src/components/ThreadContainer.d.ts +0 -7
- package/dist/types/src/components/ThreadContainer.d.ts.map +0 -1
- package/src/components/ThreadContainer.tsx +0 -22
- /package/dist/lib/browser/{settings-WQTE5AEZ.mjs.map → settings-5CREE7BH.mjs.map} +0 -0
- /package/dist/lib/node/{settings-7VQYARM5.cjs.map → settings-XOLYNUHH.cjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-SGMM7UDT.mjs.map → settings-32PBKVBB.mjs.map} +0 -0
|
@@ -26,17 +26,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var react_surface_ICWYXRJU_exports = {};
|
|
30
|
+
__export(react_surface_ICWYXRJU_exports, {
|
|
31
31
|
default: () => react_surface_default
|
|
32
32
|
});
|
|
33
|
-
module.exports = __toCommonJS(
|
|
34
|
-
var
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
var import_chunk_F735VMTN = require("./chunk-F735VMTN.cjs");
|
|
33
|
+
module.exports = __toCommonJS(react_surface_ICWYXRJU_exports);
|
|
34
|
+
var import_chunk_DGV5ABT6 = require("./chunk-DGV5ABT6.cjs");
|
|
35
|
+
var import_chunk_JBOC6MIE = require("./chunk-JBOC6MIE.cjs");
|
|
36
|
+
var import_chunk_AXTPNGRI = require("./chunk-AXTPNGRI.cjs");
|
|
37
|
+
var import_chunk_VEVJBOWK = require("./chunk-VEVJBOWK.cjs");
|
|
38
|
+
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
40
39
|
var import_react = __toESM(require("react"));
|
|
41
40
|
var import_app_framework = require("@dxos/app-framework");
|
|
42
41
|
var import_local_storage = require("@dxos/local-storage");
|
|
@@ -61,19 +60,19 @@ var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
|
|
61
60
|
var import_react7 = __toESM(require("react"));
|
|
62
61
|
var import_app_framework2 = require("@dxos/app-framework");
|
|
63
62
|
var import_plugin_space = require("@dxos/plugin-space");
|
|
64
|
-
var import_types2 = require("@dxos/plugin-space/types");
|
|
65
63
|
var import_echo4 = require("@dxos/react-client/echo");
|
|
66
64
|
var import_halo2 = require("@dxos/react-client/halo");
|
|
67
65
|
var import_react_ui3 = require("@dxos/react-ui");
|
|
68
66
|
var import_react_ui_attention = require("@dxos/react-ui-attention");
|
|
69
67
|
var import_react_ui_tabs = require("@dxos/react-ui-tabs");
|
|
68
|
+
var import_schema = require("@dxos/schema");
|
|
70
69
|
var import_util2 = require("@dxos/util");
|
|
71
70
|
var import_react8 = __toESM(require("react"));
|
|
72
71
|
var import_react_ui_form = require("@dxos/react-ui-form");
|
|
73
72
|
var sizeClass = (0, import_react_ui_theme.getSize)(4);
|
|
74
73
|
var commentControlClassNames = "!p-1 !min-bs-0 transition-opacity";
|
|
75
74
|
var ToggleResolvedButton = ({ isResolved, onResolve }) => {
|
|
76
|
-
const { t } = (0, import_react_ui.useTranslation)(
|
|
75
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_ONLWOUYZ.THREAD_PLUGIN);
|
|
77
76
|
const label = t(isResolved ? "mark as unresolved label" : "mark as resolved label");
|
|
78
77
|
return /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Root, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Trigger, {
|
|
79
78
|
asChild: true
|
|
@@ -95,7 +94,7 @@ var ToggleResolvedButton = ({ isResolved, onResolve }) => {
|
|
|
95
94
|
}))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Portal, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Content, null, label, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Arrow, null))));
|
|
96
95
|
};
|
|
97
96
|
var DeleteThreadButton = ({ onDelete }) => {
|
|
98
|
-
const { t } = (0, import_react_ui.useTranslation)(
|
|
97
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_ONLWOUYZ.THREAD_PLUGIN);
|
|
99
98
|
const label = t("delete thread label");
|
|
100
99
|
return /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Root, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui.Tooltip.Trigger, {
|
|
101
100
|
asChild: true
|
|
@@ -119,11 +118,11 @@ var CommentContainer = ({ thread, detached, current, onAttend, onComment, onReso
|
|
|
119
118
|
const identity = (0, import_halo.useIdentity)();
|
|
120
119
|
const space = (0, import_echo2.getSpace)(thread);
|
|
121
120
|
const members = (0, import_echo2.useMembers)(space?.key);
|
|
122
|
-
const activity = (0,
|
|
123
|
-
const { t } = (0, import_react_ui.useTranslation)(
|
|
121
|
+
const activity = (0, import_chunk_JBOC6MIE.useStatus)(space, (0, import_echo2.fullyQualifiedId)(thread));
|
|
122
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_ONLWOUYZ.THREAD_PLUGIN);
|
|
124
123
|
const threadScrollRef = (0, import_react4.useRef)(null);
|
|
125
124
|
const { themeMode } = (0, import_react_ui.useThemeContext)();
|
|
126
|
-
const textboxMetadata = (0,
|
|
125
|
+
const textboxMetadata = (0, import_chunk_DGV5ABT6.getMessageMetadata)((0, import_echo2.fullyQualifiedId)(thread), identity);
|
|
127
126
|
const [_count, _setCount] = (0, import_react4.useState)(0);
|
|
128
127
|
const rerenderEditor = () => _setCount((count) => count + 1);
|
|
129
128
|
const messageRef = (0, import_react4.useRef)("");
|
|
@@ -137,7 +136,7 @@ var CommentContainer = ({ thread, detached, current, onAttend, onComment, onReso
|
|
|
137
136
|
(0, import_react_ui_editor.listener)({
|
|
138
137
|
onChange: (text) => messageRef.current = text
|
|
139
138
|
}),
|
|
140
|
-
|
|
139
|
+
import_chunk_DGV5ABT6.command
|
|
141
140
|
], [
|
|
142
141
|
_count
|
|
143
142
|
]);
|
|
@@ -198,8 +197,9 @@ var CommentContainer = ({ thread, detached, current, onAttend, onComment, onReso
|
|
|
198
197
|
onResolve: handleResolve
|
|
199
198
|
}), onThreadDelete && /* @__PURE__ */ import_react4.default.createElement(DeleteThreadButton, {
|
|
200
199
|
onDelete: handleThreadDelete
|
|
201
|
-
}))), import_live_object.RefArray.
|
|
200
|
+
}))), import_live_object.RefArray.targets(thread.messages?.filter(import_util.isNonNullable) ?? []).map((message) => /* @__PURE__ */ import_react4.default.createElement(import_chunk_DGV5ABT6.MessageContainer, {
|
|
202
201
|
key: message.id,
|
|
202
|
+
editable: true,
|
|
203
203
|
message,
|
|
204
204
|
members,
|
|
205
205
|
onDelete: handleMessageDelete
|
|
@@ -216,7 +216,7 @@ var CommentContainer = ({ thread, detached, current, onAttend, onComment, onReso
|
|
|
216
216
|
}));
|
|
217
217
|
};
|
|
218
218
|
var CommentsContainer = ({ threads, detached = [], currentId, showResolvedThreads, ...props }) => {
|
|
219
|
-
const { t } = (0, import_react_ui2.useTranslation)(
|
|
219
|
+
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_ONLWOUYZ.THREAD_PLUGIN);
|
|
220
220
|
const filteredThreads = showResolvedThreads ? threads : threads.filter((thread) => !(thread?.status === "resolved"));
|
|
221
221
|
(0, import_react6.useEffect)(() => {
|
|
222
222
|
if (currentId) {
|
|
@@ -255,8 +255,8 @@ var CommentsContainer = ({ threads, detached = [], currentId, showResolvedThread
|
|
|
255
255
|
var ThreadComplementary = ({ subject }) => {
|
|
256
256
|
const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
|
|
257
257
|
const identity = (0, import_halo2.useIdentity)();
|
|
258
|
-
const { t } = (0, import_react_ui3.useTranslation)(
|
|
259
|
-
const { state, getViewState } = (0, import_app_framework2.useCapability)(
|
|
258
|
+
const { t } = (0, import_react_ui3.useTranslation)(import_chunk_ONLWOUYZ.THREAD_PLUGIN);
|
|
259
|
+
const { state, getViewState } = (0, import_app_framework2.useCapability)(import_chunk_VEVJBOWK.ThreadCapabilities.MutableState);
|
|
260
260
|
const viewState = getViewState((0, import_echo4.fullyQualifiedId)(subject));
|
|
261
261
|
const { showResolvedThreads } = viewState;
|
|
262
262
|
const onChangeViewState = (0, import_react7.useCallback)((nextValue) => {
|
|
@@ -274,7 +274,7 @@ var ThreadComplementary = ({ subject }) => {
|
|
|
274
274
|
createSort,
|
|
275
275
|
subject
|
|
276
276
|
]);
|
|
277
|
-
const threadObjects = import_echo4.RefArray.
|
|
277
|
+
const threadObjects = import_echo4.RefArray.targets(subject.threads ?? []);
|
|
278
278
|
const threads = (0, import_react7.useMemo)(() => {
|
|
279
279
|
return threadObjects.concat(drafts ?? []).filter(import_util2.isNonNullable);
|
|
280
280
|
}, [
|
|
@@ -316,14 +316,19 @@ var ThreadComplementary = ({ subject }) => {
|
|
|
316
316
|
subject
|
|
317
317
|
]);
|
|
318
318
|
const handleComment = (0, import_react7.useCallback)(async (thread, message) => {
|
|
319
|
-
thread.messages.push((0, import_echo4.makeRef)((0, import_echo4.create)(
|
|
319
|
+
thread.messages.push((0, import_echo4.makeRef)((0, import_echo4.create)(import_schema.MessageType, {
|
|
320
320
|
sender: {
|
|
321
321
|
identityKey: identity?.identityKey.toHex()
|
|
322
322
|
},
|
|
323
|
-
|
|
324
|
-
|
|
323
|
+
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
324
|
+
blocks: [
|
|
325
|
+
{
|
|
326
|
+
type: "text",
|
|
327
|
+
text: message
|
|
328
|
+
}
|
|
329
|
+
]
|
|
325
330
|
})));
|
|
326
|
-
await dispatch((0, import_app_framework2.createIntent)(
|
|
331
|
+
await dispatch((0, import_app_framework2.createIntent)(import_chunk_AXTPNGRI.ThreadAction.OnMessageAdd, {
|
|
327
332
|
thread,
|
|
328
333
|
subject
|
|
329
334
|
}));
|
|
@@ -333,19 +338,19 @@ var ThreadComplementary = ({ subject }) => {
|
|
|
333
338
|
identity,
|
|
334
339
|
subject
|
|
335
340
|
]);
|
|
336
|
-
const handleResolve = (0, import_react7.useCallback)((thread) => dispatch((0, import_app_framework2.createIntent)(
|
|
341
|
+
const handleResolve = (0, import_react7.useCallback)((thread) => dispatch((0, import_app_framework2.createIntent)(import_chunk_AXTPNGRI.ThreadAction.ToggleResolved, {
|
|
337
342
|
thread
|
|
338
343
|
})), [
|
|
339
344
|
dispatch
|
|
340
345
|
]);
|
|
341
|
-
const handleThreadDelete = (0, import_react7.useCallback)((thread) => dispatch((0, import_app_framework2.createIntent)(
|
|
346
|
+
const handleThreadDelete = (0, import_react7.useCallback)((thread) => dispatch((0, import_app_framework2.createIntent)(import_chunk_AXTPNGRI.ThreadAction.Delete, {
|
|
342
347
|
thread,
|
|
343
348
|
subject
|
|
344
349
|
})), [
|
|
345
350
|
dispatch,
|
|
346
351
|
subject
|
|
347
352
|
]);
|
|
348
|
-
const handleMessageDelete = (0, import_react7.useCallback)((thread, messageId) => dispatch((0, import_app_framework2.createIntent)(
|
|
353
|
+
const handleMessageDelete = (0, import_react7.useCallback)((thread, messageId) => dispatch((0, import_app_framework2.createIntent)(import_chunk_AXTPNGRI.ThreadAction.DeleteMessage, {
|
|
349
354
|
thread,
|
|
350
355
|
subject,
|
|
351
356
|
messageId
|
|
@@ -385,38 +390,26 @@ var ThreadComplementary = ({ subject }) => {
|
|
|
385
390
|
var ThreadSettings = ({ settings }) => {
|
|
386
391
|
return /* @__PURE__ */ import_react8.default.createElement(import_react_ui_form.DeprecatedFormContainer, null);
|
|
387
392
|
};
|
|
388
|
-
var
|
|
393
|
+
var ChannelContainer = (0, import_react2.lazy)(() => import("./ChannelContainer-F7345XW2.cjs"));
|
|
389
394
|
var react_surface_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.ReactSurface, [
|
|
390
395
|
(0, import_app_framework.createSurface)({
|
|
391
|
-
id: `${
|
|
396
|
+
id: `${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/channel`,
|
|
392
397
|
role: "article",
|
|
393
|
-
filter: (data) => data.subject instanceof import_types.ChannelType
|
|
394
|
-
component: ({ data, role }) => {
|
|
398
|
+
filter: (data) => data.subject instanceof import_types.ChannelType,
|
|
399
|
+
component: ({ data: { subject: channel }, role }) => {
|
|
395
400
|
const layout = (0, import_app_framework.useLayout)();
|
|
396
|
-
const channel = data.subject;
|
|
397
|
-
void channel.threads[0].load();
|
|
398
|
-
const thread = channel.threads[0].target;
|
|
399
|
-
if (!thread) {
|
|
400
|
-
return null;
|
|
401
|
-
}
|
|
402
401
|
const currentPosition = layout.active.findIndex((id) => id === channel.id);
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
return /* @__PURE__ */ import_react.default.createElement(ThreadContainer, {
|
|
407
|
-
role,
|
|
408
|
-
thread,
|
|
409
|
-
context
|
|
410
|
-
});
|
|
411
|
-
}
|
|
412
|
-
return /* @__PURE__ */ import_react.default.createElement(ThreadContainer, {
|
|
402
|
+
const objectToTheLeft = layout.active[currentPosition - 1];
|
|
403
|
+
const context = currentPosition > 0 ? (0, import_echo.getSpace)(channel)?.db.getObjectById(objectToTheLeft) : void 0;
|
|
404
|
+
return /* @__PURE__ */ import_react.default.createElement(ChannelContainer, {
|
|
413
405
|
role,
|
|
414
|
-
|
|
406
|
+
channel,
|
|
407
|
+
context
|
|
415
408
|
});
|
|
416
409
|
}
|
|
417
410
|
}),
|
|
418
411
|
(0, import_app_framework.createSurface)({
|
|
419
|
-
id: `${
|
|
412
|
+
id: `${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/thread`,
|
|
420
413
|
role: "complementary--comments",
|
|
421
414
|
filter: (data) => !!data.subject && typeof data.subject === "object" && "threads" in data.subject && Array.isArray(data.subject.threads) && !(data.subject instanceof import_types.ChannelType),
|
|
422
415
|
component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(ThreadComplementary, {
|
|
@@ -424,12 +417,12 @@ var react_surface_default = () => (0, import_app_framework.contributes)(import_a
|
|
|
424
417
|
})
|
|
425
418
|
}),
|
|
426
419
|
(0, import_app_framework.createSurface)({
|
|
427
|
-
id: `${
|
|
420
|
+
id: `${import_chunk_ONLWOUYZ.THREAD_PLUGIN}/settings`,
|
|
428
421
|
role: "article",
|
|
429
|
-
filter: (data) => data.subject instanceof import_local_storage.SettingsStore && data.subject.prefix ===
|
|
422
|
+
filter: (data) => data.subject instanceof import_local_storage.SettingsStore && data.subject.prefix === import_chunk_ONLWOUYZ.THREAD_PLUGIN,
|
|
430
423
|
component: ({ data: { subject } }) => /* @__PURE__ */ import_react.default.createElement(ThreadSettings, {
|
|
431
424
|
settings: subject.value
|
|
432
425
|
})
|
|
433
426
|
})
|
|
434
427
|
]);
|
|
435
|
-
//# sourceMappingURL=react-surface-
|
|
428
|
+
//# sourceMappingURL=react-surface-ICWYXRJU.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/CommentContainer.tsx", "../../../src/components/CommentsContainer.tsx", "../../../src/components/ThreadComplementary.tsx", "../../../src/components/ThreadSettings.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, useLayout } from '@dxos/app-framework';\nimport { type Ref } from '@dxos/echo-schema';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { ChannelType, type ThreadType } from '@dxos/plugin-space/types';\nimport { getSpace } from '@dxos/react-client/echo';\n\nimport { ChannelContainer, ThreadComplementary, ThreadSettings } from '../components';\nimport { THREAD_PLUGIN } from '../meta';\nimport { type ThreadSettingsProps } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${THREAD_PLUGIN}/channel`,\n role: 'article',\n filter: (data): data is { subject: ChannelType } => data.subject instanceof ChannelType,\n component: ({ data: { subject: channel }, role }) => {\n const layout = useLayout();\n const currentPosition = layout.active.findIndex((id) => id === channel.id);\n const objectToTheLeft = layout.active[currentPosition - 1];\n const context = currentPosition > 0 ? getSpace(channel)?.db.getObjectById(objectToTheLeft) : undefined;\n return <ChannelContainer role={role} channel={channel} context={context} />;\n },\n }),\n createSurface({\n id: `${THREAD_PLUGIN}/thread`,\n role: 'complementary--comments',\n filter: (data): data is { subject: { threads: Ref<ThreadType>[] } } =>\n !!data.subject &&\n typeof data.subject === 'object' &&\n 'threads' in data.subject &&\n Array.isArray(data.subject.threads) &&\n !(data.subject instanceof ChannelType),\n component: ({ data }) => <ThreadComplementary subject={data.subject} />,\n }),\n createSurface({\n id: `${THREAD_PLUGIN}/settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<ThreadSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === THREAD_PLUGIN,\n component: ({ data: { subject } }) => <ThreadSettings settings={subject.value} />,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const ChannelContainer = lazy(() => import('./ChannelContainer'));\n\n// TODO(wittjosiah): Suspense boundary for sidebar?\nexport * from './CommentContainer';\nexport * from './CommentsContainer';\nexport * from './ChatContainer';\nexport * from './MessageContainer';\nexport * from './ThreadComplementary';\nexport * from './ThreadSettings';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CheckCircle, X } from '@phosphor-icons/react';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { RefArray } from '@dxos/live-object';\nimport { fullyQualifiedId, getSpace, useMembers } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Button, Tag, Tooltip, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { createBasicExtensions, createThemeExtensions, listener } from '@dxos/react-ui-editor';\nimport {\n getSize,\n hoverableControlItem,\n hoverableControls,\n hoverableFocusedWithinControls,\n mx,\n} from '@dxos/react-ui-theme';\nimport { MessageTextbox, type MessageTextboxProps, Thread, ThreadFooter, ThreadHeading } from '@dxos/react-ui-thread';\nimport { isNonNullable } from '@dxos/util';\n\nimport { MessageContainer } from './MessageContainer';\nimport { command } from './command-extension';\nimport { type ThreadContainerProps } from './types';\nimport { useStatus } from '../hooks';\nimport { THREAD_PLUGIN } from '../meta';\nimport { getMessageMetadata } from '../util';\n\nconst sizeClass = getSize(4);\n\n// TODO(thure): #8149\nconst commentControlClassNames = '!p-1 !min-bs-0 transition-opacity';\n\nconst ToggleResolvedButton = ({\n isResolved,\n onResolve,\n}: {\n isResolved: boolean | undefined;\n onResolve: () => void;\n}) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const label = t(isResolved ? 'mark as unresolved label' : 'mark as resolved label');\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button\n variant='ghost'\n data-testid='thread.toggle-resolved'\n onClick={onResolve}\n classNames={[commentControlClassNames, !isResolved && hoverableControlItem]}\n >\n <span className='sr-only'>{label}</span>\n {isResolved ? <CheckCircle className={sizeClass} weight='fill' /> : <CheckCircle className={sizeClass} />}\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content>\n {label}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nconst DeleteThreadButton = ({ onDelete }: { onDelete: () => void }) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const label = t('delete thread label');\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button\n variant='ghost'\n data-testid='thread.delete'\n onClick={onDelete}\n classNames={[commentControlClassNames, hoverableControlItem]}\n >\n <span className='sr-only'>{label}</span>\n <X className={sizeClass} />\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content classNames='z-30'>\n {label}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nexport const CommentContainer = ({\n thread,\n detached,\n current,\n onAttend,\n onComment,\n onResolve,\n onMessageDelete,\n onThreadDelete,\n}: ThreadContainerProps) => {\n const identity = useIdentity()!;\n const space = getSpace(thread);\n const members = useMembers(space?.key);\n const activity = useStatus(space, fullyQualifiedId(thread));\n const { t } = useTranslation(THREAD_PLUGIN);\n const threadScrollRef = useRef<HTMLDivElement | null>(null);\n const { themeMode } = useThemeContext();\n\n const textboxMetadata = getMessageMetadata(fullyQualifiedId(thread), identity);\n // TODO(wittjosiah): This is a hack to reset the editor after a message is sent.\n const [_count, _setCount] = useState(0);\n const rerenderEditor = () => _setCount((count) => count + 1);\n const messageRef = useRef('');\n const extensions = useMemo(\n () => [\n createBasicExtensions({ placeholder: t('message placeholder') }),\n createThemeExtensions({ themeMode }),\n listener({ onChange: (text) => (messageRef.current = text) }),\n command,\n ],\n [_count],\n );\n\n // TODO(thure): Factor out.\n const scrollToEnd = (behavior: ScrollBehavior) =>\n setTimeout(() => threadScrollRef.current?.scrollIntoView({ behavior, block: 'end' }), 10);\n\n const handleAttend = useCallback(() => onAttend?.(thread), [onAttend, thread]);\n const handleResolve = useCallback(() => onResolve?.(thread), [onResolve, thread]);\n const handleMessageDelete = useCallback((id: string) => onMessageDelete?.(thread, id), [onMessageDelete, thread]);\n const handleThreadDelete = useCallback(() => onThreadDelete?.(thread), [onThreadDelete, thread]);\n\n const handleComment: MessageTextboxProps['onSend'] = useCallback(() => {\n if (!messageRef.current) {\n return false;\n }\n\n onComment?.(thread, messageRef.current);\n messageRef.current = '';\n scrollToEnd('instant');\n rerenderEditor();\n\n return true;\n }, [thread, identity]);\n\n return (\n <Thread onClickCapture={handleAttend} onFocusCapture={handleAttend} current={current} id={fullyQualifiedId(thread)}>\n <div\n role='none'\n className={mx(\n 'col-span-2 grid grid-cols-[var(--rail-size)_1fr_min-content]',\n hoverableControls,\n hoverableFocusedWithinControls,\n )}\n >\n {detached ? (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <ThreadHeading detached>{thread.name}</ThreadHeading>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content classNames='z-30' side='top'>\n {t('detached thread label')}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n ) : (\n <ThreadHeading>{thread.name}</ThreadHeading>\n )}\n <div className='flex flex-row items-center pli-1'>\n {thread.status === 'staged' && <Tag palette='neutral'>{t('draft button')}</Tag>}\n {onResolve && !(thread?.status === 'staged') && (\n <ToggleResolvedButton isResolved={thread?.status === 'resolved'} onResolve={handleResolve} />\n )}\n {onThreadDelete && <DeleteThreadButton onDelete={handleThreadDelete} />}\n </div>\n </div>\n {/** TODO(dmaretskyi): How's `thread.messages` undefined? */}\n {RefArray.targets(thread.messages?.filter(isNonNullable) ?? []).map((message) => (\n <MessageContainer\n key={message.id}\n editable\n message={message}\n members={members}\n onDelete={handleMessageDelete}\n />\n ))}\n {/*\n TODO(wittjosiah): Can't autofocus this generally.\n There can be multiple threads with inputs and they can't all be focused.\n Also, it steals focus from documents when first rendered.\n Need to find a way to autofocus in one scenario only: when a new thread is created.\n */}\n <MessageTextbox extensions={extensions} onSend={handleComment} {...textboxMetadata} />\n <ThreadFooter activity={activity}>{t('activity message')}</ThreadFooter>\n {/* NOTE(thure): This can’t also be the `overflow-anchor` because `ScrollArea` injects an interceding node that contains this necessary ref’d element. */}\n <div role='none' className='bs-px -mbs-px' ref={threadScrollRef} />\n </Thread>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ChatText } from '@phosphor-icons/react';\nimport React, { useEffect } from 'react';\n\nimport { type ThreadType } from '@dxos/plugin-space/types';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { useTranslation, Trans } from '@dxos/react-ui';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { CommentContainer } from './CommentContainer';\nimport { type ThreadContainerProps } from './types';\nimport { THREAD_PLUGIN } from '../meta';\n\nexport type ThreadsContainerProps = Omit<ThreadContainerProps, 'thread' | 'detached' | 'current' | 'autoFocus'> & {\n threads: ThreadType[];\n /**\n * Threads that are no longer anchored to a position in the object.\n */\n detached?: string[];\n currentId?: string;\n showResolvedThreads?: boolean;\n};\n\n/**\n * Comment threads.\n */\nexport const CommentsContainer = ({\n threads,\n detached = [],\n currentId,\n showResolvedThreads,\n ...props\n}: ThreadsContainerProps) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const filteredThreads = showResolvedThreads ? threads : threads.filter((thread) => !(thread?.status === 'resolved'));\n\n useEffect(() => {\n if (currentId) {\n document.getElementById(currentId)?.scrollIntoView({ behavior: 'smooth', block: 'end' });\n }\n }, [currentId]);\n\n return (\n <>\n {filteredThreads.length > 0 ? (\n filteredThreads.map((thread) => {\n const threadId = fullyQualifiedId(thread);\n return (\n <CommentContainer\n key={threadId}\n thread={thread}\n current={currentId === threadId}\n detached={detached.includes(threadId)}\n {...props}\n />\n );\n })\n ) : (\n <div\n role='alert'\n className={mx(\n descriptionText,\n 'place-self-center border border-dashed border-unAccent rounded-lg text-center p-4 m-4',\n )}\n >\n <h2 className='mbe-2 font-medium text-baseText'>{t('no comments title')}</h2>\n <p>\n <Trans\n {...{\n t,\n i18nKey: 'no comments message',\n components: {\n commentIcon: <ChatText className='inline-block' />,\n },\n }}\n />\n </p>\n </div>\n )}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo } from 'react';\n\nimport { createIntent, LayoutAction, useCapability, useCapabilities, useIntentDispatcher } from '@dxos/app-framework';\nimport { ThreadCapabilities } from '@dxos/plugin-space';\nimport { type ThreadType } from '@dxos/plugin-space/types';\nimport { create, fullyQualifiedId, makeRef, RefArray } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { useAttended } from '@dxos/react-ui-attention';\nimport { Tabs } from '@dxos/react-ui-tabs';\nimport { MessageType } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { ThreadCapabilities as LocalThreadCapabilities } from '../capabilities';\nimport { CommentsContainer } from '../components';\nimport { THREAD_PLUGIN } from '../meta';\nimport { ThreadAction } from '../types';\n\nexport const ThreadComplementary = ({ subject }: { subject: any }) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const identity = useIdentity();\n const { t } = useTranslation(THREAD_PLUGIN);\n\n const { state, getViewState } = useCapability(LocalThreadCapabilities.MutableState);\n const viewState = getViewState(fullyQualifiedId(subject));\n const { showResolvedThreads } = viewState;\n const onChangeViewState = useCallback(\n (nextValue: string) => {\n viewState.showResolvedThreads = nextValue === 'all';\n },\n [viewState],\n );\n const drafts = state.drafts[fullyQualifiedId(subject)];\n\n const threadsIntegrators = useCapabilities(ThreadCapabilities.Thread);\n const createSort = useMemo(\n () => threadsIntegrators.find((p) => p.predicate(subject))?.createSort,\n [threadsIntegrators, subject],\n );\n const sort = useMemo(() => createSort?.(subject), [createSort, subject]);\n\n const threadObjects = RefArray.targets(subject.threads ?? []);\n\n const threads = useMemo(() => {\n return threadObjects.concat(drafts ?? []).filter(isNonNullable) as ThreadType[];\n }, [JSON.stringify(threadObjects), JSON.stringify(drafts)]);\n\n const detachedIds = useMemo(() => {\n return threads.filter(({ anchor }) => !anchor).map((thread) => fullyQualifiedId(thread));\n }, [threads]);\n\n useEffect(() => {\n if (!sort) {\n return;\n }\n threads.sort((a, b) => sort(a?.anchor, b?.anchor));\n }, [sort, threads]);\n\n const attended = useAttended();\n const qualifiedSubjectId = fullyQualifiedId(subject);\n\n const handleAttend = useCallback(\n (thread: ThreadType) => {\n const threadId = fullyQualifiedId(thread);\n if (state.current !== threadId) {\n state.current = threadId;\n\n // TODO(wittjosiah): Should this be a thread-specific intent?\n // The layout doesn't know about threads and this working depends on other plugins conditionally handling it.\n // This may be overloading this intent or highjacking its intended purpose.\n void dispatch(\n createIntent(LayoutAction.ScrollIntoView, {\n part: 'current',\n subject: fullyQualifiedId(subject),\n options: {\n cursor: thread.anchor,\n ref: threadId,\n },\n }),\n );\n }\n },\n [state.current, dispatch, subject],\n );\n\n const handleComment = useCallback(\n async (thread: ThreadType, message: string) => {\n thread.messages.push(\n makeRef(\n create(MessageType, {\n sender: { identityKey: identity?.identityKey.toHex() },\n created: new Date().toISOString(),\n blocks: [{ type: 'text', text: message }],\n // TODO(wittjosiah): Context based on attention.\n // context: context ? makeRef(context) : undefined,\n }),\n ),\n );\n\n await dispatch(createIntent(ThreadAction.OnMessageAdd, { thread, subject }));\n\n state.current = fullyQualifiedId(thread);\n },\n [dispatch, identity, subject],\n );\n\n const handleResolve = useCallback(\n (thread: ThreadType) => dispatch(createIntent(ThreadAction.ToggleResolved, { thread })),\n [dispatch],\n );\n\n const handleThreadDelete = useCallback(\n (thread: ThreadType) => dispatch(createIntent(ThreadAction.Delete, { thread, subject })),\n [dispatch, subject],\n );\n\n const handleMessageDelete = useCallback(\n (thread: ThreadType, messageId: string) =>\n dispatch(createIntent(ThreadAction.DeleteMessage, { thread, subject, messageId })),\n [dispatch, subject],\n );\n\n const comments = (\n <CommentsContainer\n threads={threads}\n detached={detachedIds}\n currentId={attended.includes(qualifiedSubjectId) ? state.current : undefined}\n showResolvedThreads={showResolvedThreads}\n onAttend={handleAttend}\n onComment={handleComment}\n onResolve={handleResolve}\n onMessageDelete={handleMessageDelete}\n onThreadDelete={handleThreadDelete}\n />\n );\n\n return (\n <Tabs.Root\n value={showResolvedThreads ? 'all' : 'unresolved'}\n onValueChange={onChangeViewState}\n orientation='horizontal'\n >\n <Tabs.Tablist classNames='p-1 gap-1 bs-[--rail-action] border-be border-separator'>\n <Tabs.Tab value='unresolved' classNames='text-sm'>\n {t('show unresolved label')}\n </Tabs.Tab>\n <Tabs.Tab value='all' classNames='text-sm'>\n {t('show all label')}\n </Tabs.Tab>\n </Tabs.Tablist>\n <Tabs.Tabpanel value='all'>{showResolvedThreads && comments}</Tabs.Tabpanel>\n <Tabs.Tabpanel value='unresolved'>{!showResolvedThreads && comments}</Tabs.Tabpanel>\n </Tabs.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\n// import { useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer } from '@dxos/react-ui-form';\n\n// import { THREAD_PLUGIN } from '../meta';\nimport type { ThreadSettingsProps } from '../types';\n\nexport const ThreadSettings = ({ settings }: { settings: ThreadSettingsProps }) => {\n // const { t } = useTranslation(THREAD_PLUGIN);\n\n return <DeprecatedFormContainer></DeprecatedFormContainer>;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_react", "import_echo", "import_react_ui", "import_react_ui_theme", "import_app_framework", "import_halo", "import_util", "sizeClass", "getSize", "commentControlClassNames", "ToggleResolvedButton", "isResolved", "onResolve", "t", "useTranslation", "THREAD_PLUGIN", "label", "React", "Tooltip", "Root", "Trigger", "asChild", "Button", "variant", "data-testid", "onClick", "classNames", "hoverableControlItem", "span", "className", "CheckCircle", "weight", "Portal", "Content", "Arrow", "DeleteThreadButton", "onDelete", "X", "CommentContainer", "thread", "detached", "current", "onAttend", "onComment", "onMessageDelete", "onThreadDelete", "identity", "useIdentity", "space", "getSpace", "members", "useMembers", "key", "activity", "useStatus", "fullyQualifiedId", "threadScrollRef", "useRef", "themeMode", "useThemeContext", "textboxMetadata", "getMessageMetadata", "_count", "_setCount", "useState", "rerenderEditor", "count", "messageRef", "extensions", "useMemo", "createBasicExtensions", "placeholder", "createThemeExtensions", "listener", "onChange", "text", "command", "scrollToEnd", "behavior", "setTimeout", "scrollIntoView", "block", "handleAttend", "useCallback", "handleResolve", "handleMessageDelete", "id", "handleThreadDelete", "handleComment", "Thread", "onClickCapture", "onFocusCapture", "div", "role", "mx", "hoverableControls", "hoverableFocusedWithinControls", "ThreadHeading", "name", "side", "status", "Tag", "palette", "RefArray", "targets", "messages", "filter", "isNonNullable", "map", "message", "MessageContainer", "editable", "MessageTextbox", "onSend", "ThreadFooter", "ref", "CommentsContainer", "threads", "currentId", "showResolvedThreads", "props", "filteredThreads", "useEffect", "document", "getElementById", "length", "threadId", "includes", "descriptionText", "h2", "p", "Trans", "i18nKey", "components", "commentIcon", "ChatText", "ThreadComplementary", "subject", "dispatchPromise", "dispatch", "useIntentDispatcher", "state", "getViewState", "useCapability", "LocalThreadCapabilities", "MutableState", "viewState", "onChangeViewState", "nextValue", "drafts", "threadsIntegrators", "useCapabilities", "ThreadCapabilities", "createSort", "find", "predicate", "sort", "threadObjects", "concat", "JSON", "stringify", "detachedIds", "anchor", "a", "b", "attended", "useAttended", "qualifiedSubjectId", "createIntent", "LayoutAction", "ScrollIntoView", "part", "options", "cursor", "push", "makeRef", "create", "MessageType", "sender", "identityKey", "toHex", "created", "Date", "toISOString", "blocks", "type", "ThreadAction", "OnMessageAdd", "ToggleResolved", "Delete", "messageId", "DeleteMessage", "comments", "undefined", "Tabs", "value", "onValueChange", "orientation", "Tablist", "Tab", "Tabpanel", "ThreadSettings", "settings", "DeprecatedFormContainer", "ChannelContainer", "lazy", "contributes", "Capabilities", "ReactSurface", "createSurface", "data", "ChannelType", "component", "channel", "layout", "useLayout", "currentPosition", "active", "findIndex", "objectToTheLeft", "context", "db", "getObjectById", "Array", "isArray", "SettingsStore", "prefix"]
|
|
7
|
+
}
|
|
@@ -16,21 +16,21 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var settings_XOLYNUHH_exports = {};
|
|
20
|
+
__export(settings_XOLYNUHH_exports, {
|
|
21
21
|
default: () => settings_default
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
25
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(settings_XOLYNUHH_exports);
|
|
24
|
+
var import_chunk_AXTPNGRI = require("./chunk-AXTPNGRI.cjs");
|
|
25
|
+
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
26
26
|
var import_app_framework = require("@dxos/app-framework");
|
|
27
27
|
var import_live_object = require("@dxos/live-object");
|
|
28
28
|
var settings_default = () => {
|
|
29
29
|
const settings = (0, import_live_object.create)({});
|
|
30
30
|
return (0, import_app_framework.contributes)(import_app_framework.Capabilities.Settings, {
|
|
31
|
-
schema:
|
|
32
|
-
prefix:
|
|
31
|
+
schema: import_chunk_AXTPNGRI.ThreadSettingsSchema,
|
|
32
|
+
prefix: import_chunk_ONLWOUYZ.THREAD_PLUGIN,
|
|
33
33
|
value: settings
|
|
34
34
|
});
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=settings-
|
|
36
|
+
//# sourceMappingURL=settings-XOLYNUHH.cjs.map
|
|
@@ -16,13 +16,13 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var state_JMI5ZXZI_exports = {};
|
|
20
|
+
__export(state_JMI5ZXZI_exports, {
|
|
21
21
|
default: () => state_default
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
25
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(state_JMI5ZXZI_exports);
|
|
24
|
+
var import_chunk_VEVJBOWK = require("./chunk-VEVJBOWK.cjs");
|
|
25
|
+
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
26
26
|
var import_app_framework = require("@dxos/app-framework");
|
|
27
27
|
var import_live_object = require("@dxos/live-object");
|
|
28
28
|
var initialViewState = {
|
|
@@ -30,6 +30,7 @@ var initialViewState = {
|
|
|
30
30
|
};
|
|
31
31
|
var state_default = () => {
|
|
32
32
|
const state = (0, import_live_object.create)({
|
|
33
|
+
activities: {},
|
|
33
34
|
drafts: {}
|
|
34
35
|
});
|
|
35
36
|
const viewStore = (0, import_live_object.create)({});
|
|
@@ -41,9 +42,9 @@ var state_default = () => {
|
|
|
41
42
|
}
|
|
42
43
|
return viewStore[subjectId];
|
|
43
44
|
};
|
|
44
|
-
return (0, import_app_framework.contributes)(
|
|
45
|
+
return (0, import_app_framework.contributes)(import_chunk_VEVJBOWK.ThreadCapabilities.State, {
|
|
45
46
|
state,
|
|
46
47
|
getViewState
|
|
47
48
|
});
|
|
48
49
|
};
|
|
49
|
-
//# sourceMappingURL=state-
|
|
50
|
+
//# sourceMappingURL=state-JMI5ZXZI.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/state.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes } from '@dxos/app-framework';\nimport { create } from '@dxos/live-object';\n\nimport { ThreadCapabilities } from './capabilities';\nimport { type ThreadState, type ViewStore } from '../types';\n\nconst initialViewState = { showResolvedThreads: false };\n\nexport default () => {\n const state = create<ThreadState>({ activities: {}, drafts: {} });\n const viewStore = create<ViewStore>({});\n\n const getViewState = (subjectId: string) => {\n if (!viewStore[subjectId]) {\n viewStore[subjectId] = { ...initialViewState };\n }\n return viewStore[subjectId];\n };\n\n return contributes(ThreadCapabilities.State, { state, getViewState });\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA4B;AAC5B,yBAAuB;AAKvB,IAAMA,mBAAmB;EAAEC,qBAAqB;AAAM;AAEtD,IAAA,gBAAe,MAAA;AACb,QAAMC,YAAQC,2BAAoB;IAAEC,YAAY,CAAC;IAAGC,QAAQ,CAAC;EAAE,CAAA;AAC/D,QAAMC,gBAAYH,2BAAkB,CAAC,CAAA;AAErC,QAAMI,eAAe,CAACC,cAAAA;AACpB,QAAI,CAACF,UAAUE,SAAAA,GAAY;AACzBF,gBAAUE,SAAAA,IAAa;QAAE,GAAGR;MAAiB;IAC/C;AACA,WAAOM,UAAUE,SAAAA;EACnB;AAEA,aAAOC,kCAAYC,yCAAmBC,OAAO;IAAET;IAAOK;EAAa,CAAA;AACrE;",
|
|
6
|
+
"names": ["initialViewState", "showResolvedThreads", "state", "create", "activities", "drafts", "viewStore", "getViewState", "subjectId", "contributes", "ThreadCapabilities", "State"]
|
|
7
|
+
}
|
package/dist/lib/node/types.cjs
CHANGED
|
@@ -18,12 +18,12 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var types_exports = {};
|
|
20
20
|
__export(types_exports, {
|
|
21
|
-
ThreadAction: () =>
|
|
22
|
-
ThreadSettingsSchema: () =>
|
|
21
|
+
ThreadAction: () => import_chunk_AXTPNGRI.ThreadAction,
|
|
22
|
+
ThreadSettingsSchema: () => import_chunk_AXTPNGRI.ThreadSettingsSchema
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(types_exports);
|
|
25
|
-
var
|
|
26
|
-
var
|
|
25
|
+
var import_chunk_AXTPNGRI = require("./chunk-AXTPNGRI.cjs");
|
|
26
|
+
var import_chunk_ONLWOUYZ = require("./chunk-ONLWOUYZ.cjs");
|
|
27
27
|
// Annotate the CommonJS export names for ESM import in node:
|
|
28
28
|
0 && (module.exports = {
|
|
29
29
|
ThreadAction,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["types.cjs"],
|
|
4
|
-
"sourcesContent": ["import {\n ThreadAction,\n ThreadSettingsSchema\n} from \"./chunk-
|
|
4
|
+
"sourcesContent": ["import {\n ThreadAction,\n ThreadSettingsSchema\n} from \"./chunk-AXTPNGRI.cjs\";\nimport \"./chunk-ONLWOUYZ.cjs\";\nexport {\n ThreadAction,\n ThreadSettingsSchema\n};\n//# sourceMappingURL=types.cjs.map\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAGO;AACP,4BAAO;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
ChatContainer
|
|
4
|
+
} from "./chunk-TW2NME6Z.mjs";
|
|
5
|
+
import "./chunk-XQO5DGHF.mjs";
|
|
6
|
+
import {
|
|
7
|
+
ThreadCapabilities
|
|
8
|
+
} from "./chunk-TXW5SIBN.mjs";
|
|
9
|
+
import "./chunk-42F2DTMM.mjs";
|
|
10
|
+
|
|
11
|
+
// packages/plugins/plugin-thread/src/components/ChannelContainer.tsx
|
|
12
|
+
import React, { useCallback } from "react";
|
|
13
|
+
import { Surface, useCapabilities, useCapability } from "@dxos/app-framework";
|
|
14
|
+
import { fullyQualifiedId, getSpace } from "@dxos/react-client/echo";
|
|
15
|
+
import { createEditorActionGroup } from "@dxos/react-ui-editor";
|
|
16
|
+
import { createMenuAction, MenuProvider, ToolbarMenu, useMenuActions } from "@dxos/react-ui-menu";
|
|
17
|
+
import { StackItem } from "@dxos/react-ui-stack";
|
|
18
|
+
var useActivitiesMenu = (activities, activity) => {
|
|
19
|
+
return useMenuActions(() => ({
|
|
20
|
+
nodes: [
|
|
21
|
+
createEditorActionGroup("activities", {
|
|
22
|
+
variant: "toggleGroup",
|
|
23
|
+
selectCardinality: "single",
|
|
24
|
+
value: activity
|
|
25
|
+
}),
|
|
26
|
+
...activities.map(({ id, ...properties }) => createMenuAction(id, {
|
|
27
|
+
...properties,
|
|
28
|
+
checked: true
|
|
29
|
+
}))
|
|
30
|
+
],
|
|
31
|
+
edges: [
|
|
32
|
+
{
|
|
33
|
+
source: "root",
|
|
34
|
+
target: "activities"
|
|
35
|
+
},
|
|
36
|
+
...activities.map((activity2) => ({
|
|
37
|
+
source: "activities",
|
|
38
|
+
target: activity2.id
|
|
39
|
+
}))
|
|
40
|
+
]
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
43
|
+
var ChannelContainer = ({ role, channel, context }) => {
|
|
44
|
+
const { state } = useCapability(ThreadCapabilities.MutableState);
|
|
45
|
+
const currentActivity = state.activities[channel.id];
|
|
46
|
+
const activities = useCapabilities(ThreadCapabilities.Activity);
|
|
47
|
+
const menu = useActivitiesMenu(activities, currentActivity);
|
|
48
|
+
const handleAction = useCallback((action) => state.activities[channel.id] = currentActivity === action.id ? void 0 : action.id, [
|
|
49
|
+
currentActivity
|
|
50
|
+
]);
|
|
51
|
+
const space = getSpace(channel);
|
|
52
|
+
if (!space) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
return /* @__PURE__ */ React.createElement(StackItem.Content, {
|
|
56
|
+
toolbar: true
|
|
57
|
+
}, /* @__PURE__ */ React.createElement(MenuProvider, {
|
|
58
|
+
...menu,
|
|
59
|
+
onAction: handleAction,
|
|
60
|
+
attendableId: fullyQualifiedId(channel)
|
|
61
|
+
}, /* @__PURE__ */ React.createElement(ToolbarMenu, null)), currentActivity ? /* @__PURE__ */ React.createElement(Surface, {
|
|
62
|
+
role: `channel-activity--${currentActivity}`,
|
|
63
|
+
data: {
|
|
64
|
+
subject: channel
|
|
65
|
+
}
|
|
66
|
+
}) : /* @__PURE__ */ React.createElement(ChatContainer, {
|
|
67
|
+
space,
|
|
68
|
+
dxn: channel.queue.dxn,
|
|
69
|
+
context
|
|
70
|
+
}));
|
|
71
|
+
};
|
|
72
|
+
var ChannelContainer_default = ChannelContainer;
|
|
73
|
+
export {
|
|
74
|
+
ChannelContainer_default as default
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=ChannelContainer-GP6Y6JSN.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ChannelContainer.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, type ComponentProps } from 'react';\n\nimport { Surface, useCapabilities, useCapability } from '@dxos/app-framework';\nimport { type NodeArg } from '@dxos/plugin-graph';\nimport { type ChannelType } from '@dxos/plugin-space/types';\nimport { fullyQualifiedId, getSpace } from '@dxos/react-client/echo';\nimport { createEditorActionGroup } from '@dxos/react-ui-editor';\nimport {\n createMenuAction,\n MenuProvider,\n ToolbarMenu,\n type ToolbarMenuActionGroupProperties,\n useMenuActions,\n type MenuAction,\n} from '@dxos/react-ui-menu';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { ChatContainer } from './ChatContainer';\nimport { ThreadCapabilities } from '../capabilities';\n\nconst useActivitiesMenu = (activities: ThreadCapabilities.Activity[], activity: string | undefined) => {\n return useMenuActions(() => ({\n nodes: [\n createEditorActionGroup('activities', {\n variant: 'toggleGroup',\n selectCardinality: 'single',\n value: activity,\n } as ToolbarMenuActionGroupProperties) as NodeArg<any>,\n ...activities.map(({ id, ...properties }) =>\n createMenuAction(id, {\n ...properties,\n checked: true,\n }),\n ),\n ],\n edges: [\n { source: 'root', target: 'activities' },\n ...activities.map((activity) => ({ source: 'activities', target: activity.id })),\n ],\n }));\n};\n\nconst ChannelContainer = ({\n role,\n channel,\n context,\n}: Pick<ComponentProps<typeof ChatContainer>, 'context'> & { channel: ChannelType; role: string }) => {\n const { state } = useCapability(ThreadCapabilities.MutableState);\n const currentActivity = state.activities[channel.id];\n const activities = useCapabilities(ThreadCapabilities.Activity);\n const menu = useActivitiesMenu(activities, currentActivity);\n const handleAction = useCallback(\n (action: MenuAction) => (state.activities[channel.id] = currentActivity === action.id ? undefined : action.id),\n [currentActivity],\n );\n\n const space = getSpace(channel);\n if (!space) {\n return null;\n }\n\n return (\n <StackItem.Content toolbar>\n <MenuProvider {...menu} onAction={handleAction} attendableId={fullyQualifiedId(channel)}>\n <ToolbarMenu />\n </MenuProvider>\n {currentActivity ? (\n <Surface role={`channel-activity--${currentActivity}`} data={{ subject: channel }} />\n ) : (\n <ChatContainer space={space} dxn={channel.queue.dxn} context={context} />\n )}\n </StackItem.Content>\n );\n};\n\nexport default ChannelContainer;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;AAIA,OAAOA,SAASC,mBAAwC;AAExD,SAASC,SAASC,iBAAiBC,qBAAqB;AAGxD,SAASC,kBAAkBC,gBAAgB;AAC3C,SAASC,+BAA+B;AACxC,SACEC,kBACAC,cACAC,aAEAC,sBAEK;AACP,SAASC,iBAAiB;AAK1B,IAAMC,oBAAoB,CAACC,YAA2CC,aAAAA;AACpE,SAAOC,eAAe,OAAO;IAC3BC,OAAO;MACLC,wBAAwB,cAAc;QACpCC,SAAS;QACTC,mBAAmB;QACnBC,OAAON;MACT,CAAA;SACGD,WAAWQ,IAAI,CAAC,EAAEC,IAAI,GAAGC,WAAAA,MAC1BC,iBAAiBF,IAAI;QACnB,GAAGC;QACHE,SAAS;MACX,CAAA,CAAA;;IAGJC,OAAO;MACL;QAAEC,QAAQ;QAAQC,QAAQ;MAAa;SACpCf,WAAWQ,IAAI,CAACP,eAAc;QAAEa,QAAQ;QAAcC,QAAQd,UAASQ;MAAG,EAAA;;EAEjF,EAAA;AACF;AAEA,IAAMO,mBAAmB,CAAC,EACxBC,MACAC,SACAC,QAAO,MACwF;AAC/F,QAAM,EAAEC,MAAK,IAAKC,cAAcC,mBAAmBC,YAAY;AAC/D,QAAMC,kBAAkBJ,MAAMpB,WAAWkB,QAAQT,EAAE;AACnD,QAAMT,aAAayB,gBAAgBH,mBAAmBI,QAAQ;AAC9D,QAAMC,OAAO5B,kBAAkBC,YAAYwB,eAAAA;AAC3C,QAAMI,eAAeC,YACnB,CAACC,WAAwBV,MAAMpB,WAAWkB,QAAQT,EAAE,IAAIe,oBAAoBM,OAAOrB,KAAKsB,SAAYD,OAAOrB,IAC3G;IAACe;GAAgB;AAGnB,QAAMQ,QAAQC,SAASf,OAAAA;AACvB,MAAI,CAACc,OAAO;AACV,WAAO;EACT;AAEA,SACE,sBAAA,cAACE,UAAUC,SAAO;IAACC,SAAAA;KACjB,sBAAA,cAACC,cAAAA;IAAc,GAAGV;IAAMW,UAAUV;IAAcW,cAAcC,iBAAiBtB,OAAAA;KAC7E,sBAAA,cAACuB,aAAAA,IAAAA,CAAAA,GAEFjB,kBACC,sBAAA,cAACkB,SAAAA;IAAQzB,MAAM,qBAAqBO,eAAAA;IAAmBmB,MAAM;MAAEC,SAAS1B;IAAQ;OAEhF,sBAAA,cAAC2B,eAAAA;IAAcb;IAAcc,KAAK5B,QAAQ6B,MAAMD;IAAK3B;;AAI7D;AAEA,IAAA,2BAAeH;",
|
|
6
|
+
"names": ["React", "useCallback", "Surface", "useCapabilities", "useCapability", "fullyQualifiedId", "getSpace", "createEditorActionGroup", "createMenuAction", "MenuProvider", "ToolbarMenu", "useMenuActions", "StackItem", "useActivitiesMenu", "activities", "activity", "useMenuActions", "nodes", "createEditorActionGroup", "variant", "selectCardinality", "value", "map", "id", "properties", "createMenuAction", "checked", "edges", "source", "target", "ChannelContainer", "role", "channel", "context", "state", "useCapability", "ThreadCapabilities", "MutableState", "currentActivity", "useCapabilities", "Activity", "menu", "handleAction", "useCallback", "action", "undefined", "space", "getSpace", "StackItem", "Content", "toolbar", "MenuProvider", "onAction", "attendableId", "fullyQualifiedId", "ToolbarMenu", "Surface", "data", "subject", "ChatContainer", "dxn", "queue"]
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const THREAD_PLUGIN = 'dxos.org/plugin/thread';\nexport const THREAD_ITEM = `${THREAD_PLUGIN}/item`;\n\nexport const meta = {\n id: THREAD_PLUGIN,\n name: 'Threads',\n description: 'Add comment threads to objects.',\n icon: 'ph--chat--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread',\n}
|
|
5
|
-
"mappings": ";;;AAMO,IAAMA,gBAAgB;AACtB,IAAMC,cAAc,GAAGD,aAAAA;AAEvB,IAAME,
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const THREAD_PLUGIN = 'dxos.org/plugin/thread';\nexport const THREAD_ITEM = `${THREAD_PLUGIN}/item`;\n\nexport const meta: PluginMeta = {\n id: THREAD_PLUGIN,\n name: 'Threads',\n description: 'Add comment threads to objects.',\n icon: 'ph--chat--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-thread',\n};\n"],
|
|
5
|
+
"mappings": ";;;AAMO,IAAMA,gBAAgB;AACtB,IAAMC,cAAc,GAAGD,aAAAA;AAEvB,IAAME,OAAmB;EAC9BC,IAAIH;EACJI,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;AACV;",
|
|
6
6
|
"names": ["THREAD_PLUGIN", "THREAD_ITEM", "meta", "id", "name", "description", "icon", "source"]
|
|
7
7
|
}
|
|
@@ -1,23 +1,36 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
THREAD_PLUGIN
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-42F2DTMM.mjs";
|
|
5
5
|
|
|
6
6
|
// packages/plugins/plugin-thread/src/types.ts
|
|
7
7
|
import { S } from "@dxos/echo-schema";
|
|
8
|
-
import { ChannelType,
|
|
8
|
+
import { ChannelType, ThreadType } from "@dxos/plugin-space/types";
|
|
9
9
|
import { EchoObjectSchema } from "@dxos/react-client/echo";
|
|
10
|
+
import { MessageType } from "@dxos/schema";
|
|
10
11
|
var ThreadAction;
|
|
11
12
|
(function(ThreadAction2) {
|
|
12
13
|
const THREAD_ACTION = `${THREAD_PLUGIN}/action`;
|
|
14
|
+
class CreateChannel extends S.TaggedClass()(`${THREAD_ACTION}/create-channel`, {
|
|
15
|
+
input: S.Struct({
|
|
16
|
+
// TODO(wittjosiah): Should be SpaceId.
|
|
17
|
+
spaceId: S.String,
|
|
18
|
+
name: S.optional(S.String)
|
|
19
|
+
}),
|
|
20
|
+
output: S.Struct({
|
|
21
|
+
object: ChannelType
|
|
22
|
+
})
|
|
23
|
+
}) {
|
|
24
|
+
}
|
|
25
|
+
ThreadAction2.CreateChannel = CreateChannel;
|
|
13
26
|
class Create extends S.TaggedClass()(`${THREAD_ACTION}/create`, {
|
|
14
27
|
input: S.Struct({
|
|
15
28
|
name: S.optional(S.String),
|
|
16
|
-
cursor: S.
|
|
17
|
-
subject:
|
|
29
|
+
cursor: S.String,
|
|
30
|
+
subject: EchoObjectSchema
|
|
18
31
|
}),
|
|
19
32
|
output: S.Struct({
|
|
20
|
-
object:
|
|
33
|
+
object: ThreadType
|
|
21
34
|
})
|
|
22
35
|
}) {
|
|
23
36
|
}
|
|
@@ -77,4 +90,4 @@ export {
|
|
|
77
90
|
ThreadAction,
|
|
78
91
|
ThreadSettingsSchema
|
|
79
92
|
};
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
93
|
+
//# sourceMappingURL=chunk-FZXTP57V.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\nimport { ChannelType, ThreadType } from '@dxos/plugin-space/types';\nimport { EchoObjectSchema } from '@dxos/react-client/echo';\nimport { MessageType } from '@dxos/schema';\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport namespace ThreadAction {\n const THREAD_ACTION = `${THREAD_PLUGIN}/action`;\n\n export class CreateChannel extends S.TaggedClass<CreateChannel>()(`${THREAD_ACTION}/create-channel`, {\n input: S.Struct({\n // TODO(wittjosiah): Should be SpaceId.\n spaceId: S.String,\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: ChannelType,\n }),\n }) {}\n\n export class Create extends S.TaggedClass<Create>()(`${THREAD_ACTION}/create`, {\n input: S.Struct({\n name: S.optional(S.String),\n cursor: S.String,\n subject: EchoObjectSchema,\n }),\n output: S.Struct({\n object: ThreadType,\n }),\n }) {}\n\n export class Select extends S.TaggedClass<Select>()(`${THREAD_ACTION}/select`, {\n input: S.Struct({\n current: S.String,\n skipOpen: S.optional(S.Boolean),\n }),\n output: S.Void,\n }) {}\n\n export class ToggleResolved extends S.TaggedClass<ToggleResolved>()(`${THREAD_ACTION}/toggle-resolved`, {\n input: S.Struct({\n thread: ThreadType,\n }),\n output: S.Void,\n }) {}\n\n export class Delete extends S.TaggedClass<Delete>()(`${THREAD_ACTION}/delete`, {\n input: S.Struct({\n thread: ThreadType,\n subject: EchoObjectSchema,\n cursor: S.optional(S.String),\n }),\n output: S.Void,\n }) {}\n\n // TODO(wittjosiah): Rename?\n export class OnMessageAdd extends S.TaggedClass<OnMessageAdd>()(`${THREAD_ACTION}/on-message-add`, {\n input: S.Struct({\n thread: ThreadType,\n subject: EchoObjectSchema,\n }),\n output: S.Void,\n }) {}\n\n export class DeleteMessage extends S.TaggedClass<DeleteMessage>()(`${THREAD_ACTION}/delete-message`, {\n input: S.Struct({\n thread: ThreadType,\n subject: EchoObjectSchema,\n messageId: S.String,\n message: S.optional(MessageType),\n messageIndex: S.optional(S.Number),\n }),\n output: S.Void,\n }) {}\n}\n\nexport const ThreadSettingsSchema = S.mutable(S.Struct({}));\n\nexport type ThreadSettingsProps = S.Schema.Type<typeof ThreadSettingsSchema>;\n\nexport interface ThreadModel {\n root: ThreadType;\n}\n\ntype SubjectId = string;\nexport type ViewState = { showResolvedThreads: boolean };\nexport type ViewStore = Record<SubjectId, ViewState>;\n\nexport type ThreadState = {\n /** Current channel activity. */\n activities: Record<string, string | undefined>;\n /** In-memory draft threads. */\n drafts: Record<string, ThreadType[]>;\n current?: string | undefined;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,SAASA,SAAS;AAClB,SAASC,aAAaC,kBAAkB;AACxC,SAASC,wBAAwB;AACjC,SAASC,mBAAmB;;UAIXC,eAAAA;AACf,QAAMC,gBAAgB,GAAGC,aAAAA;EAElB,MAAMC,sBAAsBC,EAAEC,YAAW,EAAkB,GAAGJ,aAAAA,mBAAgC;IACnGK,OAAOF,EAAEG,OAAO;;MAEdC,SAASJ,EAAEK;MACXC,MAAMN,EAAEO,SAASP,EAAEK,MAAM;IAC3B,CAAA;IACAG,QAAQR,EAAEG,OAAO;MACfM,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBATSX,gBAAAA;EAWN,MAAMY,eAAeX,EAAEC,YAAW,EAAW,GAAGJ,aAAAA,WAAwB;IAC7EK,OAAOF,EAAEG,OAAO;MACdG,MAAMN,EAAEO,SAASP,EAAEK,MAAM;MACzBO,QAAQZ,EAAEK;MACVQ,SAASC;IACX,CAAA;IACAN,QAAQR,EAAEG,OAAO;MACfM,QAAQM;IACV,CAAA;EACF,CAAA,EAAA;EAAI;gBATSJ,SAAAA;EAWN,MAAMK,eAAehB,EAAEC,YAAW,EAAW,GAAGJ,aAAAA,WAAwB;IAC7EK,OAAOF,EAAEG,OAAO;MACdc,SAASjB,EAAEK;MACXa,UAAUlB,EAAEO,SAASP,EAAEmB,OAAO;IAChC,CAAA;IACAX,QAAQR,EAAEoB;EACZ,CAAA,EAAA;EAAI;gBANSJ,SAAAA;EAQN,MAAMK,uBAAuBrB,EAAEC,YAAW,EAAmB,GAAGJ,aAAAA,oBAAiC;IACtGK,OAAOF,EAAEG,OAAO;MACdmB,QAAQP;IACV,CAAA;IACAP,QAAQR,EAAEoB;EACZ,CAAA,EAAA;EAAI;gBALSC,iBAAAA;EAON,MAAME,eAAevB,EAAEC,YAAW,EAAW,GAAGJ,aAAAA,WAAwB;IAC7EK,OAAOF,EAAEG,OAAO;MACdmB,QAAQP;MACRF,SAASC;MACTF,QAAQZ,EAAEO,SAASP,EAAEK,MAAM;IAC7B,CAAA;IACAG,QAAQR,EAAEoB;EACZ,CAAA,EAAA;EAAI;gBAPSG,SAAAA;EAUN,MAAMC,qBAAqBxB,EAAEC,YAAW,EAAiB,GAAGJ,aAAAA,mBAAgC;IACjGK,OAAOF,EAAEG,OAAO;MACdmB,QAAQP;MACRF,SAASC;IACX,CAAA;IACAN,QAAQR,EAAEoB;EACZ,CAAA,EAAA;EAAI;gBANSI,eAAAA;EAQN,MAAMC,sBAAsBzB,EAAEC,YAAW,EAAkB,GAAGJ,aAAAA,mBAAgC;IACnGK,OAAOF,EAAEG,OAAO;MACdmB,QAAQP;MACRF,SAASC;MACTY,WAAW1B,EAAEK;MACbsB,SAAS3B,EAAEO,SAASqB,WAAAA;MACpBC,cAAc7B,EAAEO,SAASP,EAAE8B,MAAM;IACnC,CAAA;IACAtB,QAAQR,EAAEoB;EACZ,CAAA,EAAA;EAAI;gBATSK,gBAAAA;AAUf,GApEiB7B,iBAAAA,eAAAA,CAAAA,EAAAA;AAsEV,IAAMmC,uBAAuB/B,EAAEgC,QAAQhC,EAAEG,OAAO,CAAC,CAAA,CAAA;",
|
|
6
|
+
"names": ["S", "ChannelType", "ThreadType", "EchoObjectSchema", "MessageType", "ThreadAction", "THREAD_ACTION", "THREAD_PLUGIN", "CreateChannel", "S", "TaggedClass", "input", "Struct", "spaceId", "String", "name", "optional", "output", "object", "ChannelType", "Create", "cursor", "subject", "EchoObjectSchema", "ThreadType", "Select", "current", "skipOpen", "Boolean", "Void", "ToggleResolved", "thread", "Delete", "OnMessageAdd", "DeleteMessage", "messageId", "message", "MessageType", "messageIndex", "Number", "ThreadSettingsSchema", "mutable"]
|
|
7
|
+
}
|