@droppii-org/chat-sdk 0.6.13 → 0.6.15
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/components/conversation-detail/ConversationDetailInput.d.ts.map +1 -1
- package/dist/components/conversation-detail/ConversationDetailInput.js +6 -2
- package/dist/components/message/footer/index.d.ts.map +1 -1
- package/dist/components/message/footer/index.js +2 -1
- package/dist/components/message/footer/mention/MentionMenu.d.ts +2 -1
- package/dist/components/message/footer/mention/MentionMenu.d.ts.map +1 -1
- package/dist/components/message/footer/mention/MentionMenu.js +2 -2
- package/dist/components/message/footer/mention/useMentionOptions.d.ts +1 -1
- package/dist/components/message/footer/mention/useMentionOptions.d.ts.map +1 -1
- package/dist/components/message/footer/mention/useMentionOptions.js +19 -2
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationDetailInput.d.ts","sourceRoot":"","sources":["../../../src/components/conversation-detail/ConversationDetailInput.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ConversationDetailInput.d.ts","sourceRoot":"","sources":["../../../src/components/conversation-detail/ConversationDetailInput.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAmB/D,MAAM,WAAW,4BAA4B;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,QAAA,MAAM,uBAAuB,GAAI,4EAM9B,4BAA4B,4CAorB9B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -25,6 +25,7 @@ import { useMentionTokens } from "./mention/useMentionTokens";
|
|
|
25
25
|
import BizMentionMenu from "./mention/BizMentionMenu";
|
|
26
26
|
import { getCaretCoordinates, disposeCaretCoordinates, } from "./mention/getCaretCoordinates";
|
|
27
27
|
import { buildMentionPayload } from "./mention/buildMentionPayload";
|
|
28
|
+
import { isBotPeer } from "../../utils/conversation";
|
|
28
29
|
const MAX_LINES = 5;
|
|
29
30
|
const CONTAINER_MIN_HEIGHT = 48;
|
|
30
31
|
const FALLBACK_LINE_HEIGHT = 25.6;
|
|
@@ -94,10 +95,13 @@ const ConversationDetailInput = ({ placeholder, onSendMessage, onInputChange, mo
|
|
|
94
95
|
// the typed "@query" text; a new "@" (different triggerStart) or the
|
|
95
96
|
// trigger closing naturally clears the dismissal automatically.
|
|
96
97
|
const [dismissedTriggerStart, setDismissedTriggerStart] = useState(null);
|
|
97
|
-
|
|
98
|
+
// 1v1 threads have no groupID — mentions are a group-only concept
|
|
99
|
+
// (matches CRM's MentionMenu, which already guards on the same field).
|
|
100
|
+
const mentionTrigger = !(conversationData === null || conversationData === void 0 ? void 0 : conversationData.groupID) ||
|
|
101
|
+
(rawMentionTrigger === null || rawMentionTrigger === void 0 ? void 0 : rawMentionTrigger.triggerStart) === dismissedTriggerStart
|
|
98
102
|
? null
|
|
99
103
|
: rawMentionTrigger;
|
|
100
|
-
const rawMentionOptions = useMentionOptions(conversationData === null || conversationData === void 0 ? void 0 : conversationData.groupID, (_a = mentionTrigger === null || mentionTrigger === void 0 ? void 0 : mentionTrigger.query) !== null && _a !== void 0 ? _a : "");
|
|
104
|
+
const rawMentionOptions = useMentionOptions(conversationData === null || conversationData === void 0 ? void 0 : conversationData.groupID, (_a = mentionTrigger === null || mentionTrigger === void 0 ? void 0 : mentionTrigger.query) !== null && _a !== void 0 ? _a : "", conversationData ? isBotPeer(conversationData) : false);
|
|
101
105
|
const isMentionMenuOpen = mentionTrigger !== null;
|
|
102
106
|
const [selectedMentionIndex, setSelectedMentionIndex] = useState(0);
|
|
103
107
|
const { tokens: mentionTokens, addToken, onValueChange, resetTokens } = useMentionTokens();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/message/footer/index.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAGL,wBAAwB,EAEzB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/message/footer/index.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAGL,wBAAwB,EAEzB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAqB/C,UAAU,kBAAkB;IAC1B,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC;AASD,eAAO,MAAM,oBAAoB,mDAc/B,CAAC;AAEH,eAAO,MAAM,uBAAuB,gCAAyC,CAAC;AAE9E,QAAA,MAAM,qBAAqB,GAAI,4CAG5B,kBAAkB,4CAuYpB,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -33,6 +33,7 @@ import SessionClosedModal from "./SessionClosedModal";
|
|
|
33
33
|
import { useCreateSession, useReopenSession, } from "../../../hooks/session/useReopenOrCreateSession";
|
|
34
34
|
import { emit } from "../../../utils/events";
|
|
35
35
|
import { isGroupConversation } from "../../../utils/imCommon";
|
|
36
|
+
import { isBotPeer } from "../../../utils/conversation";
|
|
36
37
|
const initialConfig = {
|
|
37
38
|
namespace: "ChatInput",
|
|
38
39
|
theme: editorTheme,
|
|
@@ -267,6 +268,6 @@ const MessageFooterProvider = ({ currentSession, openCreateCannedModal, }) => {
|
|
|
267
268
|
setIsMentionMenuOpen,
|
|
268
269
|
}, children: [_jsxs(LexicalComposer, { initialConfig: initialConfig, children: [_jsx(Popover, { open: isOpenCanned, content: _jsx(CannedResponse, { onClose: closeCanned, openCreateCannedModal: onOpenCreateCannedModal, cannedQuery: cannedQuery }), placement: "topLeft", trigger: "click", arrow: false, classNames: {
|
|
269
270
|
body: "mx-1 !p-0",
|
|
270
|
-
}, destroyOnHidden: true, children: _jsxs("div", { "data-cp-name": COMPOSER_AREA_CP_NAME, className: "border-t pb-2 flex flex-col gap-1 bg-white", children: [_jsx(ReplyPreviewBar, {}), listUploadFiles.length > 0 && _jsx(FilePreview, {}), showLinkPreview && previewUrl && (_jsx(LinkInputPreview, { url: previewUrl, onRemove: () => setIsLinkPreviewDismissed(true) })), _jsx(ToolbarPlugin, {}), _jsxs("div", { children: [_jsx(ComposerTabs, { canUseInternal: canUseInternal, hintText: t("canned_response_hint"), isInternal: isInternal, lockToInternal: lockToInternal, setIsInternal: setIsInternal }), _jsx(ComposerEditor, { isInternal: isInternal, placeholderText: placeholderText })] }), _jsx(ActionBar, {})] }) }), _jsx(LinkPlugin, {}), _jsx(ListPlugin, {}), _jsx(ComposerTextSyncPlugin, { onChange: setComposerText }), _jsx(EnterHandler, {}), _jsx(PasteAndDropPlugin, {}), isGroupConversation(conversationData !== null && conversationData !== void 0 ? conversationData : undefined) && (_jsx(MentionMenu, { groupID: conversationData === null || conversationData === void 0 ? void 0 : conversationData.groupID })), isCrm && (_jsx(CannedResponseTriggerPlugin, { onClose: closeCanned, onOpen: onOpenCanned }))] }), _jsx(SessionClosedModal, { open: isSessionClosedModalOpen, loading: isSessionActionLoading, onReopen: handleReopenSession, onCreateNew: handleCreateNewSession, onClose: handleCloseSessionModal })] }));
|
|
271
|
+
}, destroyOnHidden: true, children: _jsxs("div", { "data-cp-name": COMPOSER_AREA_CP_NAME, className: "border-t pb-2 flex flex-col gap-1 bg-white", children: [_jsx(ReplyPreviewBar, {}), listUploadFiles.length > 0 && _jsx(FilePreview, {}), showLinkPreview && previewUrl && (_jsx(LinkInputPreview, { url: previewUrl, onRemove: () => setIsLinkPreviewDismissed(true) })), _jsx(ToolbarPlugin, {}), _jsxs("div", { children: [_jsx(ComposerTabs, { canUseInternal: canUseInternal, hintText: t("canned_response_hint"), isInternal: isInternal, lockToInternal: lockToInternal, setIsInternal: setIsInternal }), _jsx(ComposerEditor, { isInternal: isInternal, placeholderText: placeholderText })] }), _jsx(ActionBar, {})] }) }), _jsx(LinkPlugin, {}), _jsx(ListPlugin, {}), _jsx(ComposerTextSyncPlugin, { onChange: setComposerText }), _jsx(EnterHandler, {}), _jsx(PasteAndDropPlugin, {}), isGroupConversation(conversationData !== null && conversationData !== void 0 ? conversationData : undefined) && (_jsx(MentionMenu, { groupID: conversationData === null || conversationData === void 0 ? void 0 : conversationData.groupID, isBotThread: conversationData ? isBotPeer(conversationData) : false })), isCrm && (_jsx(CannedResponseTriggerPlugin, { onClose: closeCanned, onOpen: onOpenCanned }))] }), _jsx(SessionClosedModal, { open: isSessionClosedModalOpen, loading: isSessionActionLoading, onReopen: handleReopenSession, onCreateNew: handleCreateNewSession, onClose: handleCloseSessionModal })] }));
|
|
271
272
|
};
|
|
272
273
|
export default MessageFooterProvider;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export declare const COMPOSER_AREA_CP_NAME = "MessageFooterComposerArea";
|
|
2
2
|
interface MentionMenuProps {
|
|
3
3
|
groupID: string | undefined;
|
|
4
|
+
isBotThread?: boolean;
|
|
4
5
|
}
|
|
5
|
-
declare const MentionMenu: ({ groupID }: MentionMenuProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
declare const MentionMenu: ({ groupID, isBotThread }: MentionMenuProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
6
7
|
export default MentionMenu;
|
|
7
8
|
//# sourceMappingURL=MentionMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionMenu.d.ts","sourceRoot":"","sources":["../../../../../src/components/message/footer/mention/MentionMenu.tsx"],"names":[],"mappings":"AA8BA,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AAWjE,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"MentionMenu.d.ts","sourceRoot":"","sources":["../../../../../src/components/message/footer/mention/MentionMenu.tsx"],"names":[],"mappings":"AA8BA,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AAWjE,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAG5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,WAAW,GAAI,0BAA0B,gBAAgB,mDAyI9D,CAAC;AA+CF,eAAe,WAAW,CAAC"}
|
|
@@ -33,7 +33,7 @@ class MentionTypeaheadOption extends MenuOption {
|
|
|
33
33
|
this.option = option;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
const MentionMenu = ({ groupID }) => {
|
|
36
|
+
const MentionMenu = ({ groupID, isBotThread }) => {
|
|
37
37
|
const { t } = useTranslation();
|
|
38
38
|
const [editor] = useLexicalComposerContext();
|
|
39
39
|
const [query, setQuery] = useState(null);
|
|
@@ -41,7 +41,7 @@ const MentionMenu = ({ groupID }) => {
|
|
|
41
41
|
const checkForMentionMatch = useBasicTypeaheadTriggerMatch("@", {
|
|
42
42
|
minLength: 0,
|
|
43
43
|
});
|
|
44
|
-
const options = useMentionOptions(groupID, query !== null && query !== void 0 ? query : "");
|
|
44
|
+
const options = useMentionOptions(groupID, query !== null && query !== void 0 ? query : "", isBotThread);
|
|
45
45
|
// Re-evaluated per query change (menu re-opens/re-queries on every "@"),
|
|
46
46
|
// so this stays in sync with mentions added/removed since the last count.
|
|
47
47
|
const mentionedUserIDs = useMemo(() => editor.getEditorState().read(() => $getMentionedUserIDs($getRoot())), [editor, query]);
|
|
@@ -5,5 +5,5 @@ export interface MentionOption {
|
|
|
5
5
|
isAtAll: boolean;
|
|
6
6
|
}
|
|
7
7
|
export declare const ALL_MEMBERS_USER_ID = "__all__";
|
|
8
|
-
export declare const useMentionOptions: (groupID: string | undefined, query: string) => MentionOption[];
|
|
8
|
+
export declare const useMentionOptions: (groupID: string | undefined, query: string, excludeStaff?: boolean) => MentionOption[];
|
|
9
9
|
//# sourceMappingURL=useMentionOptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMentionOptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/message/footer/mention/useMentionOptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMentionOptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/message/footer/mention/useMentionOptions.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAwB7C,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,GAAG,SAAS,EAC3B,OAAO,MAAM,EAIb,sBAAoB,KACnB,aAAa,EA0Cf,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { useMemo } from "react";
|
|
|
2
2
|
import { useTranslation } from "react-i18next";
|
|
3
3
|
import { useGroupMembers } from "../../../../hooks/group/useGroupMembers";
|
|
4
4
|
import useAuthStore from "../../../../store/auth";
|
|
5
|
+
import { AccountType } from "../../../../types/chat";
|
|
5
6
|
export const ALL_MEMBERS_USER_ID = "__all__";
|
|
6
7
|
// Prefix matches rank above mid-string matches, then alphabetical — matches
|
|
7
8
|
// the "closest match first" ranking spec'd for this feature (not just a
|
|
@@ -12,7 +13,22 @@ const matchRank = (displayName, keyword) => {
|
|
|
12
13
|
return 0;
|
|
13
14
|
return 1;
|
|
14
15
|
};
|
|
15
|
-
|
|
16
|
+
// Mirrors useCurrentUserAccountType's parsing of the same ex-encoded field,
|
|
17
|
+
// applied here to an arbitrary group member instead of the current user.
|
|
18
|
+
const isStaffMember = (ex) => {
|
|
19
|
+
var _a, _b, _c;
|
|
20
|
+
try {
|
|
21
|
+
return (((_c = (_b = (_a = JSON.parse(ex || "{}")) === null || _a === void 0 ? void 0 : _a.userInfo) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.accountType) === AccountType.Staff);
|
|
22
|
+
}
|
|
23
|
+
catch (_d) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export const useMentionOptions = (groupID, query,
|
|
28
|
+
// Bot threads shouldn't surface CS/staff accounts as tag targets — they
|
|
29
|
+
// aren't part of the customer-facing conversation. Real member-managed
|
|
30
|
+
// groups have no such restriction (DROPPII-30799).
|
|
31
|
+
excludeStaff = false) => {
|
|
16
32
|
const { t } = useTranslation();
|
|
17
33
|
const { members } = useGroupMembers(groupID);
|
|
18
34
|
const currentUserID = useAuthStore((state) => state.userID);
|
|
@@ -22,6 +38,7 @@ export const useMentionOptions = (groupID, query) => {
|
|
|
22
38
|
// knows who they are — so the current user is filtered out entirely.
|
|
23
39
|
const memberOptions = members
|
|
24
40
|
.filter((member) => member.userID !== currentUserID)
|
|
41
|
+
.filter((member) => !excludeStaff || !isStaffMember(member.ex))
|
|
25
42
|
.map((member) => ({
|
|
26
43
|
userID: member.userID,
|
|
27
44
|
displayName: member.nickname || member.userID,
|
|
@@ -44,5 +61,5 @@ export const useMentionOptions = (groupID, query) => {
|
|
|
44
61
|
};
|
|
45
62
|
const matchesAll = !keyword || allOption.displayName.toLowerCase().includes(keyword);
|
|
46
63
|
return matchesAll ? [allOption, ...memberOptions] : memberOptions;
|
|
47
|
-
}, [members, query, t, currentUserID]);
|
|
64
|
+
}, [members, query, t, currentUserID, excludeStaff]);
|
|
48
65
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,10 @@ export { default as DChatConversationInbox } from "./screens/conversation-inbox"
|
|
|
22
22
|
export type { DChatConversationInboxProps } from "./screens/conversation-inbox";
|
|
23
23
|
export { default as ConversationInboxList } from "./components/conversation-inbox/ConversationInboxList";
|
|
24
24
|
export type { ConversationInboxListProps } from "./components/conversation-inbox/ConversationInboxList";
|
|
25
|
+
export { default as ThreadCard } from "./components/conversation/ThreadCard";
|
|
26
|
+
export type { ThreadCardProps } from "./components/conversation/ThreadCard";
|
|
27
|
+
export { default as ConversationPeerAvatar } from "./components/conversation-inbox/ConversationPeerAvatar";
|
|
28
|
+
export type { ConversationPeerAvatarProps } from "./components/conversation-inbox/ConversationPeerAvatar";
|
|
25
29
|
export { default as ComposeNewMessageModal } from "./components/compose/ComposeNewMessageModal";
|
|
26
30
|
export type { ComposeNewMessageModalProps } from "./components/compose/ComposeNewMessageModal";
|
|
27
31
|
export { default as DChatConversationDetail } from "./screens/conversation-detail";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAExB,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,cAAc,CAAC;AAC7C,cAAc,eAAe,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AACxG,YAAY,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAEvG,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACjF,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAEhF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AACzG,YAAY,EAAE,0BAA0B,EAAE,MAAM,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAExB,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,cAAc,CAAC;AAC7C,cAAc,eAAe,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AACxG,YAAY,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAEvG,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACjF,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAEhF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AACzG,YAAY,EAAE,0BAA0B,EAAE,MAAM,uDAAuD,CAAC;AAMxG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAC7E,YAAY,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAC3G,YAAY,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AAE1G,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAChG,YAAY,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAE/F,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACnF,YAAY,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAElF,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACrE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,0BAA0B,GAC3B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,wBAAwB,GACzB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,YAAY,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,iCAAiC,EAAE,MAAM,mDAAmD,CAAC;AAGtG,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAIvE,OAAO,EACL,QAAQ,IAAI,aAAa,EACzB,QAAQ,IAAI,aAAa,EACzB,WAAW,IAAI,gBAAgB,GAChC,CAAC;AAEF,YAAY,EAAE,uBAAuB,EAAE,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,12 @@ export { default as RichTextEditor } from "./components/rich-text-editor/RichTex
|
|
|
20
20
|
export { default as ShadowStyleBoundary } from "./components/shadow-style-boundary/ShadowStyleBoundary";
|
|
21
21
|
export { default as DChatConversationInbox } from "./screens/conversation-inbox";
|
|
22
22
|
export { default as ConversationInboxList } from "./components/conversation-inbox/ConversationInboxList";
|
|
23
|
+
// ThreadCard and ConversationPeerAvatar are pure presentational components —
|
|
24
|
+
// no dependency on ConversationItem/OpenIM — for hosts building their own
|
|
25
|
+
// conversation list on top of a non-OpenIM data source (e.g. a REST-backed
|
|
26
|
+
// list) while keeping the same row visual style as ConversationInboxList.
|
|
27
|
+
export { default as ThreadCard } from "./components/conversation/ThreadCard";
|
|
28
|
+
export { default as ConversationPeerAvatar } from "./components/conversation-inbox/ConversationPeerAvatar";
|
|
23
29
|
export { default as ComposeNewMessageModal } from "./components/compose/ComposeNewMessageModal";
|
|
24
30
|
export { default as DChatConversationDetail } from "./screens/conversation-detail";
|
|
25
31
|
export { ConversationDetailHeader, ConversationDetailInput, } from "./components/conversation-detail";
|