@droppii-org/chat-sdk 0.1.68 → 0.1.69
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/ConversationBySessionItem.d.ts.map +1 -1
- package/dist/components/conversation/ConversationBySessionItem.js +4 -1
- package/dist/components/conversation-inbox/ConversationInboxItem.d.ts.map +1 -1
- package/dist/components/conversation-inbox/ConversationInboxItem.js +1 -1
- package/dist/components/message/item/TextMessage.d.ts.map +1 -1
- package/dist/components/message/item/TextMessage.js +6 -0
- package/dist/components/message/item/index.d.ts.map +1 -1
- package/dist/components/message/item/index.js +8 -2
- package/dist/components/message/item/renderMessageContent.d.ts.map +1 -1
- package/dist/components/message/item/renderMessageContent.js +0 -3
- package/dist/components/message/reply/ReplyQuoteContent.d.ts.map +1 -1
- package/dist/components/message/reply/ReplyQuoteContent.js +1 -1
- package/dist/context/ChatContext.d.ts +1 -1
- package/dist/context/ChatContext.d.ts.map +1 -1
- package/dist/context/ChatContext.js +1 -2
- package/dist/hooks/message/useMessage.d.ts +0 -1
- package/dist/hooks/message/useMessage.d.ts.map +1 -1
- package/dist/hooks/message/useMessage.js +0 -12
- package/dist/hooks/message/useSendMessage.d.ts +2 -9
- package/dist/hooks/message/useSendMessage.d.ts.map +1 -1
- package/dist/hooks/message/useSendMessage.js +3 -49
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/locales/vi/common.json +0 -2
- package/dist/types/chat.d.ts +2 -5
- package/dist/types/chat.d.ts.map +1 -1
- package/dist/types/chat.js +4 -4
- package/dist/utils/common.d.ts +5 -4
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/common.js +19 -28
- package/package.json +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationBySessionItem.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/ConversationBySessionItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAShD,UAAU,8BAA8B;IACtC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,QAAA,MAAM,yBAAyB,GAAI,iCAGhC,8BAA8B,
|
|
1
|
+
{"version":3,"file":"ConversationBySessionItem.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/ConversationBySessionItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAShD,UAAU,8BAA8B;IACtC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,QAAA,MAAM,yBAAyB,GAAI,iCAGhC,8BAA8B,mDAiEhC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
|
@@ -35,7 +35,10 @@ const ConversationBySessionItem = ({ sessionItem, latestPreview, }) => {
|
|
|
35
35
|
const latestMsgSendTime = (latestPreview === null || latestPreview === void 0 ? void 0 : latestPreview.latestMsgSendTime) || 0;
|
|
36
36
|
if (!conversation)
|
|
37
37
|
return null;
|
|
38
|
-
return (_jsx(ThreadCard, { onClick: () => handleConversationClick(conversation), isSelected: isSelected, unreadCount: conversation.unreadCount, preview: parseLatestMessage(latestMsg, user === null || user === void 0 ? void 0 : user.userID, t
|
|
38
|
+
return (_jsx(ThreadCard, { onClick: () => handleConversationClick(conversation), isSelected: isSelected, unreadCount: conversation.unreadCount, preview: parseLatestMessage(latestMsg, user === null || user === void 0 ? void 0 : user.userID, t, {
|
|
39
|
+
peerType: conversation.peerType,
|
|
40
|
+
showName: conversation.showName,
|
|
41
|
+
}), time: latestMsgSendTime > 0
|
|
39
42
|
? formatTimestamp(latestMsgSendTime, { hasTime: true })
|
|
40
43
|
: undefined, avatar: _jsx(Avatar, { size: 48, src: avatar, children: ((_a = displayName === null || displayName === void 0 ? void 0 : displayName.charAt) === null || _a === void 0 ? void 0 : _a.call(displayName, 0)) || "A" }), title: _jsx("h3", { className: "truncate text-sm font-semibold text-gray-900", children: displayName }) }));
|
|
41
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationInboxItem.d.ts","sourceRoot":"","sources":["../../../src/components/conversation-inbox/ConversationInboxItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAYjE,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC/C;AAQD,QAAA,MAAM,qBAAqB,GAAI,mBAAmB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"ConversationInboxItem.d.ts","sourceRoot":"","sources":["../../../src/components/conversation-inbox/ConversationInboxItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAYjE,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC/C;AAQD,QAAA,MAAM,qBAAqB,GAAI,mBAAmB,0BAA0B,4CA2C3E,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -23,7 +23,7 @@ const ConversationInboxItem = ({ item, onClick }) => {
|
|
|
23
23
|
const displayName = resolveConversationDisplayName(item, t);
|
|
24
24
|
const avatarUrl = useConversationAvatarUrl(item);
|
|
25
25
|
const badgeLabel = resolvePeerBadgeLabel(item.peerType, t);
|
|
26
|
-
const latestMessagePreview = parseLatestMessage(item.latestMsg, currentUserId, tCommon);
|
|
26
|
+
const latestMessagePreview = parseLatestMessage(item.latestMsg, currentUserId, tCommon, { peerType: item.peerType, showName: item.showName });
|
|
27
27
|
const latestMessageTime = formatLatestMessageTime(item.latestMsgSendTime || null);
|
|
28
28
|
const unreadCount = (_a = item.unreadCount) !== null && _a !== void 0 ? _a : 0;
|
|
29
29
|
return (_jsx(ThreadCard, { testId: "conversation-inbox-thread-card", onClick: () => onClick(item), unreadCount: unreadCount, time: latestMessageTime, preview: latestMessagePreview, avatar: _jsx(ConversationPeerAvatar, { peerType: item.peerType, displayName: displayName, avatarUrl: avatarUrl, badgeLabel: badgeLabel }), title: _jsx(ConversationInboxTitle, { peerType: item.peerType, displayName: displayName, hasUnread: unreadCount > 0 }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/message/item/TextMessage.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"TextMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/message/item/TextMessage.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAe,MAAM,yBAAyB,CAAC;AAQnE,UAAU,oBAAoB;IAC5B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,QAAA,MAAM,eAAe,GAAI,OAAO,oBAAoB,mDAqDnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import clsx from "clsx";
|
|
4
|
+
import { MessageType } from "@openim/wasm-client-sdk";
|
|
5
|
+
import useAuthStore from "../../../store/auth";
|
|
4
6
|
import { htmlHasFormatting, sanitizeHtml, stripHtml } from "../../../utils/common";
|
|
5
7
|
import { extractLinkUrls } from "../../../utils/link";
|
|
6
8
|
import LinkText from "./LinkText";
|
|
@@ -8,6 +10,7 @@ import { MESSAGE_TEXT_CLASS } from "./textStyle";
|
|
|
8
10
|
const TextMessageItem = (props) => {
|
|
9
11
|
var _a, _b, _c, _d;
|
|
10
12
|
const { message } = props;
|
|
13
|
+
const isCrm = useAuthStore((state) => state.isCrm);
|
|
11
14
|
let extendMessageInfo = null;
|
|
12
15
|
try {
|
|
13
16
|
extendMessageInfo = JSON.parse((message === null || message === void 0 ? void 0 : message.ex) || "{}");
|
|
@@ -16,6 +19,9 @@ const TextMessageItem = (props) => {
|
|
|
16
19
|
extendMessageInfo = {};
|
|
17
20
|
console.error("Failed to parse extendMessageInfo", error);
|
|
18
21
|
}
|
|
22
|
+
if ((message === null || message === void 0 ? void 0 : message.contentType) === MessageType.CustomMessage && !isCrm) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
19
25
|
const richHtmlContent = ((_b = (_a = extendMessageInfo === null || extendMessageInfo === void 0 ? void 0 : extendMessageInfo.messageInfo) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.content) || "";
|
|
20
26
|
if (richHtmlContent && htmlHasFormatting(richHtmlContent)) {
|
|
21
27
|
const sanitizedContent = sanitizeHtml(richHtmlContent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/message/item/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,IAAI,eAAe,EAG/B,MAAM,yBAAyB,CAAC;AAiCjC,UAAU,gBAAgB;IACxB,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACpD,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IAClD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACpD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAeD,QAAA,MAAM,WAAW,GAAI,qMAalB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/message/item/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,IAAI,eAAe,EAG/B,MAAM,yBAAyB,CAAC;AAiCjC,UAAU,gBAAgB;IACxB,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACpD,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IAClD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACpD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAeD,QAAA,MAAM,WAAW,GAAI,qMAalB,gBAAgB,mDAuRlB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { Dropdown, message as toastMessage } from "antd";
|
|
|
6
6
|
import { MessageStatus, MessageType, } from "@openim/wasm-client-sdk";
|
|
7
7
|
import MessageBubble from "./MessageBubble";
|
|
8
8
|
import { renderBubbleContent } from "./renderMessageContent";
|
|
9
|
-
import { getVisibleNeighbor,
|
|
9
|
+
import { getVisibleNeighbor, visibleTypeMessage, } from "../../../hooks/message/useMessage";
|
|
10
10
|
import { MSG_ITEM_CONTENT_PREFIX, MSG_ITEM_PREFIX } from "../../../constants";
|
|
11
11
|
import { formatTimestamp } from "../../../utils/common";
|
|
12
12
|
import useAuthStore from "../../../store/auth";
|
|
@@ -127,7 +127,13 @@ const MessageItem = ({ message, allMessages, isGroupChat = false, forceHideTip =
|
|
|
127
127
|
const showAvatar = showPeerInfo && !isMine && !nextSameUser;
|
|
128
128
|
const showSenderName = showPeerInfo && !isMine && !prevSameUser;
|
|
129
129
|
const showTip = forceHideTip ? false : !nextSameUser;
|
|
130
|
-
if (
|
|
130
|
+
if (!isCrm && isInternalMessage) {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
if ((!isCrm &&
|
|
134
|
+
(MessageType.CustomMessage === (message === null || message === void 0 ? void 0 : message.contentType) ||
|
|
135
|
+
isSystemLogMessage)) ||
|
|
136
|
+
!visibleTypeMessage.includes(message === null || message === void 0 ? void 0 : message.contentType)) {
|
|
131
137
|
return null;
|
|
132
138
|
}
|
|
133
139
|
const messageContainerProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderMessageContent.d.ts","sourceRoot":"","sources":["../../../../src/components/message/item/renderMessageContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,eAAe,EAAe,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"renderMessageContent.d.ts","sourceRoot":"","sources":["../../../../src/components/message/item/renderMessageContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,eAAe,EAAe,MAAM,yBAAyB,CAAC;AAWtF,eAAO,MAAM,mBAAmB,GAAI,SAAS,eAAe,4CAuB3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,eAAe,EACxB,sBAAsB,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,4CAwBpD,CAAC"}
|
|
@@ -9,7 +9,6 @@ import UrlTextMessageItem from "./UrlTextMessage";
|
|
|
9
9
|
import RevokeMessageItem from "./RevokeMessage";
|
|
10
10
|
import QuoteMessageItem from "./QuoteMessage";
|
|
11
11
|
import SystemLogMessageItem from "./SystemLogMessage";
|
|
12
|
-
import CustomMessageItem from "./CustomMessage";
|
|
13
12
|
export const renderMessageByType = (message) => {
|
|
14
13
|
switch (message === null || message === void 0 ? void 0 : message.contentType) {
|
|
15
14
|
case MessageType.TextMessage:
|
|
@@ -29,8 +28,6 @@ export const renderMessageByType = (message) => {
|
|
|
29
28
|
return _jsx(SystemLogMessageItem, { message: message });
|
|
30
29
|
case MessageType.RevokeMessage:
|
|
31
30
|
return _jsx(RevokeMessageItem, {});
|
|
32
|
-
case MessageType.CustomMessage:
|
|
33
|
-
return _jsx(CustomMessageItem, { message: message });
|
|
34
31
|
default:
|
|
35
32
|
return _jsx(TextMessageItem, { message: message });
|
|
36
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReplyQuoteContent.d.ts","sourceRoot":"","sources":["../../../../src/components/message/reply/ReplyQuoteContent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AASnE,eAAO,MAAM,oBAAoB,GAAI,aAAa,WAAW,YACb,CAAC;AAEjD,UAAU,sBAAsB;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,iBAAiB,GAAI,qBAG/B,sBAAsB,
|
|
1
|
+
{"version":3,"file":"ReplyQuoteContent.d.ts","sourceRoot":"","sources":["../../../../src/components/message/reply/ReplyQuoteContent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AASnE,eAAO,MAAM,oBAAoB,GAAI,aAAa,WAAW,YACb,CAAC;AAEjD,UAAU,sBAAsB;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,iBAAiB,GAAI,qBAG/B,sBAAsB,4CAsBxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -12,6 +12,6 @@ export const ReplyQuoteContent = ({ message, title = "", }) => {
|
|
|
12
12
|
var _a, _b;
|
|
13
13
|
const { t } = useTranslation();
|
|
14
14
|
const hasMedia = hasReplyMediaPreview(message.contentType);
|
|
15
|
-
return (_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-0.5 pr-2 self-stretch", children: [_jsx("div", { className: "w-[3px] shrink-0 self-stretch rounded bg-gray-cool-200" }), hasMedia && _jsx(ReplyPreviewMedia, { message: message }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col justify-center py-1 pl-2", children: [_jsx("p", { className: "truncate text-[14px] font-medium leading-[160%] text-gray-900", children: title }), _jsx("p", { className: "truncate text-[13px] leading-[160%] text-gray-400", children: generateContentBasedOnMessageType(message.contentType, ((_a = message.textElem) === null || _a === void 0 ? void 0 : _a.content) || ((_b = message.quoteElem) === null || _b === void 0 ? void 0 : _b.text), t
|
|
15
|
+
return (_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-0.5 pr-2 self-stretch", children: [_jsx("div", { className: "w-[3px] shrink-0 self-stretch rounded bg-gray-cool-200" }), hasMedia && _jsx(ReplyPreviewMedia, { message: message }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col justify-center py-1 pl-2", children: [_jsx("p", { className: "truncate text-[14px] font-medium leading-[160%] text-gray-900", children: title }), _jsx("p", { className: "truncate text-[13px] leading-[160%] text-gray-400", children: generateContentBasedOnMessageType(message.contentType, ((_a = message.textElem) === null || _a === void 0 ? void 0 : _a.content) || ((_b = message.quoteElem) === null || _b === void 0 ? void 0 : _b.text), t) })] })] }));
|
|
16
16
|
};
|
|
17
17
|
export default ReplyQuoteContent;
|
|
@@ -2,5 +2,5 @@ import "../styles/global.css";
|
|
|
2
2
|
import { ChatContextType, ChatProviderProps } from "../types/chat";
|
|
3
3
|
export declare const ChatContext: import("react").Context<ChatContextType>;
|
|
4
4
|
export declare const useChatContext: () => ChatContextType;
|
|
5
|
-
export declare const ChatProvider: ({ children, config
|
|
5
|
+
export declare const ChatProvider: ({ children, config }: ChatProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
//# sourceMappingURL=ChatContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatContext.d.ts","sourceRoot":"","sources":["../../src/context/ChatContext.tsx"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EACL,eAAe,EACf,iBAAiB,EAGlB,MAAM,cAAc,CAAC;AAStB,eAAO,MAAM,WAAW,0CAOtB,CAAC;AAEH,eAAO,MAAM,cAAc,uBAAgC,CAAC;AAE5D,eAAO,MAAM,YAAY,GAAI,
|
|
1
|
+
{"version":3,"file":"ChatContext.d.ts","sourceRoot":"","sources":["../../src/context/ChatContext.tsx"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EACL,eAAe,EACf,iBAAiB,EAGlB,MAAM,cAAc,CAAC;AAStB,eAAO,MAAM,WAAW,0CAOtB,CAAC;AAEH,eAAO,MAAM,cAAc,uBAAgC,CAAC;AAE5D,eAAO,MAAM,YAAY,GAAI,sBAAsB,iBAAiB,4CAqGnE,CAAC"}
|
|
@@ -18,7 +18,7 @@ export const ChatContext = createContext({
|
|
|
18
18
|
updateSyncStatus: () => { },
|
|
19
19
|
});
|
|
20
20
|
export const useChatContext = () => useContext(ChatContext);
|
|
21
|
-
export const ChatProvider = ({ children, config
|
|
21
|
+
export const ChatProvider = ({ children, config }) => {
|
|
22
22
|
const [connectStatus, setConnectStatus] = useState(ConnectStatus.Disconnected);
|
|
23
23
|
const [syncStatus, setSyncStatus] = useState(SyncStatus.Success);
|
|
24
24
|
const [user, setUser] = useState(null);
|
|
@@ -91,6 +91,5 @@ export const ChatProvider = ({ children, config, renderCustomMessage, }) => {
|
|
|
91
91
|
getSelfUserInfo,
|
|
92
92
|
updateConnectStatus,
|
|
93
93
|
updateSyncStatus,
|
|
94
|
-
renderCustomMessage,
|
|
95
94
|
}, children: _jsx(ConfigProvider, { getPopupContainer: (triggerNode) => document.body, children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(MainLayout, { children: children }) }) }) }));
|
|
96
95
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { MessageItem, MessageType } from "@openim/wasm-client-sdk";
|
|
2
2
|
export declare const visibleTypeMessage: MessageType[];
|
|
3
|
-
export declare const isMessageHiddenForViewer: (message: MessageItem, isCrm: boolean) => boolean;
|
|
4
3
|
export declare const useMessage: (conversationId?: string, searchClientMsgID?: string, enabled?: boolean, useAppHistory?: boolean) => {
|
|
5
4
|
loadState: {
|
|
6
5
|
initLoading: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMessage.d.ts","sourceRoot":"","sources":["../../../src/hooks/message/useMessage.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EACX,WAAW,EAEZ,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"useMessage.d.ts","sourceRoot":"","sources":["../../../src/hooks/message/useMessage.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EACX,WAAW,EAEZ,MAAM,yBAAyB,CAAC;AAUjC,eAAO,MAAM,kBAAkB,eAgB9B,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,iBAAiB,MAAM,EACvB,oBAAoB,MAAM,EAC1B,iBAAc,EACd,uBAAqB;;;;;qBAeA,WAAW,EAAE;;;;;;qBAAb,WAAW,EAAE;;;;;;CAiSnC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,WAAW,SACpB,CAAC;AAChC,eAAO,MAAM,gBAAgB,GAAI,SAAS,WAAW,SACpB,CAAC;AAClC,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,SACf,CAAC;AAEtC,eAAO,MAAM,kBAAkB,GAC7B,aAAa,WAAW,EAAE,EAC1B,SAAS,WAAW,EACpB,WAAW,MAAM,GAAG,MAAM,KACzB,WAAW,GAAG,SAkBhB,CAAC"}
|
|
@@ -8,8 +8,6 @@ import isEmpty from "lodash/isEmpty";
|
|
|
8
8
|
import { useChatContext } from "../../context/ChatContext";
|
|
9
9
|
import useAuthStore from "../../store/auth";
|
|
10
10
|
import { ConnectStatus, SyncStatus } from "../../types/chat";
|
|
11
|
-
import { isSystemLogMessageType } from "../../utils/messageLog";
|
|
12
|
-
import { isRenderableCustomMessage } from "../../utils/customMessage";
|
|
13
11
|
export const visibleTypeMessage = [
|
|
14
12
|
MessageType.TextMessage,
|
|
15
13
|
MessageType.PictureMessage,
|
|
@@ -27,16 +25,6 @@ export const visibleTypeMessage = [
|
|
|
27
25
|
MessageType.RevokeMessage,
|
|
28
26
|
MessageType.LogTextMessage,
|
|
29
27
|
];
|
|
30
|
-
export const isMessageHiddenForViewer = (message, isCrm) => {
|
|
31
|
-
if (!visibleTypeMessage.includes(message === null || message === void 0 ? void 0 : message.contentType))
|
|
32
|
-
return true;
|
|
33
|
-
if (isCrm)
|
|
34
|
-
return false;
|
|
35
|
-
const isCustomMessage = MessageType.CustomMessage === (message === null || message === void 0 ? void 0 : message.contentType);
|
|
36
|
-
return (Boolean(message === null || message === void 0 ? void 0 : message.isInternal) ||
|
|
37
|
-
isSystemLogMessageType(message === null || message === void 0 ? void 0 : message.contentType) ||
|
|
38
|
-
(isCustomMessage && !isRenderableCustomMessage(message)));
|
|
39
|
-
};
|
|
40
28
|
export const useMessage = (conversationId, searchClientMsgID, enabled = true, useAppHistory = false) => {
|
|
41
29
|
const { connectStatus, syncStatus } = useChatContext();
|
|
42
30
|
const userID = useAuthStore((state) => state.userID);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type CustomMessagePayload } from "../../types/customMessage";
|
|
1
|
+
import { MergerMsgParams, MessageItem } from "@openim/wasm-client-sdk";
|
|
3
2
|
import { BotFlowMeta, ExtendMessageInfo, FileMsgParamsByFile, ImageMsgParamsByFile, UrlMetadataInfo, VideoMsgParamsByFile } from "../../types/chat";
|
|
4
3
|
import { UploadFile } from "antd";
|
|
5
4
|
import { ISessionResponse } from "../../types/dto";
|
|
@@ -13,8 +12,6 @@ export declare const createMergerMessage: (mergerMsgParams: MergerMsgParams) =>
|
|
|
13
12
|
export declare const createVideoMessageByFile: (file: VideoMsgParamsByFile) => Promise<MessageItem | null>;
|
|
14
13
|
export declare const createFileMessageByFile: (file: FileMsgParamsByFile) => Promise<MessageItem | null>;
|
|
15
14
|
export declare const createUrlTextMessage: (text: string, urls: string[]) => Promise<MessageItem | null>;
|
|
16
|
-
export declare const createCustomMessageByParams: (params: CustomMsgParams) => Promise<MessageItem | null>;
|
|
17
|
-
export declare const createCustomMessage: (payload: CustomMessagePayload) => Promise<MessageItem | null>;
|
|
18
15
|
export declare const createQuoteMessage: (text: string, quotedMessage: MessageItem) => Promise<MessageItem | null>;
|
|
19
16
|
export type SendMessageScrollEvent = "CHAT_LIST_SCROLL_TO_BOTTOM" | "CONVERSATION_CHAT_SCROLL_TO_BOTTOM_IF_AT_BOTTOM";
|
|
20
17
|
export interface OfflinePushMeta {
|
|
@@ -29,7 +26,7 @@ export interface UseSendMessageOptions {
|
|
|
29
26
|
}) => OfflinePushMeta;
|
|
30
27
|
}
|
|
31
28
|
export declare const useSendMessage: (options?: UseSendMessageOptions) => {
|
|
32
|
-
sendMergeMessage: ({ richText, plainText, files, currentSession, isInternal, urlMetadata, flow,
|
|
29
|
+
sendMergeMessage: ({ richText, plainText, files, currentSession, isInternal, urlMetadata, flow, }: {
|
|
33
30
|
richText: string;
|
|
34
31
|
plainText: string;
|
|
35
32
|
files?: UploadFile[];
|
|
@@ -37,10 +34,6 @@ export declare const useSendMessage: (options?: UseSendMessageOptions) => {
|
|
|
37
34
|
isInternal: boolean;
|
|
38
35
|
urlMetadata?: UrlMetadataInfo;
|
|
39
36
|
flow?: BotFlowMeta;
|
|
40
|
-
customMessage?: CustomMessagePayload;
|
|
41
|
-
}) => Promise<boolean>;
|
|
42
|
-
sendCustomMessage: (payload: CustomMessagePayload, sendOptions?: {
|
|
43
|
-
currentSession?: ISessionResponse;
|
|
44
37
|
}) => Promise<boolean>;
|
|
45
38
|
resendMessage: (failedMessage: MessageItem) => Promise<void>;
|
|
46
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSendMessage.d.ts","sourceRoot":"","sources":["../../../src/hooks/message/useSendMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"useSendMessage.d.ts","sourceRoot":"","sources":["../../../src/hooks/message/useSendMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,WAAW,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAWtB,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAQlC,OAAO,EAAgB,gBAAgB,EAAyB,MAAM,aAAa,CAAC;AAkBpF,eAAO,MAAM,iBAAiB,GAAI,SAAS;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,YAE0C,CAAC;AAE5C,eAAO,MAAM,iBAAiB,GAAU,MAAM,MAAM,gCAanD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAU,MAAM,oBAAoB,gCAaxE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,iBAAiB,eAAe,gCAazE,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAU,MAAM,oBAAoB,gCAaxE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAU,MAAM,mBAAmB,gCAatE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,gCActE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,eAAe,WAAW,gCAc3B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B,4BAA4B,GAC5B,iDAAiD,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,eAAe,CAAC;CACxE;AAED,eAAO,MAAM,cAAc,GAAI,UAAU,qBAAqB;uGAiPvD;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;QACrB,cAAc,CAAC,EAAE,gBAAgB,CAAC;QAClC,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,eAAe,CAAC;QAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;KACpB,KAAG,OAAO,CAAC,OAAO,CAAC;mCAxHE,WAAW;CA8SpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,kDAKvC;IACD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,sBA8BA,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { MessageStatus, MessageType, } from "@openim/wasm-client-sdk";
|
|
2
|
-
import { CustomMessageType, } from "../../types/customMessage";
|
|
3
2
|
import { DChatSDK } from "../../constants/sdk";
|
|
4
3
|
import { v4 as uuidv4 } from "uuid";
|
|
5
4
|
import { useCallback } from "react";
|
|
@@ -90,24 +89,6 @@ export const createUrlTextMessage = async (text, urls) => {
|
|
|
90
89
|
});
|
|
91
90
|
return textMessage;
|
|
92
91
|
};
|
|
93
|
-
export const createCustomMessageByParams = async (params) => {
|
|
94
|
-
let customMessage = await DChatSDK.createCustomMessage(params, new Date().getTime().toString())
|
|
95
|
-
.then(({ data }) => {
|
|
96
|
-
return data;
|
|
97
|
-
})
|
|
98
|
-
.catch(({ errCode, errMsg }) => {
|
|
99
|
-
console.error("createCustomMessage", errCode, errMsg);
|
|
100
|
-
return null;
|
|
101
|
-
});
|
|
102
|
-
return customMessage;
|
|
103
|
-
};
|
|
104
|
-
export const createCustomMessage = async (payload) => {
|
|
105
|
-
return createCustomMessageByParams({
|
|
106
|
-
data: JSON.stringify(payload.data),
|
|
107
|
-
extension: payload.type,
|
|
108
|
-
description: payload.type === CustomMessageType.Order ? payload.data.orderCode : "",
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
92
|
export const createQuoteMessage = async (text, quotedMessage) => {
|
|
112
93
|
let textMessage = await DChatSDK.createQuoteMessage({
|
|
113
94
|
text,
|
|
@@ -159,7 +140,7 @@ export const useSendMessage = (options) => {
|
|
|
159
140
|
}, [queryClient]);
|
|
160
141
|
const dispatchMessage = useCallback(async (message, currentSession) => {
|
|
161
142
|
var _a, _b, _c, _d;
|
|
162
|
-
const desc = generateContentBasedOnMessageType(message.contentType, ((_a = message === null || message === void 0 ? void 0 : message.textElem) === null || _a === void 0 ? void 0 : _a.content) || ""
|
|
143
|
+
const desc = generateContentBasedOnMessageType(message.contentType, ((_a = message === null || message === void 0 ? void 0 : message.textElem) === null || _a === void 0 ? void 0 : _a.content) || "") || t("new_message");
|
|
163
144
|
const pushMeta = (_c = (_b = options === null || options === void 0 ? void 0 : options.resolveOfflinePushMeta) === null || _b === void 0 ? void 0 : _b.call(options, { desc })) !== null && _c !== void 0 ? _c : {
|
|
164
145
|
title: (conversationData === null || conversationData === void 0 ? void 0 : conversationData.showName) || "Droppii Chat",
|
|
165
146
|
icon: (conversationData === null || conversationData === void 0 ? void 0 : conversationData.faceURL) || "",
|
|
@@ -216,16 +197,7 @@ export const useSendMessage = (options) => {
|
|
|
216
197
|
if (!storedFiles) {
|
|
217
198
|
let newTextPayload = null;
|
|
218
199
|
const textContent = ((_a = failedMessage.textElem) === null || _a === void 0 ? void 0 : _a.content) || failedMessage.content || "";
|
|
219
|
-
if (failedMessage.contentType === MessageType.
|
|
220
|
-
newTextPayload = failedMessage.customElem
|
|
221
|
-
? await createCustomMessageByParams({
|
|
222
|
-
data: failedMessage.customElem.data,
|
|
223
|
-
extension: failedMessage.customElem.extension,
|
|
224
|
-
description: failedMessage.customElem.description,
|
|
225
|
-
})
|
|
226
|
-
: null;
|
|
227
|
-
}
|
|
228
|
-
else if (failedMessage.contentType === MessageType.UrlTextMessage &&
|
|
200
|
+
if (failedMessage.contentType === MessageType.UrlTextMessage &&
|
|
229
201
|
failedMessage.urlTextElem) {
|
|
230
202
|
newTextPayload = await createUrlTextMessage(textContent, failedMessage.urlTextElem.urls);
|
|
231
203
|
}
|
|
@@ -300,18 +272,7 @@ export const useSendMessage = (options) => {
|
|
|
300
272
|
removeOneMessage(failedMessage.clientMsgID);
|
|
301
273
|
await sendMessage(Object.assign(Object.assign({}, newPayload), { ex: failedMessage.ex }));
|
|
302
274
|
}, [sendMessage]);
|
|
303
|
-
const
|
|
304
|
-
if (!conversationData || (!recvID && !groupID))
|
|
305
|
-
return false;
|
|
306
|
-
const customMessage = await createCustomMessage(payload);
|
|
307
|
-
if (!customMessage)
|
|
308
|
-
return false;
|
|
309
|
-
const extendMessageInfo = generateExtendMessageInfo({
|
|
310
|
-
currentSession: sendOptions === null || sendOptions === void 0 ? void 0 : sendOptions.currentSession,
|
|
311
|
-
});
|
|
312
|
-
return sendMessage(Object.assign(Object.assign({}, customMessage), { ex: JSON.stringify(extendMessageInfo) || "{}", isInternal: false }), sendOptions === null || sendOptions === void 0 ? void 0 : sendOptions.currentSession);
|
|
313
|
-
}, [conversationData, recvID, groupID, sendMessage]);
|
|
314
|
-
const sendMergeMessage = useCallback(async ({ richText, plainText, files = [], currentSession, isInternal, urlMetadata, flow, customMessage, }) => {
|
|
275
|
+
const sendMergeMessage = useCallback(async ({ richText, plainText, files = [], currentSession, isInternal, urlMetadata, flow, }) => {
|
|
315
276
|
if (!conversationData || (!recvID && !groupID))
|
|
316
277
|
return false;
|
|
317
278
|
const messageList = [];
|
|
@@ -451,12 +412,6 @@ export const useSendMessage = (options) => {
|
|
|
451
412
|
return false;
|
|
452
413
|
messageList.push(textMessage);
|
|
453
414
|
}
|
|
454
|
-
if (customMessage) {
|
|
455
|
-
const customMessageItem = await createCustomMessage(customMessage);
|
|
456
|
-
if (!customMessageItem)
|
|
457
|
-
return false;
|
|
458
|
-
messageList.push(customMessageItem);
|
|
459
|
-
}
|
|
460
415
|
for (const message of messageList) {
|
|
461
416
|
const isTextLikeMessage = (message === null || message === void 0 ? void 0 : message.contentType) === MessageType.TextMessage ||
|
|
462
417
|
(message === null || message === void 0 ? void 0 : message.contentType) === MessageType.UrlTextMessage ||
|
|
@@ -483,7 +438,6 @@ export const useSendMessage = (options) => {
|
|
|
483
438
|
]);
|
|
484
439
|
return {
|
|
485
440
|
sendMergeMessage,
|
|
486
|
-
sendCustomMessage,
|
|
487
441
|
resendMessage,
|
|
488
442
|
};
|
|
489
443
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -21,12 +21,7 @@ export { ConversationDetailHeader, ConversationDetailInput, } from "./components
|
|
|
21
21
|
export type { ConversationDetailHeaderProps, ConversationDetailInputProps, } from "./components/conversation-detail";
|
|
22
22
|
export { ChatCategory, ChatType, PeerType, } from "./types/conversation";
|
|
23
23
|
export type { ConversationListItem, CreateConversationData, ConversationMember, } from "./types/conversation";
|
|
24
|
-
export { CustomMessageType } from "./types/customMessage";
|
|
25
|
-
export type { CustomElemOrderData, CustomMessagePayload, RenderCustomMessage, RenderCustomMessageArgs, } from "./types/customMessage";
|
|
26
|
-
export { parseCustomMessagePayload, isRenderableCustomMessage, } from "./utils/customMessage";
|
|
27
24
|
export { useDChatAuth } from "./hooks/user/useAuth";
|
|
28
|
-
export { useSendMessage } from "./hooks/message/useSendMessage";
|
|
29
|
-
export type { UseSendMessageOptions } from "./hooks/message/useSendMessage";
|
|
30
25
|
export { useUpdateFcmToken } from "./hooks/user/useUpdateFcmToken";
|
|
31
26
|
export { useConversationList } from "./hooks/conversation/useConversationList";
|
|
32
27
|
export { useCreateConversation } from "./hooks/conversation/useCreateConversation";
|
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,yBAAyB,CAAC;AAC1E,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;AAGrE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAEzF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACjF,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAEhF,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,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,
|
|
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,yBAAyB,CAAC;AAC1E,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;AAGrE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAEzF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACjF,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAEhF,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,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,YAAY,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAG1F,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;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -19,12 +19,8 @@ export { default as DChatConversationInbox } from "./screens/conversation-inbox"
|
|
|
19
19
|
export { default as DChatConversationDetail } from "./screens/conversation-detail";
|
|
20
20
|
export { ConversationDetailHeader, ConversationDetailInput, } from "./components/conversation-detail";
|
|
21
21
|
export { ChatCategory, ChatType, PeerType, } from "./types/conversation";
|
|
22
|
-
//Custom message
|
|
23
|
-
export { CustomMessageType } from "./types/customMessage";
|
|
24
|
-
export { parseCustomMessagePayload, isRenderableCustomMessage, } from "./utils/customMessage";
|
|
25
22
|
//Hooks
|
|
26
23
|
export { useDChatAuth } from "./hooks/user/useAuth";
|
|
27
|
-
export { useSendMessage } from "./hooks/message/useSendMessage";
|
|
28
24
|
export { useUpdateFcmToken } from "./hooks/user/useUpdateFcmToken";
|
|
29
25
|
export { useConversationList } from "./hooks/conversation/useConversationList";
|
|
30
26
|
export { useCreateConversation } from "./hooks/conversation/useCreateConversation";
|
|
@@ -103,8 +103,6 @@
|
|
|
103
103
|
"msg_type_file": "[Tập tin]",
|
|
104
104
|
"msg_type_video": "[Video]",
|
|
105
105
|
"msg_type_unsupported": "Tin nhắn không khả dụng",
|
|
106
|
-
"msg_type_order": "[Đơn hàng] {{orderCode}}",
|
|
107
|
-
"invalid_message": "Tin nhắn không hợp lệ",
|
|
108
106
|
"session_started": "Phiên chat đã bắt đầu",
|
|
109
107
|
"session_ended": "Phiên chat đã kết thúc",
|
|
110
108
|
"new_message": "Bạn có tin nhắn mới",
|
package/dist/types/chat.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { FileMsgParamsByURL, ImageMsgParamsByURL, MessageType, Platform, SelfUserInfo, VideoMsgParamsByURL } from "@openim/wasm-client-sdk";
|
|
2
2
|
export type DChatPlatform = Platform;
|
|
3
3
|
import { UploadFile } from "antd";
|
|
4
|
-
import type { RenderCustomMessage } from "./customMessage";
|
|
5
4
|
export declare enum DChatApplicationType {
|
|
6
5
|
OBEFE = "OBEFE",
|
|
7
6
|
DROPPII = "DROPPII"
|
|
@@ -23,10 +22,10 @@ export declare enum CustomType {
|
|
|
23
22
|
CallingCancel = 203,
|
|
24
23
|
CallingHungup = 204
|
|
25
24
|
}
|
|
26
|
-
export declare enum
|
|
25
|
+
export declare enum CustomMessageType {
|
|
27
26
|
URL = 160
|
|
28
27
|
}
|
|
29
|
-
export type DChatMessageType =
|
|
28
|
+
export type DChatMessageType = CustomMessageType | MessageType;
|
|
30
29
|
export declare enum AccountType {
|
|
31
30
|
Collaborator = "Collaborator",
|
|
32
31
|
NewAgent = "NewAgent",
|
|
@@ -42,12 +41,10 @@ export interface ChatContextType {
|
|
|
42
41
|
getSelfUserInfo: () => void;
|
|
43
42
|
updateConnectStatus: (status: ConnectStatus) => void;
|
|
44
43
|
updateSyncStatus: (status: SyncStatus) => void;
|
|
45
|
-
renderCustomMessage?: RenderCustomMessage;
|
|
46
44
|
}
|
|
47
45
|
export interface ChatProviderProps {
|
|
48
46
|
children: React.ReactNode;
|
|
49
47
|
config: DChatInitAndLoginConfig | null;
|
|
50
|
-
renderCustomMessage?: RenderCustomMessage;
|
|
51
48
|
}
|
|
52
49
|
export interface UrlMetadataInfo {
|
|
53
50
|
title?: string;
|
package/dist/types/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/types/chat.js
CHANGED
|
@@ -23,10 +23,10 @@ export var CustomType;
|
|
|
23
23
|
CustomType[CustomType["CallingCancel"] = 203] = "CallingCancel";
|
|
24
24
|
CustomType[CustomType["CallingHungup"] = 204] = "CallingHungup";
|
|
25
25
|
})(CustomType || (CustomType = {}));
|
|
26
|
-
export var
|
|
27
|
-
(function (
|
|
28
|
-
|
|
29
|
-
})(
|
|
26
|
+
export var CustomMessageType;
|
|
27
|
+
(function (CustomMessageType) {
|
|
28
|
+
CustomMessageType[CustomMessageType["URL"] = 160] = "URL";
|
|
29
|
+
})(CustomMessageType || (CustomMessageType = {}));
|
|
30
30
|
export var AccountType;
|
|
31
31
|
(function (AccountType) {
|
|
32
32
|
AccountType["Collaborator"] = "Collaborator";
|
package/dist/utils/common.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { MessageType } from "@openim/wasm-client-sdk";
|
|
2
2
|
import { TFunction } from "i18next";
|
|
3
3
|
import { UrlMetadataInfo } from "../types/chat";
|
|
4
|
+
import { PeerType } from "../types/conversation";
|
|
4
5
|
export declare const parseUrlMetadata: (ex?: string) => UrlMetadataInfo | undefined;
|
|
5
6
|
export declare function formatDuration(seconds: number): string;
|
|
6
7
|
export declare function renderFileSize(bytes: number): string;
|
|
7
|
-
export declare const generateContentBasedOnMessageType: (contentType: MessageType, plainText?: string, t?: TFunction
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
export declare const generateContentBasedOnMessageType: (contentType: MessageType, plainText?: string, t?: TFunction) => string;
|
|
9
|
+
export declare const parseLatestMessage: (latestMsg: string, currentUserId?: string, t?: TFunction, conversation?: {
|
|
10
|
+
peerType?: PeerType | string;
|
|
11
|
+
showName?: string;
|
|
10
12
|
}) => string;
|
|
11
|
-
export declare const parseLatestMessage: (latestMsg: string, currentUserId?: string, t?: TFunction) => string;
|
|
12
13
|
export declare const highlightSearch: (text: string, keyword: string, maxLength?: number) => string;
|
|
13
14
|
interface FormatOptions {
|
|
14
15
|
hasTime?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/utils/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAqB,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/utils/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAqB,eAAe,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,eAAe,GAAG,SAQhE,CAAC;AAwBF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAapD;AAED,eAAO,MAAM,iCAAiC,GAC5C,aAAa,WAAW,EACxB,YAAY,MAAM,EAClB,IAAI,SAAS,WAsBd,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,WAAW,MAAM,EACjB,gBAAgB,MAAM,EACtB,IAAI,SAAS,EACb,eAAe;IAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,WAkEnE,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,kBAAc,WA2Cf,CAAC;AAEF,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAqBR;AAED,eAAO,MAAM,QAAQ,QAAkD,CAAC;AAExE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAqC3D;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,IAOrD,CAAC;AAKF,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,OACf,CAAC;AAEnC,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAO9B,CAAC;AAEZ;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgEjD"}
|
package/dist/utils/common.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MessageType } from "@openim/wasm-client-sdk";
|
|
2
2
|
import dayjs from "dayjs";
|
|
3
3
|
import DOMPurify from "dompurify";
|
|
4
|
-
import {
|
|
4
|
+
import { PeerType } from "../types/conversation";
|
|
5
5
|
import { getSystemLogMessageText } from "./messageLog";
|
|
6
6
|
export const parseUrlMetadata = (ex) => {
|
|
7
7
|
if (!ex)
|
|
@@ -14,17 +14,21 @@ export const parseUrlMetadata = (ex) => {
|
|
|
14
14
|
return undefined;
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
|
-
const getSenderLabelForLatestPreview = (msgData, currentUserId, t) => {
|
|
18
|
-
var _a;
|
|
17
|
+
const getSenderLabelForLatestPreview = (msgData, currentUserId, t, conversation) => {
|
|
18
|
+
var _a, _b;
|
|
19
19
|
if (currentUserId && msgData.sendID === currentUserId) {
|
|
20
20
|
return String(t("you"));
|
|
21
21
|
}
|
|
22
|
-
const
|
|
23
|
-
if (
|
|
24
|
-
return
|
|
22
|
+
const senderNickname = (_a = msgData.senderNickname) === null || _a === void 0 ? void 0 : _a.trim();
|
|
23
|
+
if (senderNickname) {
|
|
24
|
+
return senderNickname;
|
|
25
|
+
}
|
|
26
|
+
if ((conversation === null || conversation === void 0 ? void 0 : conversation.peerType) === PeerType.BOT) {
|
|
27
|
+
return ((_b = conversation.showName) === null || _b === void 0 ? void 0 : _b.trim()) || undefined;
|
|
25
28
|
}
|
|
26
|
-
return
|
|
29
|
+
return undefined;
|
|
27
30
|
};
|
|
31
|
+
const formatWithSender = (sender, content) => sender ? `${sender}: ${content}` : content;
|
|
28
32
|
export function formatDuration(seconds) {
|
|
29
33
|
const minutes = Math.floor(seconds / 60);
|
|
30
34
|
const secs = Math.floor(seconds % 60);
|
|
@@ -42,7 +46,7 @@ export function renderFileSize(bytes) {
|
|
|
42
46
|
}
|
|
43
47
|
return `${size.toFixed(1)} ${units[index]}`;
|
|
44
48
|
}
|
|
45
|
-
export const generateContentBasedOnMessageType = (contentType, plainText, t
|
|
49
|
+
export const generateContentBasedOnMessageType = (contentType, plainText, t) => {
|
|
46
50
|
switch (contentType) {
|
|
47
51
|
case MessageType.TextMessage:
|
|
48
52
|
case MessageType.QuoteMessage:
|
|
@@ -60,44 +64,36 @@ export const generateContentBasedOnMessageType = (contentType, plainText, t, cus
|
|
|
60
64
|
return t ? t("msg_type_file") : "[Tập tin]";
|
|
61
65
|
case MessageType.RevokeMessage:
|
|
62
66
|
return t ? t("revoked") : "Đã thu hồi tin nhắn";
|
|
63
|
-
case MessageType.CustomMessage: {
|
|
64
|
-
if ((customElem === null || customElem === void 0 ? void 0 : customElem.extension) !== CustomMessageType.Order)
|
|
65
|
-
return "";
|
|
66
|
-
const orderCode = (customElem === null || customElem === void 0 ? void 0 : customElem.description) || "";
|
|
67
|
-
return t
|
|
68
|
-
? t("msg_type_order", { orderCode })
|
|
69
|
-
: `[Đơn hàng] ${orderCode}`;
|
|
70
|
-
}
|
|
71
67
|
default:
|
|
72
68
|
return "";
|
|
73
69
|
}
|
|
74
70
|
};
|
|
75
|
-
export const parseLatestMessage = (latestMsg, currentUserId, t) => {
|
|
76
|
-
var _a, _b, _c, _d
|
|
71
|
+
export const parseLatestMessage = (latestMsg, currentUserId, t, conversation) => {
|
|
72
|
+
var _a, _b, _c, _d;
|
|
77
73
|
if (!latestMsg || !t)
|
|
78
74
|
return "";
|
|
79
75
|
try {
|
|
80
76
|
const msgData = JSON.parse(latestMsg);
|
|
81
77
|
const contentType = msgData === null || msgData === void 0 ? void 0 : msgData.contentType;
|
|
82
|
-
const sender = getSenderLabelForLatestPreview(msgData, currentUserId, t);
|
|
78
|
+
const sender = getSenderLabelForLatestPreview(msgData, currentUserId, t, conversation);
|
|
83
79
|
switch (contentType) {
|
|
84
80
|
case MessageType.LogTextMessage:
|
|
85
81
|
return getSystemLogMessageText(msgData);
|
|
86
82
|
case MessageType.TextMessage:
|
|
87
83
|
case MessageType.QuoteMessage:
|
|
88
84
|
case MessageType.UrlTextMessage:
|
|
89
|
-
return
|
|
85
|
+
return formatWithSender(sender, generateContentBasedOnMessageType(contentType, ((_a = msgData === null || msgData === void 0 ? void 0 : msgData.textElem) === null || _a === void 0 ? void 0 : _a.content) ||
|
|
90
86
|
((_b = msgData === null || msgData === void 0 ? void 0 : msgData.quoteElem) === null || _b === void 0 ? void 0 : _b.text) ||
|
|
91
87
|
((_c = msgData === null || msgData === void 0 ? void 0 : msgData.urlTextElem) === null || _c === void 0 ? void 0 : _c.content) ||
|
|
92
|
-
"")
|
|
88
|
+
""));
|
|
93
89
|
case MessageType.PictureMessage:
|
|
94
90
|
case MessageType.MergeMessage:
|
|
95
91
|
case MessageType.VoiceMessage:
|
|
96
92
|
case MessageType.VideoMessage:
|
|
97
93
|
case MessageType.FileMessage:
|
|
98
|
-
return
|
|
94
|
+
return formatWithSender(sender, generateContentBasedOnMessageType(contentType));
|
|
99
95
|
case MessageType.RevokeMessage:
|
|
100
|
-
return t("revoked_with_sender", { name: sender });
|
|
96
|
+
return sender ? t("revoked_with_sender", { name: sender }) : t("revoked");
|
|
101
97
|
case MessageType.CustomMessage: {
|
|
102
98
|
const customData = (_d = msgData.customElem) === null || _d === void 0 ? void 0 : _d.data;
|
|
103
99
|
if (customData === "#SESSION - START") {
|
|
@@ -106,11 +102,6 @@ export const parseLatestMessage = (latestMsg, currentUserId, t) => {
|
|
|
106
102
|
if (customData === "#SESSION - END") {
|
|
107
103
|
return t("session_ended");
|
|
108
104
|
}
|
|
109
|
-
if (((_e = msgData.customElem) === null || _e === void 0 ? void 0 : _e.extension) === CustomMessageType.Order) {
|
|
110
|
-
return `${sender}: ${t("msg_type_order", {
|
|
111
|
-
orderCode: ((_f = msgData.customElem) === null || _f === void 0 ? void 0 : _f.description) || "",
|
|
112
|
-
})}`;
|
|
113
|
-
}
|
|
114
105
|
return "";
|
|
115
106
|
}
|
|
116
107
|
default:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@droppii-org/chat-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.69",
|
|
4
4
|
"description": "Droppii React Chat SDK",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -59,6 +59,10 @@
|
|
|
59
59
|
"build": "pnpm build:css && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && pnpm copy-assets",
|
|
60
60
|
"build:css": "tailwindcss -i ./src/styles/global.css -o ./dist/styles/global.css --minify",
|
|
61
61
|
"dev": "tsc --noEmit --watch",
|
|
62
|
+
"dev:link": "pnpm copy-assets && concurrently -k -n css,js,alias -c magenta,cyan,yellow \"pnpm:dev:link:css\" \"pnpm:dev:link:js\" \"pnpm:dev:link:alias\"",
|
|
63
|
+
"dev:link:css": "tailwindcss -i ./src/styles/global.css -o ./dist/styles/global.css --watch",
|
|
64
|
+
"dev:link:js": "tsc --watch -p tsconfig.build.json",
|
|
65
|
+
"dev:link:alias": "tsc-alias -p tsconfig.build.json --watch",
|
|
62
66
|
"lint": "eslint src/",
|
|
63
67
|
"type-check": "tsc --noEmit",
|
|
64
68
|
"prepublishOnly": "pnpm build",
|
|
@@ -120,6 +124,7 @@
|
|
|
120
124
|
"@types/node": "^20.0.0",
|
|
121
125
|
"@types/react": "^18.2.37",
|
|
122
126
|
"@types/react-dom": "^18.2.15",
|
|
127
|
+
"concurrently": "^9.1.0",
|
|
123
128
|
"shx": "^0.4.0",
|
|
124
129
|
"tsc-alias": "^1.8.17",
|
|
125
130
|
"typescript": "^5.2.2"
|