@dxos/plugin-thread 0.8.1-main.ba2dec9 → 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
|
@@ -2,11 +2,9 @@ declare const _default: {
|
|
|
2
2
|
'en-US': {
|
|
3
3
|
[x: string]: {
|
|
4
4
|
'typename label': string;
|
|
5
|
+
'object name placeholder': string;
|
|
5
6
|
'plugin name'?: undefined;
|
|
6
|
-
'channel name placeholder'?: undefined;
|
|
7
7
|
'channel title label'?: undefined;
|
|
8
|
-
'delete channel label'?: undefined;
|
|
9
|
-
'create channel label'?: undefined;
|
|
10
8
|
'message placeholder'?: undefined;
|
|
11
9
|
'activity message'?: undefined;
|
|
12
10
|
'anonymous label'?: undefined;
|
|
@@ -33,10 +31,7 @@ declare const _default: {
|
|
|
33
31
|
'show unresolved label'?: undefined;
|
|
34
32
|
} | {
|
|
35
33
|
'plugin name': string;
|
|
36
|
-
'channel name placeholder': string;
|
|
37
34
|
'channel title label': string;
|
|
38
|
-
'delete channel label': string;
|
|
39
|
-
'create channel label': string;
|
|
40
35
|
'message placeholder': string;
|
|
41
36
|
'activity message': string;
|
|
42
37
|
'anonymous label': string;
|
|
@@ -62,13 +57,11 @@ declare const _default: {
|
|
|
62
57
|
'show all label': string;
|
|
63
58
|
'show unresolved label': string;
|
|
64
59
|
'typename label'?: undefined;
|
|
60
|
+
'object name placeholder'?: undefined;
|
|
65
61
|
};
|
|
66
62
|
"dxos.org/plugin/thread": {
|
|
67
63
|
'plugin name': string;
|
|
68
|
-
'channel name placeholder': string;
|
|
69
64
|
'channel title label': string;
|
|
70
|
-
'delete channel label': string;
|
|
71
|
-
'create channel label': string;
|
|
72
65
|
'message placeholder': string;
|
|
73
66
|
'activity message': string;
|
|
74
67
|
'anonymous label': string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,wBAsCE"}
|
|
@@ -1,16 +1,30 @@
|
|
|
1
1
|
import { S } from '@dxos/echo-schema';
|
|
2
|
-
import { ChannelType,
|
|
2
|
+
import { ChannelType, ThreadType } from '@dxos/plugin-space/types';
|
|
3
|
+
import { MessageType } from '@dxos/schema';
|
|
3
4
|
export declare namespace ThreadAction {
|
|
5
|
+
const CreateChannel_base: S.TaggedClass<CreateChannel, "dxos.org/plugin/thread/action/create-channel", {
|
|
6
|
+
readonly _tag: S.tag<"dxos.org/plugin/thread/action/create-channel">;
|
|
7
|
+
} & {
|
|
8
|
+
input: S.Struct<{
|
|
9
|
+
spaceId: typeof S.String;
|
|
10
|
+
name: S.optional<typeof S.String>;
|
|
11
|
+
}>;
|
|
12
|
+
output: S.Struct<{
|
|
13
|
+
object: typeof ChannelType;
|
|
14
|
+
}>;
|
|
15
|
+
}>;
|
|
16
|
+
export class CreateChannel extends CreateChannel_base {
|
|
17
|
+
}
|
|
4
18
|
const Create_base: S.TaggedClass<Create, "dxos.org/plugin/thread/action/create", {
|
|
5
19
|
readonly _tag: S.tag<"dxos.org/plugin/thread/action/create">;
|
|
6
20
|
} & {
|
|
7
21
|
input: S.Struct<{
|
|
8
22
|
name: S.optional<typeof S.String>;
|
|
9
|
-
cursor:
|
|
10
|
-
subject: S.
|
|
23
|
+
cursor: typeof S.String;
|
|
24
|
+
subject: S.Schema<import("@dxos/echo-db").ReactiveEchoObject<any>, import("@dxos/echo-db").ReactiveEchoObject<any>, never>;
|
|
11
25
|
}>;
|
|
12
26
|
output: S.Struct<{
|
|
13
|
-
object:
|
|
27
|
+
object: typeof ThreadType;
|
|
14
28
|
}>;
|
|
15
29
|
}>;
|
|
16
30
|
export class Create extends Create_base {
|
|
@@ -86,6 +100,8 @@ export type ViewState = {
|
|
|
86
100
|
};
|
|
87
101
|
export type ViewStore = Record<SubjectId, ViewState>;
|
|
88
102
|
export type ThreadState = {
|
|
103
|
+
/** Current channel activity. */
|
|
104
|
+
activities: Record<string, string | undefined>;
|
|
89
105
|
/** In-memory draft threads. */
|
|
90
106
|
drafts: Record<string, ThreadType[]>;
|
|
91
107
|
current?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,yBAAiB,YAAY,CAAC;;;;;;;;;;;;IAG5B,MAAM,OAAO,aAAc,SAAQ,kBASjC;KAAG;;;;;;;;;;;;;IAEL,MAAM,OAAO,MAAO,SAAQ,WAS1B;KAAG;;;;;;;;;;IAEL,MAAM,OAAO,MAAO,SAAQ,WAM1B;KAAG;;;;;;;;;IAEL,MAAM,OAAO,cAAe,SAAQ,mBAKlC;KAAG;;;;;;;;;;;IAEL,MAAM,OAAO,MAAO,SAAQ,WAO1B;KAAG;;;;;;;;;;IAGL,MAAM,OAAO,YAAa,SAAQ,iBAMhC;KAAG;;;;;;;;;;;;;IAEL,MAAM,OAAO,aAAc,SAAQ,kBASjC;KAAG;;CACN;AAED,eAAO,MAAM,oBAAoB,yBAA0B,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE7E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,KAAK,SAAS,GAAG,MAAM,CAAC;AACxB,MAAM,MAAM,SAAS,GAAG;IAAE,mBAAmB,EAAE,OAAO,CAAA;CAAE,CAAC;AACzD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG;IACxB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-thread",
|
|
3
|
-
"version": "0.8.1-
|
|
3
|
+
"version": "0.8.1-staging.5be625a",
|
|
4
4
|
"description": "DXOS Threads Surface plugin",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -39,29 +39,32 @@
|
|
|
39
39
|
"@preact/signals-core": "^1.6.0",
|
|
40
40
|
"date-fns": "^3.3.1",
|
|
41
41
|
"lodash.get": "^4.4.2",
|
|
42
|
-
"@dxos/app-framework": "0.8.1-
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/plugin-attention": "0.8.1-
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/plugin-
|
|
53
|
-
"@dxos/plugin-
|
|
54
|
-
"@dxos/plugin-graph": "0.8.1-
|
|
55
|
-
"@dxos/plugin-
|
|
56
|
-
"@dxos/plugin-
|
|
57
|
-
"@dxos/
|
|
58
|
-
"@dxos/react-client": "0.8.1-
|
|
59
|
-
"@dxos/react-ui-
|
|
60
|
-
"@dxos/react-ui-form": "0.8.1-
|
|
61
|
-
"@dxos/react-ui-
|
|
62
|
-
"@dxos/
|
|
63
|
-
"@dxos/react-ui-
|
|
64
|
-
"@dxos/react-ui-
|
|
42
|
+
"@dxos/app-framework": "0.8.1-staging.5be625a",
|
|
43
|
+
"@dxos/display-name": "0.8.1-staging.5be625a",
|
|
44
|
+
"@dxos/async": "0.8.1-staging.5be625a",
|
|
45
|
+
"@dxos/invariant": "0.8.1-staging.5be625a",
|
|
46
|
+
"@dxos/keys": "0.8.1-staging.5be625a",
|
|
47
|
+
"@dxos/echo-schema": "0.8.1-staging.5be625a",
|
|
48
|
+
"@dxos/live-object": "0.8.1-staging.5be625a",
|
|
49
|
+
"@dxos/local-storage": "0.8.1-staging.5be625a",
|
|
50
|
+
"@dxos/plugin-attention": "0.8.1-staging.5be625a",
|
|
51
|
+
"@dxos/log": "0.8.1-staging.5be625a",
|
|
52
|
+
"@dxos/plugin-client": "0.8.1-staging.5be625a",
|
|
53
|
+
"@dxos/plugin-deck": "0.8.1-staging.5be625a",
|
|
54
|
+
"@dxos/plugin-graph": "0.8.1-staging.5be625a",
|
|
55
|
+
"@dxos/plugin-markdown": "0.8.1-staging.5be625a",
|
|
56
|
+
"@dxos/plugin-observability": "0.8.1-staging.5be625a",
|
|
57
|
+
"@dxos/plugin-space": "0.8.1-staging.5be625a",
|
|
58
|
+
"@dxos/react-client": "0.8.1-staging.5be625a",
|
|
59
|
+
"@dxos/react-ui-attention": "0.8.1-staging.5be625a",
|
|
60
|
+
"@dxos/react-ui-form": "0.8.1-staging.5be625a",
|
|
61
|
+
"@dxos/react-ui-menu": "0.8.1-staging.5be625a",
|
|
62
|
+
"@dxos/react-ui-editor": "0.8.1-staging.5be625a",
|
|
63
|
+
"@dxos/react-ui-stack": "0.8.1-staging.5be625a",
|
|
64
|
+
"@dxos/react-ui-tabs": "0.8.1-staging.5be625a",
|
|
65
|
+
"@dxos/react-ui-thread": "0.8.1-staging.5be625a",
|
|
66
|
+
"@dxos/schema": "0.8.1-staging.5be625a",
|
|
67
|
+
"@dxos/util": "0.8.1-staging.5be625a"
|
|
65
68
|
},
|
|
66
69
|
"devDependencies": {
|
|
67
70
|
"@phosphor-icons/react": "^2.1.5",
|
|
@@ -71,17 +74,17 @@
|
|
|
71
74
|
"react": "~18.2.0",
|
|
72
75
|
"react-dom": "~18.2.0",
|
|
73
76
|
"vite": "5.4.7",
|
|
74
|
-
"@dxos/
|
|
75
|
-
"@dxos/
|
|
76
|
-
"@dxos/storybook-utils": "0.8.1-
|
|
77
|
-
"@dxos/react-ui-theme": "0.8.1-
|
|
77
|
+
"@dxos/react-ui": "0.8.1-staging.5be625a",
|
|
78
|
+
"@dxos/random": "0.8.1-staging.5be625a",
|
|
79
|
+
"@dxos/storybook-utils": "0.8.1-staging.5be625a",
|
|
80
|
+
"@dxos/react-ui-theme": "0.8.1-staging.5be625a"
|
|
78
81
|
},
|
|
79
82
|
"peerDependencies": {
|
|
80
83
|
"@phosphor-icons/react": "^2.1.5",
|
|
81
84
|
"react": "~18.2.0",
|
|
82
85
|
"react-dom": "~18.2.0",
|
|
83
|
-
"@dxos/react-ui": "0.8.1-
|
|
84
|
-
"@dxos/react-ui-theme": "0.8.1-
|
|
86
|
+
"@dxos/react-ui": "0.8.1-staging.5be625a",
|
|
87
|
+
"@dxos/react-ui-theme": "0.8.1-staging.5be625a"
|
|
85
88
|
},
|
|
86
89
|
"publishConfig": {
|
|
87
90
|
"access": "public"
|
package/src/ThreadPlugin.tsx
CHANGED
|
@@ -7,11 +7,13 @@ import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
|
|
|
7
7
|
import { DeckCapabilities, DeckEvents } from '@dxos/plugin-deck';
|
|
8
8
|
import { MarkdownEvents } from '@dxos/plugin-markdown';
|
|
9
9
|
import { SpaceCapabilities, ThreadEvents } from '@dxos/plugin-space';
|
|
10
|
-
import { ChannelType, defineObjectForm,
|
|
10
|
+
import { ChannelType, defineObjectForm, ThreadType } from '@dxos/plugin-space/types';
|
|
11
11
|
import { type ReactiveEchoObject, RefArray } from '@dxos/react-client/echo';
|
|
12
12
|
import { translations as threadTranslations } from '@dxos/react-ui-thread';
|
|
13
|
+
import { MessageType, MessageTypeV1, MessageTypeV1ToV2 } from '@dxos/schema';
|
|
13
14
|
|
|
14
15
|
import { IntentResolver, Markdown, ReactSurface, ThreadState } from './capabilities';
|
|
16
|
+
import { ThreadEvents as LocalThreadEvents } from './events';
|
|
15
17
|
import { meta, THREAD_ITEM, THREAD_PLUGIN } from './meta';
|
|
16
18
|
import translations from './translations';
|
|
17
19
|
import { ThreadAction } from './types';
|
|
@@ -46,10 +48,7 @@ export const ThreadPlugin = () =>
|
|
|
46
48
|
contributes(Capabilities.Metadata, {
|
|
47
49
|
id: ChannelType.typename,
|
|
48
50
|
metadata: {
|
|
49
|
-
placeholder: ['channel name placeholder', { ns: THREAD_PLUGIN }],
|
|
50
51
|
icon: 'ph--chat--regular',
|
|
51
|
-
// TODO(wittjosiah): Move out of metadata.
|
|
52
|
-
loadReferences: async (channel: ChannelType) => await RefArray.loadAll(channel.threads ?? []),
|
|
53
52
|
},
|
|
54
53
|
}),
|
|
55
54
|
contributes(Capabilities.Metadata, {
|
|
@@ -91,14 +90,19 @@ export const ThreadPlugin = () =>
|
|
|
91
90
|
SpaceCapabilities.ObjectForm,
|
|
92
91
|
defineObjectForm({
|
|
93
92
|
objectSchema: ChannelType,
|
|
94
|
-
getIntent: () => createIntent(ThreadAction.
|
|
93
|
+
getIntent: (_, options) => createIntent(ThreadAction.CreateChannel, { spaceId: options.space.id }),
|
|
95
94
|
}),
|
|
96
95
|
),
|
|
97
96
|
}),
|
|
98
97
|
defineModule({
|
|
99
98
|
id: `${meta.id}/module/schema`,
|
|
100
99
|
activatesOn: ClientEvents.SetupSchema,
|
|
101
|
-
activate: () => contributes(ClientCapabilities.Schema, [ThreadType, MessageType]),
|
|
100
|
+
activate: () => contributes(ClientCapabilities.Schema, [ThreadType, MessageType, MessageTypeV1]),
|
|
101
|
+
}),
|
|
102
|
+
defineModule({
|
|
103
|
+
id: `${meta.id}/module/migration`,
|
|
104
|
+
activatesOn: ClientEvents.SetupMigration,
|
|
105
|
+
activate: () => contributes(ClientCapabilities.Migration, [MessageTypeV1ToV2]),
|
|
102
106
|
}),
|
|
103
107
|
defineModule({
|
|
104
108
|
id: `${meta.id}/module/complementary-panel`,
|
|
@@ -128,7 +132,7 @@ export const ThreadPlugin = () =>
|
|
|
128
132
|
id: `${meta.id}/module/react-surface`,
|
|
129
133
|
activatesOn: Events.SetupReactSurface,
|
|
130
134
|
// TODO(wittjosiah): Should occur before the comments thread is loaded when surfaces activation is more granular.
|
|
131
|
-
activatesBefore: [ThreadEvents.SetupThread],
|
|
135
|
+
activatesBefore: [ThreadEvents.SetupThread, LocalThreadEvents.SetupActivity],
|
|
132
136
|
activate: ReactSurface,
|
|
133
137
|
}),
|
|
134
138
|
defineModule({
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { defineCapability } from '@dxos/app-framework';
|
|
6
|
+
import { type MenuActionProperties } from '@dxos/react-ui-menu';
|
|
6
7
|
import { type DeepReadonly } from '@dxos/util';
|
|
7
8
|
|
|
8
9
|
import { THREAD_PLUGIN } from '../meta';
|
|
@@ -16,4 +17,9 @@ export namespace ThreadCapabilities {
|
|
|
16
17
|
export const MutableState = defineCapability<{ state: ThreadState; getViewState: GetViewState }>(
|
|
17
18
|
`${THREAD_PLUGIN}/capability/state`,
|
|
18
19
|
);
|
|
20
|
+
|
|
21
|
+
export type Activity = Omit<MenuActionProperties, 'variant' | 'checked'> & {
|
|
22
|
+
id: string;
|
|
23
|
+
};
|
|
24
|
+
export const Activity = defineCapability<Activity>(`${THREAD_PLUGIN}/capability/activity`);
|
|
19
25
|
}
|
|
@@ -10,7 +10,9 @@ import {
|
|
|
10
10
|
LayoutAction,
|
|
11
11
|
type PluginsContext,
|
|
12
12
|
} from '@dxos/app-framework';
|
|
13
|
-
import { Ref } from '@dxos/echo-schema';
|
|
13
|
+
import { ObjectId, Ref } from '@dxos/echo-schema';
|
|
14
|
+
import { DXN, QueueSubspaceTags } from '@dxos/keys';
|
|
15
|
+
import { refFromDXN } from '@dxos/live-object';
|
|
14
16
|
import { log } from '@dxos/log';
|
|
15
17
|
import { ObservabilityAction } from '@dxos/plugin-observability/types';
|
|
16
18
|
import { ChannelType, ThreadType } from '@dxos/plugin-space/types';
|
|
@@ -22,44 +24,48 @@ import { ThreadAction } from '../types';
|
|
|
22
24
|
|
|
23
25
|
export default (context: PluginsContext) =>
|
|
24
26
|
contributes(Capabilities.IntentResolver, [
|
|
27
|
+
createResolver({
|
|
28
|
+
intent: ThreadAction.CreateChannel,
|
|
29
|
+
resolve: ({ spaceId, name }) => ({
|
|
30
|
+
data: {
|
|
31
|
+
object: create(ChannelType, {
|
|
32
|
+
name,
|
|
33
|
+
queue: refFromDXN(new DXN(DXN.kind.QUEUE, [QueueSubspaceTags.DATA, spaceId, ObjectId.random()])),
|
|
34
|
+
}),
|
|
35
|
+
},
|
|
36
|
+
}),
|
|
37
|
+
}),
|
|
25
38
|
createResolver({
|
|
26
39
|
intent: ThreadAction.Create,
|
|
27
40
|
resolve: ({ name, cursor, subject }) => {
|
|
28
|
-
if
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const { state } = context.requestCapability(ThreadCapabilities.MutableState);
|
|
41
|
-
const subjectId = fullyQualifiedId(subject);
|
|
42
|
-
const thread = create(ThreadType, { name, anchor: cursor, messages: [], status: 'staged' });
|
|
43
|
-
const draft = state.drafts[subjectId];
|
|
44
|
-
if (draft) {
|
|
45
|
-
draft.push(thread);
|
|
46
|
-
} else {
|
|
47
|
-
state.drafts[subjectId] = [thread];
|
|
41
|
+
// Seed the threads array if it does not exist.
|
|
42
|
+
if (subject?.threads === undefined) {
|
|
43
|
+
try {
|
|
44
|
+
// Static schema will throw an error if subject does not support threads array property.
|
|
45
|
+
subject.threads = [];
|
|
46
|
+
} catch (err) {
|
|
47
|
+
log.error('Subject does not support threads array', { typename: subject?.typename });
|
|
48
|
+
return;
|
|
48
49
|
}
|
|
50
|
+
}
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
};
|
|
52
|
+
const { state } = context.requestCapability(ThreadCapabilities.MutableState);
|
|
53
|
+
const subjectId = fullyQualifiedId(subject);
|
|
54
|
+
const thread = create(ThreadType, { name, anchor: cursor, messages: [], status: 'staged' });
|
|
55
|
+
const draft = state.drafts[subjectId];
|
|
56
|
+
if (draft) {
|
|
57
|
+
draft.push(thread);
|
|
57
58
|
} else {
|
|
58
|
-
|
|
59
|
-
return {
|
|
60
|
-
data: { object: create(ChannelType, { threads: [makeRef(create(ThreadType, { messages: [] }))] }) },
|
|
61
|
-
};
|
|
59
|
+
state.drafts[subjectId] = [thread];
|
|
62
60
|
}
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
data: { object: thread },
|
|
64
|
+
intents: [
|
|
65
|
+
createIntent(ThreadAction.Select, { current: fullyQualifiedId(thread) }),
|
|
66
|
+
createIntent(LayoutAction.UpdateComplementary, { part: 'complementary', subject: 'comments' }),
|
|
67
|
+
],
|
|
68
|
+
};
|
|
63
69
|
},
|
|
64
70
|
}),
|
|
65
71
|
createResolver({
|
|
@@ -220,7 +226,7 @@ export default (context: PluginsContext) =>
|
|
|
220
226
|
],
|
|
221
227
|
};
|
|
222
228
|
} else {
|
|
223
|
-
if (
|
|
229
|
+
if (messageIndex === undefined || !message) {
|
|
224
230
|
return;
|
|
225
231
|
}
|
|
226
232
|
|
|
@@ -10,7 +10,7 @@ import { SettingsStore } from '@dxos/local-storage';
|
|
|
10
10
|
import { ChannelType, type ThreadType } from '@dxos/plugin-space/types';
|
|
11
11
|
import { getSpace } from '@dxos/react-client/echo';
|
|
12
12
|
|
|
13
|
-
import {
|
|
13
|
+
import { ChannelContainer, ThreadComplementary, ThreadSettings } from '../components';
|
|
14
14
|
import { THREAD_PLUGIN } from '../meta';
|
|
15
15
|
import { type ThreadSettingsProps } from '../types';
|
|
16
16
|
|
|
@@ -19,25 +19,13 @@ export default () =>
|
|
|
19
19
|
createSurface({
|
|
20
20
|
id: `${THREAD_PLUGIN}/channel`,
|
|
21
21
|
role: 'article',
|
|
22
|
-
filter: (data): data is { subject: ChannelType } =>
|
|
23
|
-
|
|
24
|
-
component: ({ data, role }) => {
|
|
22
|
+
filter: (data): data is { subject: ChannelType } => data.subject instanceof ChannelType,
|
|
23
|
+
component: ({ data: { subject: channel }, role }) => {
|
|
25
24
|
const layout = useLayout();
|
|
26
|
-
const channel = data.subject;
|
|
27
|
-
void channel.threads[0].load();
|
|
28
|
-
const thread = channel.threads[0].target;
|
|
29
|
-
if (!thread) {
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
25
|
const currentPosition = layout.active.findIndex((id) => id === channel.id);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return <ThreadContainer role={role} thread={thread} context={context} />;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return <ThreadContainer role={role} thread={thread} />;
|
|
26
|
+
const objectToTheLeft = layout.active[currentPosition - 1];
|
|
27
|
+
const context = currentPosition > 0 ? getSpace(channel)?.db.getObjectById(objectToTheLeft) : undefined;
|
|
28
|
+
return <ChannelContainer role={role} channel={channel} context={context} />;
|
|
41
29
|
},
|
|
42
30
|
}),
|
|
43
31
|
createSurface({
|
|
@@ -11,7 +11,7 @@ import { type ThreadState, type ViewStore } from '../types';
|
|
|
11
11
|
const initialViewState = { showResolvedThreads: false };
|
|
12
12
|
|
|
13
13
|
export default () => {
|
|
14
|
-
const state = create<ThreadState>({ drafts: {} });
|
|
14
|
+
const state = create<ThreadState>({ activities: {}, drafts: {} });
|
|
15
15
|
const viewStore = create<ViewStore>({});
|
|
16
16
|
|
|
17
17
|
const getViewState = (subjectId: string) => {
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React, { useCallback, type ComponentProps } from 'react';
|
|
6
|
+
|
|
7
|
+
import { Surface, useCapabilities, useCapability } from '@dxos/app-framework';
|
|
8
|
+
import { type NodeArg } from '@dxos/plugin-graph';
|
|
9
|
+
import { type ChannelType } from '@dxos/plugin-space/types';
|
|
10
|
+
import { fullyQualifiedId, getSpace } from '@dxos/react-client/echo';
|
|
11
|
+
import { createEditorActionGroup } from '@dxos/react-ui-editor';
|
|
12
|
+
import {
|
|
13
|
+
createMenuAction,
|
|
14
|
+
MenuProvider,
|
|
15
|
+
ToolbarMenu,
|
|
16
|
+
type ToolbarMenuActionGroupProperties,
|
|
17
|
+
useMenuActions,
|
|
18
|
+
type MenuAction,
|
|
19
|
+
} from '@dxos/react-ui-menu';
|
|
20
|
+
import { StackItem } from '@dxos/react-ui-stack';
|
|
21
|
+
|
|
22
|
+
import { ChatContainer } from './ChatContainer';
|
|
23
|
+
import { ThreadCapabilities } from '../capabilities';
|
|
24
|
+
|
|
25
|
+
const useActivitiesMenu = (activities: ThreadCapabilities.Activity[], activity: string | undefined) => {
|
|
26
|
+
return useMenuActions(() => ({
|
|
27
|
+
nodes: [
|
|
28
|
+
createEditorActionGroup('activities', {
|
|
29
|
+
variant: 'toggleGroup',
|
|
30
|
+
selectCardinality: 'single',
|
|
31
|
+
value: activity,
|
|
32
|
+
} as ToolbarMenuActionGroupProperties) as NodeArg<any>,
|
|
33
|
+
...activities.map(({ id, ...properties }) =>
|
|
34
|
+
createMenuAction(id, {
|
|
35
|
+
...properties,
|
|
36
|
+
checked: true,
|
|
37
|
+
}),
|
|
38
|
+
),
|
|
39
|
+
],
|
|
40
|
+
edges: [
|
|
41
|
+
{ source: 'root', target: 'activities' },
|
|
42
|
+
...activities.map((activity) => ({ source: 'activities', target: activity.id })),
|
|
43
|
+
],
|
|
44
|
+
}));
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const ChannelContainer = ({
|
|
48
|
+
role,
|
|
49
|
+
channel,
|
|
50
|
+
context,
|
|
51
|
+
}: Pick<ComponentProps<typeof ChatContainer>, 'context'> & { channel: ChannelType; role: string }) => {
|
|
52
|
+
const { state } = useCapability(ThreadCapabilities.MutableState);
|
|
53
|
+
const currentActivity = state.activities[channel.id];
|
|
54
|
+
const activities = useCapabilities(ThreadCapabilities.Activity);
|
|
55
|
+
const menu = useActivitiesMenu(activities, currentActivity);
|
|
56
|
+
const handleAction = useCallback(
|
|
57
|
+
(action: MenuAction) => (state.activities[channel.id] = currentActivity === action.id ? undefined : action.id),
|
|
58
|
+
[currentActivity],
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
const space = getSpace(channel);
|
|
62
|
+
if (!space) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return (
|
|
67
|
+
<StackItem.Content toolbar>
|
|
68
|
+
<MenuProvider {...menu} onAction={handleAction} attendableId={fullyQualifiedId(channel)}>
|
|
69
|
+
<ToolbarMenu />
|
|
70
|
+
</MenuProvider>
|
|
71
|
+
{currentActivity ? (
|
|
72
|
+
<Surface role={`channel-activity--${currentActivity}`} data={{ subject: channel }} />
|
|
73
|
+
) : (
|
|
74
|
+
<ChatContainer space={space} dxn={channel.queue.dxn} context={context} />
|
|
75
|
+
)}
|
|
76
|
+
</StackItem.Content>
|
|
77
|
+
);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export default ChannelContainer;
|
|
@@ -7,19 +7,22 @@ import '@dxos-theme';
|
|
|
7
7
|
import { type Meta } from '@storybook/react';
|
|
8
8
|
import React, { useEffect, useState } from 'react';
|
|
9
9
|
|
|
10
|
-
import { Capabilities, contributes, createSurface } from '@dxos/app-framework';
|
|
10
|
+
import { Capabilities, contributes, createSurface, IntentPlugin } from '@dxos/app-framework';
|
|
11
11
|
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
12
|
-
import {
|
|
12
|
+
import { ObjectId } from '@dxos/echo-schema';
|
|
13
|
+
import { DXN, QueueSubspaceTags } from '@dxos/keys';
|
|
14
|
+
import { refFromDXN } from '@dxos/live-object';
|
|
15
|
+
import { ChannelType, ThreadType } from '@dxos/plugin-space/types';
|
|
13
16
|
import { faker } from '@dxos/random';
|
|
14
17
|
import { useClient } from '@dxos/react-client';
|
|
15
|
-
import { type Space } from '@dxos/react-client/echo';
|
|
18
|
+
import { create, type Space } from '@dxos/react-client/echo';
|
|
16
19
|
import { useIdentity } from '@dxos/react-client/halo';
|
|
17
20
|
import { withClientProvider } from '@dxos/react-client/testing';
|
|
18
21
|
import { Thread } from '@dxos/react-ui-thread';
|
|
22
|
+
import { MessageType } from '@dxos/schema';
|
|
19
23
|
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
20
24
|
|
|
21
25
|
import { ChatContainer } from './ChatContainer';
|
|
22
|
-
import { createChatThread } from './testing';
|
|
23
26
|
import translations from '../translations';
|
|
24
27
|
|
|
25
28
|
faker.seed(1);
|
|
@@ -28,25 +31,31 @@ const Story = () => {
|
|
|
28
31
|
const client = useClient();
|
|
29
32
|
const identity = useIdentity();
|
|
30
33
|
const [space, setSpace] = useState<Space>();
|
|
31
|
-
const [
|
|
34
|
+
const [channel, setChannel] = useState<ChannelType | null>();
|
|
32
35
|
|
|
33
36
|
useEffect(() => {
|
|
34
37
|
if (identity) {
|
|
35
38
|
setTimeout(async () => {
|
|
36
39
|
const space = await client.spaces.create();
|
|
37
|
-
const
|
|
40
|
+
const channel = space.db.add(
|
|
41
|
+
create(ChannelType, {
|
|
42
|
+
queue: refFromDXN(new DXN(DXN.kind.QUEUE, [QueueSubspaceTags.DATA, space.id, ObjectId.random()])),
|
|
43
|
+
}),
|
|
44
|
+
);
|
|
38
45
|
setSpace(space);
|
|
39
|
-
|
|
46
|
+
setChannel(channel);
|
|
40
47
|
});
|
|
41
48
|
}
|
|
42
49
|
}, [identity]);
|
|
43
50
|
|
|
44
|
-
if (!identity || !
|
|
51
|
+
if (!identity || !channel || !space) {
|
|
45
52
|
return null;
|
|
46
53
|
}
|
|
47
54
|
|
|
48
55
|
return (
|
|
49
|
-
<main className='max-is-prose mli-auto bs-dvh overflow-hidden'>
|
|
56
|
+
<main className='max-is-prose mli-auto bs-dvh overflow-hidden'>
|
|
57
|
+
<ChatContainer space={space} dxn={channel.queue.dxn} />
|
|
58
|
+
</main>
|
|
50
59
|
);
|
|
51
60
|
};
|
|
52
61
|
|
|
@@ -58,6 +67,7 @@ const meta: Meta = {
|
|
|
58
67
|
render: () => <Story />,
|
|
59
68
|
decorators: [
|
|
60
69
|
withPluginManager({
|
|
70
|
+
plugins: [IntentPlugin()],
|
|
61
71
|
capabilities: [
|
|
62
72
|
contributes(
|
|
63
73
|
Capabilities.ReactSurface,
|