@droppii-org/chat-sdk 0.1.67 → 0.1.68

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 (41) hide show
  1. package/dist/components/message/item/CustomMessage.d.ts +7 -0
  2. package/dist/components/message/item/CustomMessage.d.ts.map +1 -0
  3. package/dist/components/message/item/CustomMessage.js +26 -0
  4. package/dist/components/message/item/TextMessage.d.ts.map +1 -1
  5. package/dist/components/message/item/TextMessage.js +0 -6
  6. package/dist/components/message/item/index.d.ts.map +1 -1
  7. package/dist/components/message/item/index.js +2 -8
  8. package/dist/components/message/item/renderMessageContent.d.ts.map +1 -1
  9. package/dist/components/message/item/renderMessageContent.js +3 -0
  10. package/dist/components/message/reply/ReplyQuoteContent.d.ts.map +1 -1
  11. package/dist/components/message/reply/ReplyQuoteContent.js +1 -1
  12. package/dist/context/ChatContext.d.ts +1 -1
  13. package/dist/context/ChatContext.d.ts.map +1 -1
  14. package/dist/context/ChatContext.js +2 -1
  15. package/dist/hooks/message/useMessage.d.ts +1 -0
  16. package/dist/hooks/message/useMessage.d.ts.map +1 -1
  17. package/dist/hooks/message/useMessage.js +12 -0
  18. package/dist/hooks/message/useSendCustomMessage.d.ts +7 -0
  19. package/dist/hooks/message/useSendCustomMessage.d.ts.map +1 -0
  20. package/dist/hooks/message/useSendCustomMessage.js +5 -0
  21. package/dist/hooks/message/useSendMessage.d.ts +9 -2
  22. package/dist/hooks/message/useSendMessage.d.ts.map +1 -1
  23. package/dist/hooks/message/useSendMessage.js +49 -3
  24. package/dist/index.d.ts +5 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +4 -0
  27. package/dist/locales/vi/common.json +2 -0
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/dist/types/chat.d.ts +5 -2
  30. package/dist/types/chat.d.ts.map +1 -1
  31. package/dist/types/chat.js +4 -4
  32. package/dist/types/customMessage.d.ts +25 -0
  33. package/dist/types/customMessage.d.ts.map +1 -0
  34. package/dist/types/customMessage.js +4 -0
  35. package/dist/utils/common.d.ts +4 -1
  36. package/dist/utils/common.d.ts.map +1 -1
  37. package/dist/utils/common.js +16 -2
  38. package/dist/utils/customMessage.d.ts +5 -0
  39. package/dist/utils/customMessage.d.ts.map +1 -0
  40. package/dist/utils/customMessage.js +36 -0
  41. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ import { MessageItem } from "@openim/wasm-client-sdk";
2
+ interface CustomMessageItemProps {
3
+ message: MessageItem;
4
+ }
5
+ declare const CustomMessageItem: ({ message }: CustomMessageItemProps) => import("react/jsx-runtime").JSX.Element | null;
6
+ export default CustomMessageItem;
7
+ //# sourceMappingURL=CustomMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/message/item/CustomMessage.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAMtD,UAAU,sBAAsB;IAC9B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,QAAA,MAAM,iBAAiB,GAAI,aAAa,sBAAsB,mDAwC7D,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
3
+ import clsx from "clsx";
4
+ import { useTranslation } from "react-i18next";
5
+ import { useChatContext } from "../../../context/ChatContext";
6
+ import { parseCustomMessagePayload } from "../../../utils/customMessage";
7
+ import { MESSAGE_TEXT_CLASS } from "./textStyle";
8
+ const CustomMessageItem = ({ message }) => {
9
+ var _a, _b;
10
+ const { t } = useTranslation();
11
+ const { renderCustomMessage } = useChatContext();
12
+ const payload = parseCustomMessagePayload(message);
13
+ const renderedContent = renderCustomMessage === null || renderCustomMessage === void 0 ? void 0 : renderCustomMessage({ message, payload });
14
+ if (renderedContent) {
15
+ return _jsx(_Fragment, { children: renderedContent });
16
+ }
17
+ const fallbackText = ((_a = message === null || message === void 0 ? void 0 : message.textElem) === null || _a === void 0 ? void 0 : _a.content) || ((_b = message === null || message === void 0 ? void 0 : message.quoteElem) === null || _b === void 0 ? void 0 : _b.text);
18
+ if (fallbackText) {
19
+ return (_jsx("p", { className: clsx("min-w-0 whitespace-pre-wrap [overflow-wrap:anywhere]", MESSAGE_TEXT_CLASS), children: fallbackText }));
20
+ }
21
+ if (!payload) {
22
+ return null;
23
+ }
24
+ return (_jsx("p", { className: clsx("min-w-0 whitespace-pre-wrap [overflow-wrap:anywhere]", MESSAGE_TEXT_CLASS), children: t("invalid_message") }));
25
+ };
26
+ export default CustomMessageItem;
@@ -1 +1 @@
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
+ {"version":3,"file":"TextMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/message/item/TextMessage.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAOtD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,QAAA,MAAM,eAAe,GAAI,OAAO,oBAAoB,mDAgDnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,8 +1,6 @@
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";
6
4
  import { htmlHasFormatting, sanitizeHtml, stripHtml } from "../../../utils/common";
7
5
  import { extractLinkUrls } from "../../../utils/link";
8
6
  import LinkText from "./LinkText";
@@ -10,7 +8,6 @@ import { MESSAGE_TEXT_CLASS } from "./textStyle";
10
8
  const TextMessageItem = (props) => {
11
9
  var _a, _b, _c, _d;
12
10
  const { message } = props;
13
- const isCrm = useAuthStore((state) => state.isCrm);
14
11
  let extendMessageInfo = null;
15
12
  try {
16
13
  extendMessageInfo = JSON.parse((message === null || message === void 0 ? void 0 : message.ex) || "{}");
@@ -19,9 +16,6 @@ const TextMessageItem = (props) => {
19
16
  extendMessageInfo = {};
20
17
  console.error("Failed to parse extendMessageInfo", error);
21
18
  }
22
- if ((message === null || message === void 0 ? void 0 : message.contentType) === MessageType.CustomMessage && !isCrm) {
23
- return null;
24
- }
25
19
  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) || "";
26
20
  if (richHtmlContent && htmlHasFormatting(richHtmlContent)) {
27
21
  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,mDAuRlB,CAAC;AAEF,eAAe,WAAW,CAAC"}
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,mDA8QlB,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, visibleTypeMessage, } from "../../../hooks/message/useMessage";
9
+ import { getVisibleNeighbor, isMessageHiddenForViewer, } 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,13 +127,7 @@ 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 (!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)) {
130
+ if (isMessageHiddenForViewer(message, isCrm)) {
137
131
  return null;
138
132
  }
139
133
  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;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"}
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;AAYtF,eAAO,MAAM,mBAAmB,GAAI,SAAS,eAAe,4CAyB3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,eAAe,EACxB,sBAAsB,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,4CAwBpD,CAAC"}
@@ -9,6 +9,7 @@ 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";
12
13
  export const renderMessageByType = (message) => {
13
14
  switch (message === null || message === void 0 ? void 0 : message.contentType) {
14
15
  case MessageType.TextMessage:
@@ -28,6 +29,8 @@ export const renderMessageByType = (message) => {
28
29
  return _jsx(SystemLogMessageItem, { message: message });
29
30
  case MessageType.RevokeMessage:
30
31
  return _jsx(RevokeMessageItem, {});
32
+ case MessageType.CustomMessage:
33
+ return _jsx(CustomMessageItem, { message: message });
31
34
  default:
32
35
  return _jsx(TextMessageItem, { message: message });
33
36
  }
@@ -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,4CAsBxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
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,4CAuBxB,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, message.customElem) })] })] }));
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 }: ChatProviderProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const ChatProvider: ({ children, config, renderCustomMessage, }: 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,sBAAsB,iBAAiB,4CAqGnE,CAAC"}
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,4CAI1B,iBAAiB,4CAsGnB,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, renderCustomMessage, }) => {
22
22
  const [connectStatus, setConnectStatus] = useState(ConnectStatus.Disconnected);
23
23
  const [syncStatus, setSyncStatus] = useState(SyncStatus.Success);
24
24
  const [user, setUser] = useState(null);
@@ -91,5 +91,6 @@ export const ChatProvider = ({ children, config }) => {
91
91
  getSelfUserInfo,
92
92
  updateConnectStatus,
93
93
  updateSyncStatus,
94
+ renderCustomMessage,
94
95
  }, children: _jsx(ConfigProvider, { getPopupContainer: (triggerNode) => document.body, children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(MainLayout, { children: children }) }) }) }));
95
96
  };
@@ -1,5 +1,6 @@
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;
3
4
  export declare const useMessage: (conversationId?: string, searchClientMsgID?: string, enabled?: boolean, useAppHistory?: boolean) => {
4
5
  loadState: {
5
6
  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;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"}
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;AAYjC,eAAO,MAAM,kBAAkB,eAgB9B,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,SAAS,WAAW,EACpB,OAAO,OAAO,KACb,OAWF,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,6 +8,8 @@ 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";
11
13
  export const visibleTypeMessage = [
12
14
  MessageType.TextMessage,
13
15
  MessageType.PictureMessage,
@@ -25,6 +27,16 @@ export const visibleTypeMessage = [
25
27
  MessageType.RevokeMessage,
26
28
  MessageType.LogTextMessage,
27
29
  ];
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
+ };
28
40
  export const useMessage = (conversationId, searchClientMsgID, enabled = true, useAppHistory = false) => {
29
41
  const { connectStatus, syncStatus } = useChatContext();
30
42
  const userID = useAuthStore((state) => state.userID);
@@ -0,0 +1,7 @@
1
+ import { type UseSendMessageOptions } from "../../hooks/message/useSendMessage";
2
+ export declare const useSendCustomMessage: (options?: UseSendMessageOptions) => {
3
+ sendCustomMessage: (payload: import("../..").CustomMessagePayload, sendOptions?: {
4
+ currentSession?: import("../../types/dto").ISessionResponse;
5
+ }) => Promise<boolean>;
6
+ };
7
+ //# sourceMappingURL=useSendCustomMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSendCustomMessage.d.ts","sourceRoot":"","sources":["../../../src/hooks/message/useSendCustomMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,oBAAoB,GAAI,UAAU,qBAAqB;;sBAK84a,CAAC;;CADl9a,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { useSendMessage, } from "../../hooks/message/useSendMessage";
2
+ export const useSendCustomMessage = (options) => {
3
+ const { sendCustomMessage } = useSendMessage(options);
4
+ return { sendCustomMessage };
5
+ };
@@ -1,4 +1,5 @@
1
- import { MergerMsgParams, MessageItem } from "@openim/wasm-client-sdk";
1
+ import { CustomMsgParams, MergerMsgParams, MessageItem } from "@openim/wasm-client-sdk";
2
+ import { type CustomMessagePayload } from "../../types/customMessage";
2
3
  import { BotFlowMeta, ExtendMessageInfo, FileMsgParamsByFile, ImageMsgParamsByFile, UrlMetadataInfo, VideoMsgParamsByFile } from "../../types/chat";
3
4
  import { UploadFile } from "antd";
4
5
  import { ISessionResponse } from "../../types/dto";
@@ -12,6 +13,8 @@ export declare const createMergerMessage: (mergerMsgParams: MergerMsgParams) =>
12
13
  export declare const createVideoMessageByFile: (file: VideoMsgParamsByFile) => Promise<MessageItem | null>;
13
14
  export declare const createFileMessageByFile: (file: FileMsgParamsByFile) => Promise<MessageItem | null>;
14
15
  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>;
15
18
  export declare const createQuoteMessage: (text: string, quotedMessage: MessageItem) => Promise<MessageItem | null>;
16
19
  export type SendMessageScrollEvent = "CHAT_LIST_SCROLL_TO_BOTTOM" | "CONVERSATION_CHAT_SCROLL_TO_BOTTOM_IF_AT_BOTTOM";
17
20
  export interface OfflinePushMeta {
@@ -26,7 +29,7 @@ export interface UseSendMessageOptions {
26
29
  }) => OfflinePushMeta;
27
30
  }
28
31
  export declare const useSendMessage: (options?: UseSendMessageOptions) => {
29
- sendMergeMessage: ({ richText, plainText, files, currentSession, isInternal, urlMetadata, flow, }: {
32
+ sendMergeMessage: ({ richText, plainText, files, currentSession, isInternal, urlMetadata, flow, customMessage, }: {
30
33
  richText: string;
31
34
  plainText: string;
32
35
  files?: UploadFile[];
@@ -34,6 +37,10 @@ export declare const useSendMessage: (options?: UseSendMessageOptions) => {
34
37
  isInternal: boolean;
35
38
  urlMetadata?: UrlMetadataInfo;
36
39
  flow?: BotFlowMeta;
40
+ customMessage?: CustomMessagePayload;
41
+ }) => Promise<boolean>;
42
+ sendCustomMessage: (payload: CustomMessagePayload, sendOptions?: {
43
+ currentSession?: ISessionResponse;
37
44
  }) => Promise<boolean>;
38
45
  resendMessage: (failedMessage: MessageItem) => Promise<void>;
39
46
  };
@@ -1 +1 @@
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
+ {"version":3,"file":"useSendMessage.d.ts","sourceRoot":"","sources":["../../../src/hooks/message/useSendMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,WAAW,EAGZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,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,2BAA2B,GACtC,QAAQ,eAAe,gCAcxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,SAAS,oBAAoB,gCAOtE,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;sHAsRvD;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;QACnB,aAAa,CAAC,EAAE,oBAAoB,CAAC;KACtC,KAAG,OAAO,CAAC,OAAO,CAAC;iCA3CT,oBAAoB,gBACf;QAAE,cAAc,CAAC,EAAE,gBAAgB,CAAA;KAAE,KAClD,OAAO,CAAC,OAAO,CAAC;mCAnHG,WAAW;CAyVpC,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,4 +1,5 @@
1
1
  import { MessageStatus, MessageType, } from "@openim/wasm-client-sdk";
2
+ import { CustomMessageType, } from "../../types/customMessage";
2
3
  import { DChatSDK } from "../../constants/sdk";
3
4
  import { v4 as uuidv4 } from "uuid";
4
5
  import { useCallback } from "react";
@@ -89,6 +90,24 @@ export const createUrlTextMessage = async (text, urls) => {
89
90
  });
90
91
  return textMessage;
91
92
  };
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
+ };
92
111
  export const createQuoteMessage = async (text, quotedMessage) => {
93
112
  let textMessage = await DChatSDK.createQuoteMessage({
94
113
  text,
@@ -140,7 +159,7 @@ export const useSendMessage = (options) => {
140
159
  }, [queryClient]);
141
160
  const dispatchMessage = useCallback(async (message, currentSession) => {
142
161
  var _a, _b, _c, _d;
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");
162
+ const desc = generateContentBasedOnMessageType(message.contentType, ((_a = message === null || message === void 0 ? void 0 : message.textElem) === null || _a === void 0 ? void 0 : _a.content) || "", t, message === null || message === void 0 ? void 0 : message.customElem) || t("new_message");
144
163
  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 : {
145
164
  title: (conversationData === null || conversationData === void 0 ? void 0 : conversationData.showName) || "Droppii Chat",
146
165
  icon: (conversationData === null || conversationData === void 0 ? void 0 : conversationData.faceURL) || "",
@@ -197,7 +216,16 @@ export const useSendMessage = (options) => {
197
216
  if (!storedFiles) {
198
217
  let newTextPayload = null;
199
218
  const textContent = ((_a = failedMessage.textElem) === null || _a === void 0 ? void 0 : _a.content) || failedMessage.content || "";
200
- if (failedMessage.contentType === MessageType.UrlTextMessage &&
219
+ if (failedMessage.contentType === MessageType.CustomMessage) {
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 &&
201
229
  failedMessage.urlTextElem) {
202
230
  newTextPayload = await createUrlTextMessage(textContent, failedMessage.urlTextElem.urls);
203
231
  }
@@ -272,7 +300,18 @@ export const useSendMessage = (options) => {
272
300
  removeOneMessage(failedMessage.clientMsgID);
273
301
  await sendMessage(Object.assign(Object.assign({}, newPayload), { ex: failedMessage.ex }));
274
302
  }, [sendMessage]);
275
- const sendMergeMessage = useCallback(async ({ richText, plainText, files = [], currentSession, isInternal, urlMetadata, flow, }) => {
303
+ const sendCustomMessage = useCallback(async (payload, sendOptions) => {
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, }) => {
276
315
  if (!conversationData || (!recvID && !groupID))
277
316
  return false;
278
317
  const messageList = [];
@@ -412,6 +451,12 @@ export const useSendMessage = (options) => {
412
451
  return false;
413
452
  messageList.push(textMessage);
414
453
  }
454
+ if (customMessage) {
455
+ const customMessageItem = await createCustomMessage(customMessage);
456
+ if (!customMessageItem)
457
+ return false;
458
+ messageList.push(customMessageItem);
459
+ }
415
460
  for (const message of messageList) {
416
461
  const isTextLikeMessage = (message === null || message === void 0 ? void 0 : message.contentType) === MessageType.TextMessage ||
417
462
  (message === null || message === void 0 ? void 0 : message.contentType) === MessageType.UrlTextMessage ||
@@ -438,6 +483,7 @@ export const useSendMessage = (options) => {
438
483
  ]);
439
484
  return {
440
485
  sendMergeMessage,
486
+ sendCustomMessage,
441
487
  resendMessage,
442
488
  };
443
489
  };
package/dist/index.d.ts CHANGED
@@ -21,7 +21,12 @@ 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";
24
27
  export { useDChatAuth } from "./hooks/user/useAuth";
28
+ export { useSendMessage } from "./hooks/message/useSendMessage";
29
+ export type { UseSendMessageOptions } from "./hooks/message/useSendMessage";
25
30
  export { useUpdateFcmToken } from "./hooks/user/useUpdateFcmToken";
26
31
  export { useConversationList } from "./hooks/conversation/useConversationList";
27
32
  export { useCreateConversation } from "./hooks/conversation/useCreateConversation";
@@ -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,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"}
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,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAG/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,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,8 +19,12 @@ 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";
22
25
  //Hooks
23
26
  export { useDChatAuth } from "./hooks/user/useAuth";
27
+ export { useSendMessage } from "./hooks/message/useSendMessage";
24
28
  export { useUpdateFcmToken } from "./hooks/user/useUpdateFcmToken";
25
29
  export { useConversationList } from "./hooks/conversation/useConversationList";
26
30
  export { useCreateConversation } from "./hooks/conversation/useCreateConversation";
@@ -103,6 +103,8 @@
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ệ",
106
108
  "session_started": "Phiên chat đã bắt đầu",
107
109
  "session_ended": "Phiên chat đã kết thúc",
108
110
  "new_message": "Bạn có tin nhắn mới",