@droppii-org/chat-sdk 0.1.28 → 0.1.30

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.
Files changed (61) hide show
  1. package/dist/assets/svg/index.ts +1 -1
  2. package/dist/components/biz-inbox/BizThreadAvatar.d.ts.map +1 -1
  3. package/dist/components/biz-inbox/BizThreadAvatar.js +6 -1
  4. package/dist/components/biz-inbox/BizThreadCard.d.ts +3 -3
  5. package/dist/components/biz-inbox/BizThreadCard.d.ts.map +1 -1
  6. package/dist/components/biz-inbox/BizThreadCard.js +20 -8
  7. package/dist/components/biz-inbox/BizThreadList.d.ts +5 -4
  8. package/dist/components/biz-inbox/BizThreadList.d.ts.map +1 -1
  9. package/dist/components/biz-inbox/BizThreadList.js +29 -6
  10. package/dist/components/biz-inbox/BizThreadTitle.d.ts +2 -1
  11. package/dist/components/biz-inbox/BizThreadTitle.d.ts.map +1 -1
  12. package/dist/components/biz-inbox/BizThreadTitle.js +2 -1
  13. package/dist/components/biz-thread-detail/BizMessageList.d.ts.map +1 -1
  14. package/dist/components/biz-thread-detail/BizMessageList.js +15 -7
  15. package/dist/components/biz-thread-detail/BizThreadDetailHeader.d.ts.map +1 -1
  16. package/dist/components/biz-thread-detail/BizThreadDetailHeader.js +3 -4
  17. package/dist/components/biz-thread-detail/item/BizMessageItem.d.ts +2 -1
  18. package/dist/components/biz-thread-detail/item/BizMessageItem.d.ts.map +1 -1
  19. package/dist/components/biz-thread-detail/item/BizMessageItem.js +11 -5
  20. package/dist/components/message/MessageInfiniteScroll.d.ts +2 -1
  21. package/dist/components/message/MessageInfiniteScroll.d.ts.map +1 -1
  22. package/dist/components/message/MessageInfiniteScroll.js +2 -15
  23. package/dist/components/message/MessageList.d.ts.map +1 -1
  24. package/dist/components/message/MessageList.js +2 -2
  25. package/dist/hooks/biz/index.d.ts +4 -0
  26. package/dist/hooks/biz/index.d.ts.map +1 -1
  27. package/dist/hooks/biz/index.js +3 -0
  28. package/dist/hooks/biz/useBizActiveConversation.d.ts +3 -0
  29. package/dist/hooks/biz/useBizActiveConversation.d.ts.map +1 -0
  30. package/dist/hooks/biz/useBizActiveConversation.js +59 -0
  31. package/dist/hooks/biz/useBizConversationList.d.ts +3 -2
  32. package/dist/hooks/biz/useBizConversationList.d.ts.map +1 -1
  33. package/dist/hooks/biz/useBizConversationList.js +4 -1
  34. package/dist/hooks/biz/useBizConversationListItems.d.ts +8 -0
  35. package/dist/hooks/biz/useBizConversationListItems.d.ts.map +1 -0
  36. package/dist/hooks/biz/useBizConversationListItems.js +10 -0
  37. package/dist/hooks/biz/useBizGlobalEvent.d.ts +2 -0
  38. package/dist/hooks/biz/useBizGlobalEvent.d.ts.map +1 -0
  39. package/dist/hooks/biz/useBizGlobalEvent.js +44 -0
  40. package/dist/hooks/biz/useBizSendMessage.d.ts.map +1 -1
  41. package/dist/hooks/biz/useBizSendMessage.js +7 -6
  42. package/dist/hooks/message/useMessageListScroll.d.ts.map +1 -1
  43. package/dist/hooks/message/useMessageListScroll.js +10 -0
  44. package/dist/locales/vi/biz-inbox.json +1 -0
  45. package/dist/screens/biz-message/index.d.ts.map +1 -1
  46. package/dist/screens/biz-message/index.js +7 -28
  47. package/dist/store/bizConversation.d.ts +4 -0
  48. package/dist/store/bizConversation.d.ts.map +1 -1
  49. package/dist/store/bizConversation.js +9 -0
  50. package/dist/styles/global.css +1 -1
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/dist/types/biz.d.ts +5 -2
  53. package/dist/types/biz.d.ts.map +1 -1
  54. package/dist/types/biz.js +2 -0
  55. package/dist/utils/bizConversation.d.ts +3 -5
  56. package/dist/utils/bizConversation.d.ts.map +1 -1
  57. package/dist/utils/bizConversation.js +18 -40
  58. package/dist/utils/bizMessage.d.ts +8 -2
  59. package/dist/utils/bizMessage.d.ts.map +1 -1
  60. package/dist/utils/bizMessage.js +60 -3
  61. package/package.json +1 -1
@@ -8,17 +8,20 @@ export declare enum BizChatCategory {
8
8
  BIZ_BIZ = "BIZ_BIZ",
9
9
  BIZ_MALL = "BIZ_MALL",
10
10
  GROUP = "GROUP",
11
- BIZ_BOT_PDP = "BIZ_BOT_PDP"
11
+ BIZ_BOT_PDP = "BIZ_BOT_PDP",
12
+ BIZ_BOT_CRM = "BIZ_BOT_CRM"
12
13
  }
13
14
  export declare enum BizPeerType {
14
15
  USER = "USER",
15
- GROUP = "GROUP"
16
+ GROUP = "GROUP",
17
+ BOT = "BOT"
16
18
  }
17
19
  export interface BizConversationPeer {
18
20
  id: string | null;
19
21
  username: string | null;
20
22
  fullName: string | null;
21
23
  avatar: string | null;
24
+ botName?: string | null;
22
25
  type: BizPeerType;
23
26
  }
24
27
  export interface BizConversationItem {
@@ -1 +1 @@
1
- {"version":3,"file":"biz.d.ts","sourceRoot":"","sources":["../../src/types/biz.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,eAAe;IACzB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,WAAW,gBAAgB;CAC5B;AAED,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;CACnB;AACD,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,eAAe,CAAC;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,oBAAoB,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,eAAe,CAAC;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,oBAAoB,CAAC;IACtC,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC"}
1
+ {"version":3,"file":"biz.d.ts","sourceRoot":"","sources":["../../src/types/biz.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,eAAe;IACzB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;CAC5B;AAED,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;CACnB;AACD,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,eAAe,CAAC;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,oBAAoB,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,eAAe,CAAC;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,oBAAoB,CAAC;IACtC,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC"}
package/dist/types/biz.js CHANGED
@@ -9,9 +9,11 @@ export var BizChatCategory;
9
9
  BizChatCategory["BIZ_MALL"] = "BIZ_MALL";
10
10
  BizChatCategory["GROUP"] = "GROUP";
11
11
  BizChatCategory["BIZ_BOT_PDP"] = "BIZ_BOT_PDP";
12
+ BizChatCategory["BIZ_BOT_CRM"] = "BIZ_BOT_CRM";
12
13
  })(BizChatCategory || (BizChatCategory = {}));
13
14
  export var BizPeerType;
14
15
  (function (BizPeerType) {
15
16
  BizPeerType["USER"] = "USER";
16
17
  BizPeerType["GROUP"] = "GROUP";
18
+ BizPeerType["BOT"] = "BOT";
17
19
  })(BizPeerType || (BizPeerType = {}));
@@ -1,11 +1,9 @@
1
- import type { TFunction } from "i18next";
2
1
  import { BizChatCategory, type BizConversationItem } from "../types/biz";
3
- import { IPulledRawMessage } from "../types/dto";
4
- export declare const resolveBizDisplayName: (item: BizConversationItem, fallback: string) => string;
2
+ export declare const isBizBotCrmChat: (item: Pick<BizConversationItem, "chatCategory">) => boolean;
3
+ export declare const resolveBizDisplayName: (item: BizConversationItem, t: (key: string) => string) => string;
5
4
  export declare const resolveBizAvatarUrl: (item: BizConversationItem) => string | null;
6
5
  export declare const resolveBizBadgeLabel: (chatCategory: BizChatCategory, t: (key: string) => string) => string;
7
6
  export declare const resolveBizBadgeColor: (chatCategory: BizChatCategory) => "" | "bg-[#F28504]" | "bg-[#59ABFF]";
7
+ export declare const isBizGroupMessageTarget: (item: BizConversationItem) => boolean;
8
8
  export declare const isBizGroupChat: (item: BizConversationItem) => boolean;
9
- export declare const resolveBizLastMessagePreview: (lastMessage: IPulledRawMessage | null, t?: TFunction) => string;
10
- export declare const resolveBizLastMessageTime: (lastMessage: IPulledRawMessage | null) => number | null;
11
9
  //# sourceMappingURL=bizConversation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bizConversation.d.ts","sourceRoot":"","sources":["../../src/utils/bizConversation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EACL,eAAe,EAGf,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAkBhD,eAAO,MAAM,qBAAqB,GAChC,MAAM,mBAAmB,EACzB,UAAU,MAAM,KACf,MAMF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,MAAM,mBAAmB,KAAG,MAAM,GAAG,IACvD,CAAC;AAEnB,eAAO,MAAM,oBAAoB,GAC/B,cAAc,eAAe,EAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,KACzB,MAUF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,eAAe,yCAIjE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,mBAAmB,YAGlB,CAAC;AAEvC,eAAO,MAAM,4BAA4B,GACvC,aAAa,iBAAiB,GAAG,IAAI,EACrC,IAAI,SAAS,WAqBd,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,aAAa,iBAAiB,GAAG,IAAI,kBACL,CAAC"}
1
+ {"version":3,"file":"bizConversation.d.ts","sourceRoot":"","sources":["../../src/utils/bizConversation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAGf,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,YAC5B,CAAC;AAEpD,eAAO,MAAM,qBAAqB,GAChC,MAAM,mBAAmB,EACzB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,KACzB,MAYF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,MAAM,mBAAmB,KAAG,MAAM,GAAG,IAGxE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,cAAc,eAAe,EAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,KACzB,MAUF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,eAAe,yCAIjE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,MAAM,mBAAmB,YAG3B,CAAC;AAEvC,eAAO,MAAM,cAAc,GAAI,MAAM,mBAAmB,YACC,CAAC"}
@@ -1,34 +1,26 @@
1
1
  import { BizChatCategory, BizChatType, BizPeerType, } from "../types/biz";
2
- import { generateContentBasedOnMessageType } from "./common";
3
- import { transformPulledMessage } from "./messageTransform";
4
- const stripHtml = (html) => html
5
- .replace(/<[^>]*>/g, " ")
6
- .replace(/\s+/g, " ")
7
- .trim();
8
- const parseRichTextFromEx = (ex) => {
9
- var _a, _b;
10
- if (!ex)
11
- return "";
12
- try {
13
- const parsed = JSON.parse(ex);
14
- const content = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.messageInfo) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.content;
15
- return content ? stripHtml(content) : "";
16
- }
17
- catch (_c) {
18
- return "";
2
+ export const isBizBotCrmChat = (item) => item.chatCategory === BizChatCategory.BIZ_BOT_CRM;
3
+ export const resolveBizDisplayName = (item, t) => {
4
+ var _a, _b, _c;
5
+ if (isBizBotCrmChat(item)) {
6
+ const botName = (_a = item.peer.botName) === null || _a === void 0 ? void 0 : _a.trim();
7
+ if (botName)
8
+ return botName;
9
+ return t("thread_card.bot_crm_name");
19
10
  }
20
- };
21
- export const resolveBizDisplayName = (item, fallback) => {
22
- var _a, _b;
23
- const fullName = (_a = item.peer.fullName) === null || _a === void 0 ? void 0 : _a.trim();
11
+ const fullName = (_b = item.peer.fullName) === null || _b === void 0 ? void 0 : _b.trim();
24
12
  if (fullName)
25
13
  return fullName;
26
- const username = (_b = item.peer.username) === null || _b === void 0 ? void 0 : _b.trim();
14
+ const username = (_c = item.peer.username) === null || _c === void 0 ? void 0 : _c.trim();
27
15
  if (username)
28
16
  return username;
29
- return fallback;
17
+ return t("thread_card.fallback_name");
18
+ };
19
+ export const resolveBizAvatarUrl = (item) => {
20
+ if (isBizBotCrmChat(item))
21
+ return null;
22
+ return item.peer.avatar;
30
23
  };
31
- export const resolveBizAvatarUrl = (item) => item.peer.avatar;
32
24
  export const resolveBizBadgeLabel = (chatCategory, t) => {
33
25
  if (chatCategory === BizChatCategory.BIZ_MALL) {
34
26
  return t("thread_card.badge.mall");
@@ -45,21 +37,7 @@ export const resolveBizBadgeColor = (chatCategory) => {
45
37
  return "bg-[#59ABFF]";
46
38
  return "";
47
39
  };
48
- export const isBizGroupChat = (item) => item.chatCategory === BizChatCategory.GROUP ||
40
+ export const isBizGroupMessageTarget = (item) => item.chatCategory === BizChatCategory.GROUP ||
49
41
  item.chatType === BizChatType.GROUP ||
50
42
  item.peer.type === BizPeerType.GROUP;
51
- export const resolveBizLastMessagePreview = (lastMessage, t) => {
52
- var _a, _b, _c;
53
- if (!lastMessage)
54
- return "";
55
- const richText = parseRichTextFromEx(lastMessage.ex);
56
- if (richText)
57
- return richText;
58
- const transformed = transformPulledMessage(lastMessage);
59
- const plainText = ((_a = transformed.textElem) === null || _a === void 0 ? void 0 : _a.content) ||
60
- ((_b = transformed.quoteElem) === null || _b === void 0 ? void 0 : _b.text) ||
61
- ((_c = transformed.logTextElem) === null || _c === void 0 ? void 0 : _c.content) ||
62
- "";
63
- return generateContentBasedOnMessageType(lastMessage.contentType, plainText, t);
64
- };
65
- export const resolveBizLastMessageTime = (lastMessage) => { var _a; return (_a = lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.sendTime) !== null && _a !== void 0 ? _a : null; };
43
+ export const isBizGroupChat = (item) => isBizGroupMessageTarget(item) && !isBizBotCrmChat(item);
@@ -1,4 +1,10 @@
1
- import { MessageItem } from "@openim/wasm-client-sdk";
1
+ import { MessageItem, MessageType } from "@openim/wasm-client-sdk";
2
+ import type { TFunction } from "i18next";
3
+ export declare const shouldHideBizMessage: (message: {
4
+ contentType?: MessageType;
5
+ isInternal?: boolean;
6
+ }) => boolean;
7
+ export declare const parseBizLatestMessage: (latestMsg: string, currentUserId: string | undefined, t: TFunction, isGroupChat: boolean) => string;
2
8
  export declare const getBizMessageContent: (message: MessageItem) => string;
3
9
  export interface BizMessageDisplay {
4
10
  isMine: boolean;
@@ -11,5 +17,5 @@ export interface BizMessageDisplay {
11
17
  senderFaceUrl: string;
12
18
  sendTime: number;
13
19
  }
14
- export declare const getBizMessageDisplay: (message: MessageItem, allMessages: MessageItem[], userID: string) => BizMessageDisplay;
20
+ export declare const getBizMessageDisplay: (message: MessageItem, allMessages: MessageItem[], userID: string, isGroupChat?: boolean) => BizMessageDisplay;
15
21
  //# sourceMappingURL=bizMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bizMessage.d.ts","sourceRoot":"","sources":["../../src/utils/bizMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD,eAAO,MAAM,oBAAoB,GAAI,SAAS,WAAW,KAAG,MACR,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,WAAW,EACpB,aAAa,WAAW,EAAE,EAC1B,QAAQ,MAAM,KACb,iBAqBF,CAAC"}
1
+ {"version":3,"file":"bizMessage.d.ts","sourceRoot":"","sources":["../../src/utils/bizMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAazC,eAAO,MAAM,oBAAoB,GAAI,SAAS;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,YAKA,CAAC;AAuCF,eAAO,MAAM,qBAAqB,GAChC,WAAW,MAAM,EACjB,eAAe,MAAM,GAAG,SAAS,EACjC,GAAG,SAAS,EACZ,aAAa,OAAO,WAiBrB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,WAAW,KAAG,MACR,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,oBAAoB,GAC/B,SAAS,WAAW,EACpB,aAAa,WAAW,EAAE,EAC1B,QAAQ,MAAM,EACd,qBAAmB,KAClB,iBAqBF,CAAC"}
@@ -1,7 +1,64 @@
1
+ import { MessageType } from "@openim/wasm-client-sdk";
1
2
  import { getVisibleNeighbor } from "../hooks/message/useMessage";
2
3
  import dayjs from "dayjs";
4
+ import { generateContentBasedOnMessageType } from "./common";
5
+ import { isSystemLogMessageType } from "./messageLog";
6
+ export const shouldHideBizMessage = (message) => {
7
+ if (message.isInternal)
8
+ return true;
9
+ if (isSystemLogMessageType(message.contentType))
10
+ return true;
11
+ if (message.contentType === MessageType.CustomMessage)
12
+ return true;
13
+ return false;
14
+ };
15
+ const getSenderLabel = (msgData, currentUserId, t) => {
16
+ var _a;
17
+ if (currentUserId && msgData.sendID === currentUserId) {
18
+ return String(t("you"));
19
+ }
20
+ const name = (_a = msgData.senderNickname) === null || _a === void 0 ? void 0 : _a.trim();
21
+ if (name)
22
+ return name;
23
+ return String(t("message_sender_unnamed"));
24
+ };
25
+ const getBizPreviewContent = (msgData, t) => {
26
+ var _a, _b;
27
+ switch (msgData.contentType) {
28
+ case MessageType.TextMessage:
29
+ case MessageType.QuoteMessage:
30
+ return generateContentBasedOnMessageType(msgData.contentType, ((_a = msgData.textElem) === null || _a === void 0 ? void 0 : _a.content) || ((_b = msgData.quoteElem) === null || _b === void 0 ? void 0 : _b.text) || "", t);
31
+ case MessageType.PictureMessage:
32
+ case MessageType.VoiceMessage:
33
+ case MessageType.VideoMessage:
34
+ case MessageType.FileMessage:
35
+ case MessageType.UrlTextMessage:
36
+ case MessageType.RevokeMessage:
37
+ return generateContentBasedOnMessageType(msgData.contentType, undefined, t);
38
+ default:
39
+ return "";
40
+ }
41
+ };
42
+ export const parseBizLatestMessage = (latestMsg, currentUserId, t, isGroupChat) => {
43
+ if (!latestMsg || !t)
44
+ return "";
45
+ try {
46
+ const msgData = JSON.parse(latestMsg);
47
+ if (shouldHideBizMessage(msgData))
48
+ return "";
49
+ const content = getBizPreviewContent(msgData, t);
50
+ if (!content)
51
+ return "";
52
+ if (!isGroupChat)
53
+ return content;
54
+ return `${getSenderLabel(msgData, currentUserId, t)}: ${content}`;
55
+ }
56
+ catch (_a) {
57
+ return "";
58
+ }
59
+ };
3
60
  export const getBizMessageContent = (message) => { var _a, _b, _c; return (_c = (_b = (_a = message.textElem) === null || _a === void 0 ? void 0 : _a.content) !== null && _b !== void 0 ? _b : message.content) !== null && _c !== void 0 ? _c : ""; };
4
- export const getBizMessageDisplay = (message, allMessages, userID) => {
61
+ export const getBizMessageDisplay = (message, allMessages, userID, isGroupChat = false) => {
5
62
  const isMine = message.sendID === userID;
6
63
  const previousMessage = getVisibleNeighbor(allMessages, message, "prev");
7
64
  const nextMessage = getVisibleNeighbor(allMessages, message, "next");
@@ -11,8 +68,8 @@ export const getBizMessageDisplay = (message, allMessages, userID) => {
11
68
  !dayjs(message.sendTime).isSame(previousMessage.sendTime, "days");
12
69
  return {
13
70
  isMine,
14
- showAvatar: !isMine && !nextSameUser,
15
- showSenderName: !isMine && !prevSameUser,
71
+ showAvatar: isGroupChat && !isMine && !nextSameUser,
72
+ showSenderName: isGroupChat && !isMine && !prevSameUser,
16
73
  showTimeBreak,
17
74
  showTip: !nextSameUser,
18
75
  content: getBizMessageContent(message),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@droppii-org/chat-sdk",
3
- "version": "0.1.28",
3
+ "version": "0.1.30",
4
4
  "description": "Droppii React Chat SDK",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",