@droppii-org/chat-mobile 0.2.4 → 0.2.7

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 (212) hide show
  1. package/lib/module/components/ThreadCard/AvatarSection.js +4 -4
  2. package/lib/module/components/ThreadCard/AvatarSection.js.map +1 -1
  3. package/lib/module/components/ThreadCard/NamePrefixIcon.js +13 -16
  4. package/lib/module/components/ThreadCard/NamePrefixIcon.js.map +1 -1
  5. package/lib/module/components/ThreadCard/ThreadCard.js +13 -33
  6. package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -1
  7. package/lib/module/config/feature-flags.js +38 -0
  8. package/lib/module/config/feature-flags.js.map +1 -0
  9. package/lib/module/context/ChatContext.js +7 -6
  10. package/lib/module/context/ChatContext.js.map +1 -1
  11. package/lib/module/hooks/message/useSendMessage.js +101 -0
  12. package/lib/module/hooks/message/useSendMessage.js.map +1 -0
  13. package/lib/module/hooks/query-keys.js +4 -0
  14. package/lib/module/hooks/query-keys.js.map +1 -1
  15. package/lib/module/hooks/useChatMessages.js +54 -91
  16. package/lib/module/hooks/useChatMessages.js.map +1 -1
  17. package/lib/module/hooks/useConversationList.js +29 -17
  18. package/lib/module/hooks/useConversationList.js.map +1 -1
  19. package/lib/module/hooks/useLinkPreview/useFetchUrlMetadata.js +17 -0
  20. package/lib/module/hooks/useLinkPreview/useFetchUrlMetadata.js.map +1 -0
  21. package/lib/module/hooks/useLinkPreview/useLinkPreview.js +35 -0
  22. package/lib/module/hooks/useLinkPreview/useLinkPreview.js.map +1 -0
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/module/screens/chat-detail/ChatComposer.js +20 -4
  25. package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
  26. package/lib/module/screens/chat-detail/ChatDetail.js +116 -22
  27. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  28. package/lib/module/screens/chat-detail/ChatDetailHeader.js +5 -8
  29. package/lib/module/screens/chat-detail/ChatDetailHeader.js.map +1 -1
  30. package/lib/module/screens/chat-detail/ChatLinkPreview.js +79 -0
  31. package/lib/module/screens/chat-detail/ChatLinkPreview.js.map +1 -0
  32. package/lib/module/screens/chat-detail/ChatList.js +2 -0
  33. package/lib/module/screens/chat-detail/ChatList.js.map +1 -1
  34. package/lib/module/screens/chat-detail/ChatListLegend.js +350 -0
  35. package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -0
  36. package/lib/module/screens/chat-detail/ChatQuickActions.js +12 -2
  37. package/lib/module/screens/chat-detail/ChatQuickActions.js.map +1 -1
  38. package/lib/module/screens/chat-detail/conversationHeader.utils.js +29 -0
  39. package/lib/module/screens/chat-detail/conversationHeader.utils.js.map +1 -0
  40. package/lib/module/screens/chat-detail/index.js +1 -0
  41. package/lib/module/screens/chat-detail/index.js.map +1 -1
  42. package/lib/module/screens/chat-detail/legend/LegendChatDay.js +57 -0
  43. package/lib/module/screens/chat-detail/legend/LegendChatDay.js.map +1 -0
  44. package/lib/module/screens/chat-detail/legend/LegendChatLoadEarlier.js +21 -0
  45. package/lib/module/screens/chat-detail/legend/LegendChatLoadEarlier.js.map +1 -0
  46. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +34 -0
  47. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -0
  48. package/lib/module/screens/chat-detail/legend/LegendChatScrollToBottom.js +58 -0
  49. package/lib/module/screens/chat-detail/legend/LegendChatScrollToBottom.js.map +1 -0
  50. package/lib/module/screens/chat-detail/legend/message-types.js +244 -0
  51. package/lib/module/screens/chat-detail/legend/message-types.js.map +1 -0
  52. package/lib/module/screens/chat-detail/messages/ChatMessageBubble.js.map +1 -1
  53. package/lib/module/services/apis.js +1 -1
  54. package/lib/module/services/apis.js.map +1 -1
  55. package/lib/module/services/endpoints.js +8 -0
  56. package/lib/module/services/endpoints.js.map +1 -0
  57. package/lib/module/store/conversation.js +1 -1
  58. package/lib/module/store/conversation.js.map +1 -1
  59. package/lib/module/store/message.js +45 -0
  60. package/lib/module/store/message.js.map +1 -0
  61. package/lib/module/translation/resources/i18n.js +7 -1
  62. package/lib/module/translation/resources/i18n.js.map +1 -1
  63. package/lib/module/types/chat.js +2 -7
  64. package/lib/module/types/chat.js.map +1 -1
  65. package/lib/module/types/common.js +2 -0
  66. package/lib/module/types/common.js.map +1 -0
  67. package/lib/module/utils/conversation.js +34 -13
  68. package/lib/module/utils/conversation.js.map +1 -1
  69. package/lib/module/utils/legendListMessage.js +77 -0
  70. package/lib/module/utils/legendListMessage.js.map +1 -0
  71. package/lib/module/utils/message.js +5 -8
  72. package/lib/module/utils/message.js.map +1 -1
  73. package/lib/module/utils/url.js +7 -0
  74. package/lib/module/utils/url.js.map +1 -0
  75. package/lib/typescript/src/components/Avatar/Avatar.d.ts +1 -1
  76. package/lib/typescript/src/components/Avatar/Avatar.d.ts.map +1 -1
  77. package/lib/typescript/src/components/Avatar/AvatarBadge.d.ts +1 -1
  78. package/lib/typescript/src/components/Avatar/AvatarBadge.d.ts.map +1 -1
  79. package/lib/typescript/src/components/Avatar/DoubleAvatar.d.ts +1 -1
  80. package/lib/typescript/src/components/Avatar/DoubleAvatar.d.ts.map +1 -1
  81. package/lib/typescript/src/components/Avatar/SingleAvatar.d.ts +1 -1
  82. package/lib/typescript/src/components/Avatar/SingleAvatar.d.ts.map +1 -1
  83. package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts +2 -2
  84. package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts.map +1 -1
  85. package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts +3 -4
  86. package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts.map +1 -1
  87. package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts +1 -1
  88. package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -1
  89. package/lib/typescript/src/components/ThreadCard/UnreadBadge.d.ts +1 -1
  90. package/lib/typescript/src/components/ThreadCard/UnreadBadge.d.ts.map +1 -1
  91. package/lib/typescript/src/config/feature-flags.d.ts +12 -0
  92. package/lib/typescript/src/config/feature-flags.d.ts.map +1 -0
  93. package/lib/typescript/src/context/ChatContext.d.ts +1 -1
  94. package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
  95. package/lib/typescript/src/hooks/message/useSendMessage.d.ts +12 -0
  96. package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -0
  97. package/lib/typescript/src/hooks/query-keys.d.ts +4 -0
  98. package/lib/typescript/src/hooks/query-keys.d.ts.map +1 -1
  99. package/lib/typescript/src/hooks/useChatMessages.d.ts +3 -1
  100. package/lib/typescript/src/hooks/useChatMessages.d.ts.map +1 -1
  101. package/lib/typescript/src/hooks/useConversationList.d.ts +2 -1
  102. package/lib/typescript/src/hooks/useConversationList.d.ts.map +1 -1
  103. package/lib/typescript/src/hooks/useLinkPreview/useFetchUrlMetadata.d.ts +3 -0
  104. package/lib/typescript/src/hooks/useLinkPreview/useFetchUrlMetadata.d.ts.map +1 -0
  105. package/lib/typescript/src/hooks/useLinkPreview/useLinkPreview.d.ts +7 -0
  106. package/lib/typescript/src/hooks/useLinkPreview/useLinkPreview.d.ts.map +1 -0
  107. package/lib/typescript/src/index.d.ts +1 -1
  108. package/lib/typescript/src/index.d.ts.map +1 -1
  109. package/lib/typescript/src/screens/chat-detail/ChatAttachmentPanel.d.ts +1 -1
  110. package/lib/typescript/src/screens/chat-detail/ChatAttachmentPanel.d.ts.map +1 -1
  111. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +1 -1
  112. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
  113. package/lib/typescript/src/screens/chat-detail/ChatDay.d.ts +1 -1
  114. package/lib/typescript/src/screens/chat-detail/ChatDay.d.ts.map +1 -1
  115. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts +1 -1
  116. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  117. package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts +1 -1
  118. package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts.map +1 -1
  119. package/lib/typescript/src/screens/chat-detail/ChatLinkPreview.d.ts +9 -0
  120. package/lib/typescript/src/screens/chat-detail/ChatLinkPreview.d.ts.map +1 -0
  121. package/lib/typescript/src/screens/chat-detail/ChatList.d.ts +1 -1
  122. package/lib/typescript/src/screens/chat-detail/ChatList.d.ts.map +1 -1
  123. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +3 -0
  124. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -0
  125. package/lib/typescript/src/screens/chat-detail/ChatLoadEarlier.d.ts +1 -1
  126. package/lib/typescript/src/screens/chat-detail/ChatLoadEarlier.d.ts.map +1 -1
  127. package/lib/typescript/src/screens/chat-detail/ChatQuickActions.d.ts +1 -1
  128. package/lib/typescript/src/screens/chat-detail/ChatQuickActions.d.ts.map +1 -1
  129. package/lib/typescript/src/screens/chat-detail/ChatScrollToBottom.d.ts +1 -1
  130. package/lib/typescript/src/screens/chat-detail/ChatScrollToBottom.d.ts.map +1 -1
  131. package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts +1 -1
  132. package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts.map +1 -1
  133. package/lib/typescript/src/screens/chat-detail/conversationHeader.utils.d.ts +6 -0
  134. package/lib/typescript/src/screens/chat-detail/conversationHeader.utils.d.ts.map +1 -0
  135. package/lib/typescript/src/screens/chat-detail/index.d.ts +2 -1
  136. package/lib/typescript/src/screens/chat-detail/index.d.ts.map +1 -1
  137. package/lib/typescript/src/screens/chat-detail/legend/LegendChatDay.d.ts +6 -0
  138. package/lib/typescript/src/screens/chat-detail/legend/LegendChatDay.d.ts.map +1 -0
  139. package/lib/typescript/src/screens/chat-detail/legend/LegendChatLoadEarlier.d.ts +6 -0
  140. package/lib/typescript/src/screens/chat-detail/legend/LegendChatLoadEarlier.d.ts.map +1 -0
  141. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +13 -0
  142. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -0
  143. package/lib/typescript/src/screens/chat-detail/legend/LegendChatScrollToBottom.d.ts +6 -0
  144. package/lib/typescript/src/screens/chat-detail/legend/LegendChatScrollToBottom.d.ts.map +1 -0
  145. package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts +13 -0
  146. package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts.map +1 -0
  147. package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts +1 -1
  148. package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts.map +1 -1
  149. package/lib/typescript/src/screens/chat-detail/types.d.ts +33 -7
  150. package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
  151. package/lib/typescript/src/screens/inbox/Inbox.d.ts +1 -1
  152. package/lib/typescript/src/screens/inbox/Inbox.d.ts.map +1 -1
  153. package/lib/typescript/src/screens/inbox/MessagesTab.d.ts +1 -1
  154. package/lib/typescript/src/screens/inbox/MessagesTab.d.ts.map +1 -1
  155. package/lib/typescript/src/services/apis.d.ts +1 -0
  156. package/lib/typescript/src/services/apis.d.ts.map +1 -1
  157. package/lib/typescript/src/services/endpoints.d.ts +6 -0
  158. package/lib/typescript/src/services/endpoints.d.ts.map +1 -0
  159. package/lib/typescript/src/store/message.d.ts +3 -0
  160. package/lib/typescript/src/store/message.d.ts.map +1 -0
  161. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  162. package/lib/typescript/src/types/chat.d.ts +28 -27
  163. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  164. package/lib/typescript/src/types/common.d.ts +7 -0
  165. package/lib/typescript/src/types/common.d.ts.map +1 -0
  166. package/lib/typescript/src/utils/conversation.d.ts +3 -2
  167. package/lib/typescript/src/utils/conversation.d.ts.map +1 -1
  168. package/lib/typescript/src/utils/legendListMessage.d.ts +23 -0
  169. package/lib/typescript/src/utils/legendListMessage.d.ts.map +1 -0
  170. package/lib/typescript/src/utils/message.d.ts.map +1 -1
  171. package/lib/typescript/src/utils/url.d.ts +2 -0
  172. package/lib/typescript/src/utils/url.d.ts.map +1 -0
  173. package/package.json +5 -3
  174. package/src/components/ThreadCard/AvatarSection.tsx +5 -8
  175. package/src/components/ThreadCard/NamePrefixIcon.tsx +27 -38
  176. package/src/components/ThreadCard/ThreadCard.tsx +16 -30
  177. package/src/config/feature-flags.ts +49 -0
  178. package/src/context/ChatContext.tsx +12 -4
  179. package/src/hooks/message/useSendMessage.ts +136 -0
  180. package/src/hooks/query-keys.ts +5 -0
  181. package/src/hooks/useChatMessages.ts +90 -118
  182. package/src/hooks/useConversationList.ts +34 -16
  183. package/src/hooks/useLinkPreview/useFetchUrlMetadata.ts +18 -0
  184. package/src/hooks/useLinkPreview/useLinkPreview.ts +31 -0
  185. package/src/index.tsx +1 -0
  186. package/src/screens/chat-detail/ChatComposer.tsx +23 -2
  187. package/src/screens/chat-detail/ChatDetail.tsx +163 -30
  188. package/src/screens/chat-detail/ChatDetailHeader.tsx +4 -10
  189. package/src/screens/chat-detail/ChatLinkPreview.tsx +86 -0
  190. package/src/screens/chat-detail/ChatList.tsx +3 -0
  191. package/src/screens/chat-detail/ChatListLegend.tsx +403 -0
  192. package/src/screens/chat-detail/ChatQuickActions.tsx +19 -2
  193. package/src/screens/chat-detail/conversationHeader.utils.ts +49 -0
  194. package/src/screens/chat-detail/index.ts +7 -0
  195. package/src/screens/chat-detail/legend/LegendChatDay.tsx +70 -0
  196. package/src/screens/chat-detail/legend/LegendChatLoadEarlier.tsx +21 -0
  197. package/src/screens/chat-detail/legend/LegendChatMessage.tsx +48 -0
  198. package/src/screens/chat-detail/legend/LegendChatScrollToBottom.tsx +56 -0
  199. package/src/screens/chat-detail/legend/message-types.tsx +304 -0
  200. package/src/screens/chat-detail/messages/ChatMessageBubble.tsx +0 -1
  201. package/src/screens/chat-detail/types.ts +45 -7
  202. package/src/services/apis.ts +1 -1
  203. package/src/services/endpoints.ts +5 -0
  204. package/src/store/conversation.ts +1 -1
  205. package/src/store/message.ts +44 -0
  206. package/src/translation/resources/i18n.ts +6 -0
  207. package/src/types/chat.ts +31 -30
  208. package/src/types/common.ts +6 -0
  209. package/src/utils/conversation.ts +44 -17
  210. package/src/utils/legendListMessage.ts +97 -0
  211. package/src/utils/message.ts +10 -12
  212. package/src/utils/url.ts +5 -0
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ import { memo, useCallback } from 'react';
4
+ import { StyleSheet } from 'react-native';
5
+ import { KContainer, KColors, KLabel } from '@droppii/libs';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const LegendChatScrollToBottom = /*#__PURE__*/memo(({
8
+ listRef
9
+ }) => {
10
+ const handlePress = useCallback(() => {
11
+ listRef.current?.scrollToEnd({
12
+ animated: true
13
+ });
14
+ }, [listRef]);
15
+ return /*#__PURE__*/_jsx(KContainer.Touchable, {
16
+ onPress: handlePress,
17
+ style: styles.scrollToBottom,
18
+ activeOpacity: 0.7,
19
+ children: /*#__PURE__*/_jsx(KContainer.View, {
20
+ style: styles.scrollToBottomContent,
21
+ children: /*#__PURE__*/_jsx(KLabel.Text, {
22
+ style: styles.arrowDown,
23
+ children: "\u2193"
24
+ })
25
+ })
26
+ });
27
+ });
28
+ LegendChatScrollToBottom.displayName = 'LegendChatScrollToBottom';
29
+ const styles = StyleSheet.create({
30
+ scrollToBottom: {
31
+ position: 'absolute',
32
+ bottom: 20,
33
+ right: 16,
34
+ zIndex: 999
35
+ },
36
+ scrollToBottomContent: {
37
+ backgroundColor: KColors.white,
38
+ width: 32,
39
+ height: 32,
40
+ borderRadius: 16,
41
+ shadowColor: KColors.black,
42
+ shadowOffset: {
43
+ width: 0,
44
+ height: 1
45
+ },
46
+ shadowOpacity: 0.16,
47
+ shadowRadius: 8,
48
+ elevation: 8,
49
+ justifyContent: 'center',
50
+ alignItems: 'center'
51
+ },
52
+ arrowDown: {
53
+ fontSize: 16,
54
+ fontWeight: 'bold',
55
+ color: KColors.palette.primary.w400
56
+ }
57
+ });
58
+ //# sourceMappingURL=LegendChatScrollToBottom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","StyleSheet","KContainer","KColors","KLabel","jsx","_jsx","LegendChatScrollToBottom","listRef","handlePress","current","scrollToEnd","animated","Touchable","onPress","style","styles","scrollToBottom","activeOpacity","children","View","scrollToBottomContent","Text","arrowDown","displayName","create","position","bottom","right","zIndex","backgroundColor","white","width","height","borderRadius","shadowColor","black","shadowOffset","shadowOpacity","shadowRadius","elevation","justifyContent","alignItems","fontSize","fontWeight","color","palette","primary","w400"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/LegendChatScrollToBottom.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,QAAQ,OAAO;AACzC,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,UAAU,EAAEC,OAAO,EAAEC,MAAM,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAM5D,OAAO,MAAMC,wBAAwB,gBAAGR,IAAI,CAC1C,CAAC;EAAES;AAAuC,CAAC,KAAK;EAC9C,MAAMC,WAAW,GAAGT,WAAW,CAAC,MAAM;IACpCQ,OAAO,CAACE,OAAO,EAAEC,WAAW,CAAC;MAAEC,QAAQ,EAAE;IAAK,CAAC,CAAC;EAClD,CAAC,EAAE,CAACJ,OAAO,CAAC,CAAC;EAEb,oBACEF,IAAA,CAACJ,UAAU,CAACW,SAAS;IACnBC,OAAO,EAAEL,WAAY;IACrBM,KAAK,EAAEC,MAAM,CAACC,cAAe;IAC7BC,aAAa,EAAE,GAAI;IAAAC,QAAA,eAEnBb,IAAA,CAACJ,UAAU,CAACkB,IAAI;MAACL,KAAK,EAAEC,MAAM,CAACK,qBAAsB;MAAAF,QAAA,eACnDb,IAAA,CAACF,MAAM,CAACkB,IAAI;QAACP,KAAK,EAAEC,MAAM,CAACO,SAAU;QAAAJ,QAAA,EAAC;MAAC,CAAa;IAAC,CACtC;EAAC,CACE,CAAC;AAE3B,CACF,CAAC;AAEDZ,wBAAwB,CAACiB,WAAW,GAAG,0BAA0B;AAEjE,MAAMR,MAAM,GAAGf,UAAU,CAACwB,MAAM,CAAC;EAC/BR,cAAc,EAAE;IACdS,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,EAAE;IACVC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAC;EACDR,qBAAqB,EAAE;IACrBS,eAAe,EAAE3B,OAAO,CAAC4B,KAAK;IAC9BC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAEhC,OAAO,CAACiC,KAAK;IAC1BC,YAAY,EAAE;MAAEL,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCK,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE,CAAC;IACZC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE;EACd,CAAC;EACDnB,SAAS,EAAE;IACToB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE1C,OAAO,CAAC2C,OAAO,CAACC,OAAO,CAACC;EACjC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+
3
+ import { memo } from 'react';
4
+ import { Linking, StyleSheet, Text } from 'react-native';
5
+ import { KContainer, KImage, KLabel, KColors, KSpacingValue } from '@droppii/libs';
6
+ import { getMessageText } from "../../../utils/legendListMessage.js";
7
+ import { CHAT_BUBBLE_COLORS } from "../constants.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const formatMessageTime = createdAt => {
10
+ const date = new Date(createdAt);
11
+ if (Number.isNaN(date.getTime())) return '';
12
+ return date.toLocaleTimeString('vi-VN', {
13
+ hour: '2-digit',
14
+ minute: '2-digit',
15
+ hour12: false
16
+ });
17
+ };
18
+
19
+ // Text Message Component
20
+ export const LegendTextMessage = /*#__PURE__*/memo(({
21
+ message,
22
+ isOutgoing,
23
+ createdAtTime
24
+ }) => {
25
+ const messageText = getMessageText(message);
26
+ const timeLabel = formatMessageTime(createdAtTime);
27
+ if (!messageText?.trim()) {
28
+ return null;
29
+ }
30
+ return /*#__PURE__*/_jsxs(KContainer.View, {
31
+ style: styles.wrapper,
32
+ children: [/*#__PURE__*/_jsx(KContainer.View, {
33
+ style: [styles.bubble, isOutgoing ? styles.bubbleSent : styles.bubbleReceived],
34
+ children: /*#__PURE__*/_jsx(KLabel.Text, {
35
+ typo: "TextMdNormal",
36
+ color: CHAT_BUBBLE_COLORS.text,
37
+ children: messageText
38
+ })
39
+ }), !isOutgoing && timeLabel ? /*#__PURE__*/_jsx(KLabel.Text, {
40
+ typo: "TextXsNormal",
41
+ color: CHAT_BUBBLE_COLORS.timestamp,
42
+ marginL: "0.25rem",
43
+ children: timeLabel
44
+ }) : null]
45
+ });
46
+ });
47
+ LegendTextMessage.displayName = 'LegendTextMessage';
48
+
49
+ // Image Message Component (placeholder)
50
+ export const LegendImageMessage = /*#__PURE__*/memo(({
51
+ isOutgoing
52
+ }) => {
53
+ return /*#__PURE__*/_jsx(KContainer.View, {
54
+ style: styles.wrapper,
55
+ children: /*#__PURE__*/_jsx(KContainer.View, {
56
+ style: [styles.bubble, isOutgoing ? styles.bubbleSent : styles.bubbleReceived],
57
+ children: /*#__PURE__*/_jsx(KLabel.Text, {
58
+ typo: "TextSmNormal",
59
+ color: CHAT_BUBBLE_COLORS.text,
60
+ children: "[Image]"
61
+ })
62
+ })
63
+ });
64
+ });
65
+ LegendImageMessage.displayName = 'LegendImageMessage';
66
+
67
+ // Video Message Component (placeholder)
68
+ export const LegendVideoMessage = /*#__PURE__*/memo(({
69
+ isOutgoing
70
+ }) => {
71
+ return /*#__PURE__*/_jsx(KContainer.View, {
72
+ style: styles.wrapper,
73
+ children: /*#__PURE__*/_jsx(KContainer.View, {
74
+ style: [styles.bubble, isOutgoing ? styles.bubbleSent : styles.bubbleReceived],
75
+ children: /*#__PURE__*/_jsx(KLabel.Text, {
76
+ typo: "TextSmNormal",
77
+ color: CHAT_BUBBLE_COLORS.text,
78
+ children: "[Video]"
79
+ })
80
+ })
81
+ });
82
+ });
83
+ LegendVideoMessage.displayName = 'LegendVideoMessage';
84
+
85
+ // File Message Component
86
+ export const LegendFileMessage = /*#__PURE__*/memo(({
87
+ message,
88
+ isOutgoing
89
+ }) => {
90
+ const fileName = message.fileElem?.fileName || message.content || '[File]';
91
+ return /*#__PURE__*/_jsx(KContainer.View, {
92
+ style: styles.wrapper,
93
+ children: /*#__PURE__*/_jsx(KContainer.View, {
94
+ style: [styles.bubble, isOutgoing ? styles.bubbleSent : styles.bubbleReceived],
95
+ children: /*#__PURE__*/_jsxs(KLabel.Text, {
96
+ typo: "TextSmNormal",
97
+ color: CHAT_BUBBLE_COLORS.text,
98
+ children: ["\uD83D\uDCCE ", fileName]
99
+ })
100
+ })
101
+ });
102
+ });
103
+ LegendFileMessage.displayName = 'LegendFileMessage';
104
+
105
+ // Link Message Component
106
+ const parseUrlMetadata = ex => {
107
+ if (!ex) return undefined;
108
+ try {
109
+ return JSON.parse(ex).urlMetadata;
110
+ } catch {
111
+ return undefined;
112
+ }
113
+ };
114
+ const renderTextWithLinks = (content, urls) => {
115
+ if (!urls.length) {
116
+ return /*#__PURE__*/_jsx(KLabel.Text, {
117
+ typo: "TextMdNormal",
118
+ color: CHAT_BUBBLE_COLORS.text,
119
+ children: content
120
+ });
121
+ }
122
+ const parts = [];
123
+ let remaining = content;
124
+ for (const url of urls) {
125
+ const idx = remaining.indexOf(url);
126
+ if (idx === -1) continue;
127
+ if (idx > 0) parts.push({
128
+ text: remaining.slice(0, idx),
129
+ isUrl: false
130
+ });
131
+ parts.push({
132
+ text: url,
133
+ isUrl: true
134
+ });
135
+ remaining = remaining.slice(idx + url.length);
136
+ }
137
+ if (remaining) parts.push({
138
+ text: remaining,
139
+ isUrl: false
140
+ });
141
+ return /*#__PURE__*/_jsx(KLabel.Text, {
142
+ typo: "TextMdNormal",
143
+ color: CHAT_BUBBLE_COLORS.text,
144
+ children: parts.map((part, i) => part.isUrl ? /*#__PURE__*/_jsx(Text, {
145
+ style: styles.urlText,
146
+ onPress: () => Linking.openURL(part.text),
147
+ children: part.text
148
+ }, i) : /*#__PURE__*/_jsx(Text, {
149
+ children: part.text
150
+ }, i))
151
+ });
152
+ };
153
+ export const LegendLinkMessage = /*#__PURE__*/memo(({
154
+ message,
155
+ isOutgoing,
156
+ createdAtTime
157
+ }) => {
158
+ const content = message?.urlTextElem?.content;
159
+ const urls = message?.urlTextElem?.urls ?? [];
160
+ const metadata = parseUrlMetadata(message.ex);
161
+ const timeLabel = formatMessageTime(createdAtTime);
162
+ return /*#__PURE__*/_jsxs(KContainer.View, {
163
+ style: styles.wrapper,
164
+ children: [/*#__PURE__*/_jsxs(KContainer.View, {
165
+ style: [styles.bubble, isOutgoing ? styles.bubbleSent : styles.bubbleReceived],
166
+ children: [!!content?.trim() && /*#__PURE__*/_jsx(KContainer.View, {
167
+ style: styles.textRow,
168
+ children: renderTextWithLinks(content, urls)
169
+ }), metadata && /*#__PURE__*/_jsxs(KContainer.Touchable, {
170
+ style: styles.card,
171
+ onPress: () => metadata.url && Linking.openURL(metadata.url),
172
+ children: [!!metadata.image && /*#__PURE__*/_jsx(KImage.Base, {
173
+ uri: metadata.image,
174
+ style: styles.cardThumb,
175
+ resizeMode: "cover"
176
+ }), /*#__PURE__*/_jsxs(KContainer.View, {
177
+ style: styles.cardBody,
178
+ children: [!!metadata.title && /*#__PURE__*/_jsx(KLabel.Text, {
179
+ typo: "TextNmMedium",
180
+ color: KColors.palette.gray.w900,
181
+ numberOfLines: 1,
182
+ children: metadata.title
183
+ }), !!metadata.url && /*#__PURE__*/_jsx(KLabel.Text, {
184
+ typo: "TextXsMedium",
185
+ color: KColors.palette.primary.w400,
186
+ numberOfLines: 1,
187
+ children: metadata.url
188
+ }), !!metadata.description && /*#__PURE__*/_jsx(KLabel.Text, {
189
+ typo: "TextXsNormal",
190
+ color: KColors.gray.normal,
191
+ numberOfLines: 2,
192
+ children: metadata.description
193
+ })]
194
+ })]
195
+ })]
196
+ }), !isOutgoing && timeLabel ? /*#__PURE__*/_jsx(KLabel.Text, {
197
+ typo: "TextXsNormal",
198
+ color: CHAT_BUBBLE_COLORS.timestamp,
199
+ marginL: "0.25rem",
200
+ children: timeLabel
201
+ }) : null]
202
+ });
203
+ });
204
+ LegendLinkMessage.displayName = 'LegendLinkMessage';
205
+ const styles = StyleSheet.create({
206
+ wrapper: {
207
+ maxWidth: '80%'
208
+ },
209
+ bubble: {
210
+ paddingHorizontal: KSpacingValue['0.75rem'],
211
+ paddingVertical: KSpacingValue['0.5rem'],
212
+ borderRadius: KSpacingValue['1.25rem']
213
+ },
214
+ bubbleReceived: {
215
+ backgroundColor: CHAT_BUBBLE_COLORS.received
216
+ },
217
+ bubbleSent: {
218
+ backgroundColor: CHAT_BUBBLE_COLORS.sent
219
+ },
220
+ textRow: {
221
+ paddingHorizontal: KSpacingValue['0.25rem']
222
+ },
223
+ urlText: {
224
+ color: KColors.palette.primary.w400,
225
+ fontWeight: '500'
226
+ },
227
+ card: {
228
+ borderRadius: KSpacingValue['0.75rem'],
229
+ borderWidth: 1,
230
+ borderColor: 'rgba(57,62,64,0.1)',
231
+ backgroundColor: KColors.white,
232
+ overflow: 'hidden'
233
+ },
234
+ cardThumb: {
235
+ width: '100%',
236
+ aspectRatio: 16 / 9
237
+ },
238
+ cardBody: {
239
+ paddingHorizontal: KSpacingValue['0.75rem'],
240
+ paddingVertical: KSpacingValue['0.5rem'],
241
+ gap: 2
242
+ }
243
+ });
244
+ //# sourceMappingURL=message-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","Linking","StyleSheet","Text","KContainer","KImage","KLabel","KColors","KSpacingValue","getMessageText","CHAT_BUBBLE_COLORS","jsx","_jsx","jsxs","_jsxs","formatMessageTime","createdAt","date","Date","Number","isNaN","getTime","toLocaleTimeString","hour","minute","hour12","LegendTextMessage","message","isOutgoing","createdAtTime","messageText","timeLabel","trim","View","style","styles","wrapper","children","bubble","bubbleSent","bubbleReceived","typo","color","text","timestamp","marginL","displayName","LegendImageMessage","LegendVideoMessage","LegendFileMessage","fileName","fileElem","content","parseUrlMetadata","ex","undefined","JSON","parse","urlMetadata","renderTextWithLinks","urls","length","parts","remaining","url","idx","indexOf","push","slice","isUrl","map","part","i","urlText","onPress","openURL","LegendLinkMessage","urlTextElem","metadata","textRow","Touchable","card","image","Base","uri","cardThumb","resizeMode","cardBody","title","palette","gray","w900","numberOfLines","primary","w400","description","normal","create","maxWidth","paddingHorizontal","paddingVertical","borderRadius","backgroundColor","received","sent","fontWeight","borderWidth","borderColor","white","overflow","width","aspectRatio","gap"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/message-types.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["memo","DChatMessageType","ChatTextBubble","jsx","_jsx","getMessageRenderers","Text","ChatMessageBubble","message","position","Renderer","messageType","displayName"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/messages/ChatMessageBubble.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,gBAAgB,QAAQ,2BAAwB;AACzD,SAASC,cAAc,QAAQ,sBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGnD,MAAMC,mBAAmB,GAAGA,CAAA,MAEtB;EACJ,CAACJ,gBAAgB,CAACK,IAAI,GAAGJ;AAC3B,CAAC,CAAC;AAEF,OAAO,MAAMK,iBAAiB,gBAAGP,IAAI,CACnC,CAAC;EAAEQ,OAAO;EAAEC;AAAiC,CAAC,KAAK;EACjD,MAAMC,QAAQ,GAAGL,mBAAmB,CAAC,CAAC,CAACG,OAAO,CAACG,WAAW,CAAC;EAE3D,IAAI,CAACD,QAAQ,EAAE;IACb,OAAO,IAAI;EACb;EAEA,oBAAON,IAAA,CAACM,QAAQ;IAACF,OAAO,EAAEA,OAAQ;IAACC,QAAQ,EAAEA;EAAS,CAAE,CAAC;AAC3D,CACF,CAAC;AAEDF,iBAAiB,CAACK,WAAW,GAAG,mBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["memo","DChatMessageType","ChatTextBubble","jsx","_jsx","getMessageRenderers","Text","ChatMessageBubble","message","position","Renderer","messageType","displayName"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/messages/ChatMessageBubble.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,gBAAgB,QAAQ,2BAAwB;AACzD,SAASC,cAAc,QAAQ,sBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGnD,MAAMC,mBAAmB,GAAGA,CAAA,MAEtB;EACJ,CAACJ,gBAAgB,CAACK,IAAI,GAAGJ;AAC3B,CAAC,CAAC;AAEF,OAAO,MAAMK,iBAAiB,gBAAGP,IAAI,CACnC,CAAC;EAAEQ,OAAO;EAAEC;AAAiC,CAAC,KAAK;EACjD,MAAMC,QAAQ,GAAGL,mBAAmB,CAAC,CAAC,CAACG,OAAO,CAACG,WAAW,CAAC;EAC3D,IAAI,CAACD,QAAQ,EAAE;IACb,OAAO,IAAI;EACb;EAEA,oBAAON,IAAA,CAACM,QAAQ;IAACF,OAAO,EAAEA,OAAQ;IAACC,QAAQ,EAAEA;EAAS,CAAE,CAAC;AAC3D,CACF,CAAC;AAEDF,iBAAiB,CAACK,WAAW,GAAG,mBAAmB","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import OpenIMSDK, { LoginStatus } from '@droppii/openim-rn-client-sdk';
4
4
  import { Platform } from 'react-native';
5
5
  import { useConversationStore } from "../store/index.js";
6
- let apiInstance = null;
6
+ export let apiInstance = null;
7
7
  export let ChatAPI;
8
8
  (function (_ChatAPI) {
9
9
  function initApiInstance(api) {
@@ -1 +1 @@
1
- {"version":3,"names":["OpenIMSDK","LoginStatus","Platform","useConversationStore","apiInstance","ChatAPI","_ChatAPI","initApiInstance","api","getLoginStatus","operationID","Logged","login","instance","isLoggedIn","response","post","OS","toUpperCase","token","data","userID","id","logout","getState","reset","getUser","getSelfUserInfo","queryConversations","params","Error"],"sourceRoot":"../../../src","sources":["services/apis.ts"],"mappings":";;AAKA,OAAOA,SAAS,IAAIC,WAAW,QAAQ,+BAA+B;AAEtE,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,oBAAoB,QAAQ,mBAAU;AAE/C,IAAIC,WAAiC,GAAG,IAAI;AAAC,WAE5BC,OAAO;AAAA,WAAAC,QAAA;EACf,SAASC,eAAeA,CAACC,GAAkB,EAAQ;IACxDJ,WAAW,GAAGI,GAAG;EACnB;EAACF,QAAA,CAAAC,eAAA,GAAAA,eAAA;EAEM,MAAME,cAAc,GAAAH,QAAA,CAAAG,cAAA,GAAG,MAAOC,WAAoB,IAAK;IAC5D,OAAO,CAAC,MAAMV,SAAS,CAACS,cAAc,CAACC,WAAW,CAAC,MAAMT,WAAW,CAACU,MAAM;EAC7E,CAAC;EAEM,MAAMC,KAAK,GAAAN,QAAA,CAAAM,KAAA,GAAG,OACnBC,QAAuB,EACvBH,WAAoB,KACjB;IACH,MAAMI,UAAU,GAAG,MAAML,cAAc,CAACC,WAAW,CAAC;IAEpD,IAAII,UAAU,EAAE;IAEhB,MAAMC,QAAQ,GAAG,MAAMF,QAAQ,CAACG,IAAI,CAClC,wCAAwCd,QAAQ,CAACe,EAAE,CAACC,WAAW,CAAC,CAAC,EACnE,CAAC;IAED,MAAMC,KAAK,GAAGJ,QAAQ,EAAEK,IAAI,EAAEA,IAAI;IAElC,IAAID,KAAK,IAAI,IAAI,EAAE;IAEnB,OAAOnB,SAAS,CAACY,KAAK,CAAC;MAAES,MAAM,EAAEF,KAAK,CAACG,EAAE;MAAEH,KAAK,EAAEA,KAAK,CAACA;IAAM,CAAC,CAAC;EAClE,CAAC;EAEM,MAAMI,MAAM,GAAAjB,QAAA,CAAAiB,MAAA,GAAG,MAAOb,WAAoB,IAAK;IACpDP,oBAAoB,CAACqB,QAAQ,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;IACvC,OAAOzB,SAAS,CAACuB,MAAM,CAACb,WAAW,CAAC;EACtC,CAAC;EAEM,MAAMgB,OAAO,GAAApB,QAAA,CAAAoB,OAAA,GAAG,MAAOhB,WAAgC,IAAK;IACjE,OAAOV,SAAS,CAAC2B,eAAe,CAACjB,WAAW,CAAC;EAC/C,CAAC;EAEM,eAAekB,kBAAkBA,CAACC,MAAgC,EAAE;IACzE,IAAI,CAACzB,WAAW,EAAE;MAChB,MAAM,IAAI0B,KAAK,CACb,+DACF,CAAC;IACH;IACA,MAAMf,QAAQ,GAAG,MAAMX,WAAW,CAACY,IAAI,CACrC,0CAA0C,EAC1Ca,MACF,CAAC;IACD,OAAOd,QAAQ,CAACK,IAAI;EACtB;EAACd,QAAA,CAAAsB,kBAAA,GAAAA,kBAAA;AAAA,GAhDcvB,OAAO,KAAPA,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["OpenIMSDK","LoginStatus","Platform","useConversationStore","apiInstance","ChatAPI","_ChatAPI","initApiInstance","api","getLoginStatus","operationID","Logged","login","instance","isLoggedIn","response","post","OS","toUpperCase","token","data","userID","id","logout","getState","reset","getUser","getSelfUserInfo","queryConversations","params","Error"],"sourceRoot":"../../../src","sources":["services/apis.ts"],"mappings":";;AAKA,OAAOA,SAAS,IAAIC,WAAW,QAAQ,+BAA+B;AAEtE,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,oBAAoB,QAAQ,mBAAU;AAE/C,OAAO,IAAIC,WAAiC,GAAG,IAAI;AAAC,WAEnCC,OAAO;AAAA,WAAAC,QAAA;EACf,SAASC,eAAeA,CAACC,GAAkB,EAAQ;IACxDJ,WAAW,GAAGI,GAAG;EACnB;EAACF,QAAA,CAAAC,eAAA,GAAAA,eAAA;EAEM,MAAME,cAAc,GAAAH,QAAA,CAAAG,cAAA,GAAG,MAAOC,WAAoB,IAAK;IAC5D,OAAO,CAAC,MAAMV,SAAS,CAACS,cAAc,CAACC,WAAW,CAAC,MAAMT,WAAW,CAACU,MAAM;EAC7E,CAAC;EAEM,MAAMC,KAAK,GAAAN,QAAA,CAAAM,KAAA,GAAG,OACnBC,QAAuB,EACvBH,WAAoB,KACjB;IACH,MAAMI,UAAU,GAAG,MAAML,cAAc,CAACC,WAAW,CAAC;IAEpD,IAAII,UAAU,EAAE;IAEhB,MAAMC,QAAQ,GAAG,MAAMF,QAAQ,CAACG,IAAI,CAClC,wCAAwCd,QAAQ,CAACe,EAAE,CAACC,WAAW,CAAC,CAAC,EACnE,CAAC;IAED,MAAMC,KAAK,GAAGJ,QAAQ,EAAEK,IAAI,EAAEA,IAAI;IAElC,IAAID,KAAK,IAAI,IAAI,EAAE;IAEnB,OAAOnB,SAAS,CAACY,KAAK,CAAC;MAAES,MAAM,EAAEF,KAAK,CAACG,EAAE;MAAEH,KAAK,EAAEA,KAAK,CAACA;IAAM,CAAC,CAAC;EAClE,CAAC;EAEM,MAAMI,MAAM,GAAAjB,QAAA,CAAAiB,MAAA,GAAG,MAAOb,WAAoB,IAAK;IACpDP,oBAAoB,CAACqB,QAAQ,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;IACvC,OAAOzB,SAAS,CAACuB,MAAM,CAACb,WAAW,CAAC;EACtC,CAAC;EAEM,MAAMgB,OAAO,GAAApB,QAAA,CAAAoB,OAAA,GAAG,MAAOhB,WAAgC,IAAK;IACjE,OAAOV,SAAS,CAAC2B,eAAe,CAACjB,WAAW,CAAC;EAC/C,CAAC;EAEM,eAAekB,kBAAkBA,CAACC,MAAgC,EAAE;IACzE,IAAI,CAACzB,WAAW,EAAE;MAChB,MAAM,IAAI0B,KAAK,CACb,+DACF,CAAC;IACH;IACA,MAAMf,QAAQ,GAAG,MAAMX,WAAW,CAACY,IAAI,CACrC,0CAA0C,EAC1Ca,MACF,CAAC;IACD,OAAOd,QAAQ,CAACK,IAAI;EACtB;EAACd,QAAA,CAAAsB,kBAAA,GAAAA,kBAAA;AAAA,GAhDcvB,OAAO,KAAPA,OAAO","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ export const ENDPOINTS = {
4
+ chatService: {
5
+ urlMetadata: '/chat-service/v1/utils/url-metadata'
6
+ }
7
+ };
8
+ //# sourceMappingURL=endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ENDPOINTS","chatService","urlMetadata"],"sourceRoot":"../../../src","sources":["services/endpoints.ts"],"mappings":";;AAAA,OAAO,MAAMA,SAAS,GAAG;EACvBC,WAAW,EAAE;IACXC,WAAW,EAAE;EACf;AACF,CAAC","ignoreList":[]}
@@ -18,7 +18,7 @@ export const useConversationStore = create()((set, get) => ({
18
18
  },
19
19
  updateConversations(conversations) {
20
20
  set(sortConversation(conversations.reduce((pre, curr) => {
21
- pre[curr.conversationId] = curr;
21
+ pre[curr.conversationID] = curr;
22
22
  return pre;
23
23
  }, {
24
24
  ...get().map
@@ -1 +1 @@
1
- {"version":3,"names":["create","sortConversation","mergeOpenIMIntoConversation","useConversationStore","set","get","list","map","newConversationSignal","setCurrentConversation","id","currentConversationId","getCurrentConversation","updateConversations","conversations","reduce","pre","curr","conversationId","mergeOpenIMConversations","currentMap","hasUnknown","changed","nextMap","openim","existing","conversationID","s","removeConversation","newMap","filter","item","updateLastMessage","message","conversation","lastMessage","reset","undefined","useConversation","state"],"sourceRoot":"../../../src","sources":["store/conversation.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["create","sortConversation","mergeOpenIMIntoConversation","useConversationStore","set","get","list","map","newConversationSignal","setCurrentConversation","id","currentConversationId","getCurrentConversation","updateConversations","conversations","reduce","pre","curr","conversationID","mergeOpenIMConversations","currentMap","hasUnknown","changed","nextMap","openim","existing","s","removeConversation","newMap","filter","item","updateLastMessage","message","conversation","lastMessage","reset","undefined","useConversation","state"],"sourceRoot":"../../../src","sources":["store/conversation.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ import { create } from 'zustand';
4
+ import { mergeMessages } from "../utils/message.js";
5
+ export const useMessageStore = create()((set, get) => ({
6
+ messages: [],
7
+ hasMoreEarlier: false,
8
+ hasMoreNewer: false,
9
+ setMessages: (messages, hasMore) => {
10
+ set({
11
+ messages,
12
+ hasMoreEarlier: hasMore
13
+ });
14
+ },
15
+ pushNewMessage: message => {
16
+ set(state => ({
17
+ messages: mergeMessages(state.messages, [message])
18
+ }));
19
+ },
20
+ updateOneMessage: message => {
21
+ const tmpList = [...get().messages];
22
+ const idx = tmpList.findIndex(msg => msg.clientMsgID === message.clientMsgID);
23
+ if (idx < 0) return;
24
+ tmpList[idx] = {
25
+ ...tmpList[idx],
26
+ ...message
27
+ };
28
+ set({
29
+ messages: tmpList
30
+ });
31
+ },
32
+ deleteOneMessage: clientMsgID => {
33
+ set(state => ({
34
+ messages: state.messages.filter(msg => msg.clientMsgID !== clientMsgID)
35
+ }));
36
+ },
37
+ reset: () => {
38
+ set({
39
+ messages: [],
40
+ hasMoreEarlier: false,
41
+ hasMoreNewer: false
42
+ });
43
+ }
44
+ }));
45
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["create","mergeMessages","useMessageStore","set","get","messages","hasMoreEarlier","hasMoreNewer","setMessages","hasMore","pushNewMessage","message","state","updateOneMessage","tmpList","idx","findIndex","msg","clientMsgID","deleteOneMessage","filter","reset"],"sourceRoot":"../../../src","sources":["store/message.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,SAAS;AAGhC,SAASC,aAAa,QAAQ,qBAAkB;AAEhD,OAAO,MAAMC,eAAe,GAAGF,MAAM,CAAe,CAAC,CAAC,CAACG,GAAG,EAAEC,GAAG,MAAM;EACnEC,QAAQ,EAAE,EAAE;EACZC,cAAc,EAAE,KAAK;EACrBC,YAAY,EAAE,KAAK;EAEnBC,WAAW,EAAEA,CAACH,QAAQ,EAAEI,OAAO,KAAK;IAClCN,GAAG,CAAC;MAAEE,QAAQ;MAAEC,cAAc,EAAEG;IAAQ,CAAC,CAAC;EAC5C,CAAC;EAEDC,cAAc,EAAGC,OAAoB,IAAK;IACxCR,GAAG,CAAES,KAAK,KAAM;MACdP,QAAQ,EAAEJ,aAAa,CAACW,KAAK,CAACP,QAAQ,EAAE,CAACM,OAAO,CAAiB;IACnE,CAAC,CAAC,CAAC;EACL,CAAC;EAEDE,gBAAgB,EAAGF,OAAoB,IAAK;IAC1C,MAAMG,OAAO,GAAG,CAAC,GAAGV,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC;IACnC,MAAMU,GAAG,GAAGD,OAAO,CAACE,SAAS,CAC1BC,GAAG,IAAKA,GAAG,CAACC,WAAW,KAAKP,OAAO,CAACO,WACvC,CAAC;IACD,IAAIH,GAAG,GAAG,CAAC,EAAE;IACbD,OAAO,CAACC,GAAG,CAAC,GAAG;MAAE,GAAGD,OAAO,CAACC,GAAG,CAAE;MAAE,GAAGJ;IAAQ,CAAiB;IAC/DR,GAAG,CAAC;MAAEE,QAAQ,EAAES;IAAQ,CAAC,CAAC;EAC5B,CAAC;EAEDK,gBAAgB,EAAGD,WAAmB,IAAK;IACzCf,GAAG,CAAES,KAAK,KAAM;MACdP,QAAQ,EAAEO,KAAK,CAACP,QAAQ,CAACe,MAAM,CAAEH,GAAG,IAAKA,GAAG,CAACC,WAAW,KAAKA,WAAW;IAC1E,CAAC,CAAC,CAAC;EACL,CAAC;EAEDG,KAAK,EAAEA,CAAA,KAAM;IACXlB,GAAG,CAAC;MACFE,QAAQ,EAAE,EAAE;MACZC,cAAc,EAAE,KAAK;MACrBC,YAAY,EAAE;IAChB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC,CAAC","ignoreList":[]}
@@ -2,7 +2,13 @@
2
2
 
3
3
  const i18nKey = {
4
4
  thread_card_bot_crm_name: 'Droppii Hỗ Trợ',
5
- thread_card_fallback_name: 'Người dùng'
5
+ thread_card_fallback_name: 'Người dùng',
6
+ msg_type_image: '[Hình ảnh]',
7
+ msg_type_voice: '[Tin nhắn thoại]',
8
+ msg_type_video: '[Video]',
9
+ msg_type_file: '[File đính kèm]',
10
+ msg_type_link: '[Liên kết]',
11
+ msg_type_revoke: 'Đã thu hồi tin nhắn'
6
12
  };
7
13
  export default {
8
14
  vi: i18nKey
@@ -1 +1 @@
1
- {"version":3,"names":["i18nKey","thread_card_bot_crm_name","thread_card_fallback_name","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":";;AAAA,MAAMA,OAA+B,GAAG;EACtCC,wBAAwB,EAAE,gBAAgB;EAC1CC,yBAAyB,EAAE;AAC7B,CAAC;AAED,eAAe;EACbC,EAAE,EAAEH;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["i18nKey","thread_card_bot_crm_name","thread_card_fallback_name","msg_type_image","msg_type_voice","msg_type_video","msg_type_file","msg_type_link","msg_type_revoke","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":";;AAAA,MAAMA,OAA+B,GAAG;EACtCC,wBAAwB,EAAE,gBAAgB;EAC1CC,yBAAyB,EAAE,YAAY;EACvCC,cAAc,EAAE,YAAY;EAC5BC,cAAc,EAAE,kBAAkB;EAClCC,cAAc,EAAE,SAAS;EACzBC,aAAa,EAAE,iBAAiB;EAChCC,aAAa,EAAE,YAAY;EAC3BC,eAAe,EAAE;AACnB,CAAC;AAED,eAAe;EACbC,EAAE,EAAET;AACN,CAAC","ignoreList":[]}
@@ -6,8 +6,8 @@ export const EventProvider = {
6
6
  netcore: 'netcore'
7
7
  };
8
8
  export let DChatApplicationType = /*#__PURE__*/function (DChatApplicationType) {
9
- DChatApplicationType["BIZ"] = "BIZ";
10
- DChatApplicationType["MALL"] = "MALL";
9
+ DChatApplicationType["DROPPII"] = "DROPPII";
10
+ DChatApplicationType["OBEFE"] = "OBEFE";
11
11
  return DChatApplicationType;
12
12
  }({});
13
13
  export let DChatCategory = /*#__PURE__*/function (DChatCategory) {
@@ -18,11 +18,6 @@ export let DChatCategory = /*#__PURE__*/function (DChatCategory) {
18
18
  DChatCategory["BIZ_BOT_CRM"] = "BIZ_BOT_CRM";
19
19
  return DChatCategory;
20
20
  }({});
21
- export let DChatType = /*#__PURE__*/function (DChatType) {
22
- DChatType["SINGLE"] = "SINGLE";
23
- DChatType["GROUP"] = "GROUP";
24
- return DChatType;
25
- }({});
26
21
  export let DMemberRole = /*#__PURE__*/function (DMemberRole) {
27
22
  DMemberRole["AGENT"] = "AGENT";
28
23
  DMemberRole["MEMBER"] = "MEMBER";
@@ -1 +1 @@
1
- {"version":3,"names":["EventProvider","ga","appsflyer","netcore","DChatApplicationType","DChatCategory","DChatType","DMemberRole"],"sourceRoot":"../../../src","sources":["types/chat.ts"],"mappings":";;AAQA,OAAO,MAAMA,aAAa,GAAG;EAC3BC,EAAE,EAAE,IAAI;EACRC,SAAS,EAAE,WAAW;EACtBC,OAAO,EAAE;AACX,CAAU;AAiBV,WAAYC,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAKhC,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAQzB,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAKrB,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["EventProvider","ga","appsflyer","netcore","DChatApplicationType","DChatCategory","DMemberRole"],"sourceRoot":"../../../src","sources":["types/chat.ts"],"mappings":";;AAQA,OAAO,MAAMA,aAAa,GAAG;EAC3BC,EAAE,EAAE,IAAI;EACRC,SAAS,EAAE,WAAW;EACtBC,OAAO,EAAE;AACX,CAAU;AAkBV,WAAYC,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAKhC,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAQzB,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/common.ts"],"mappings":"","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import { SessionType } from '@droppii/openim-rn-client-sdk';
3
+ import { MessageType, SessionType } from '@droppii/openim-rn-client-sdk';
4
+ import { trans } from "../translation/index.js";
4
5
  export const conversationCompare = (a, b) => {
5
6
  if (a.isPinned !== b.isPinned) return a.isPinned ? -1 : 1;
6
7
  const aCompare = a.draftTextTime > a.latestMsgSendTime ? a.draftTextTime : a.latestMsgSendTime;
@@ -8,30 +9,28 @@ export const conversationCompare = (a, b) => {
8
9
  return bCompare - aCompare;
9
10
  };
10
11
  export const dConversationCompare = (a, b) => {
11
- const aIsPinned = a.pinnedAt != null;
12
- const bIsPinned = b.pinnedAt != null;
13
- if (aIsPinned !== bIsPinned) return aIsPinned ? -1 : 1;
14
- const aCreateTime = a.lastMessage?.createTime ?? 0;
15
- const bCreateTime = b.lastMessage?.createTime ?? 0;
16
- return bCreateTime - aCreateTime;
12
+ if (a.isPinned !== b.isPinned) return a.isPinned ? -1 : 1;
13
+ const aTime = a.draftTextTime > a.latestMsgSendTime ? a.draftTextTime : a.latestMsgSendTime;
14
+ const bTime = b.draftTextTime > b.latestMsgSendTime ? b.draftTextTime : b.latestMsgSendTime;
15
+ return bTime - aTime;
17
16
  };
18
- export const mergeOpenIMIntoConversation = (droppii, openim) => {
19
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
+ export const mergeOpenIMIntoConversation = (existing, openim) => {
20
18
  const {
21
19
  latestMsg,
22
- conversationID,
23
20
  ...openimRest
24
21
  } = openim;
25
- let lastMessage = droppii.lastMessage;
22
+ let lastMessage = existing.lastMessage;
26
23
  if (latestMsg) {
27
24
  try {
28
25
  lastMessage = JSON.parse(latestMsg);
29
26
  } catch {
30
- // keep droppii lastMessage if parse fails
27
+ // keep existing lastMessage if parse fails
31
28
  }
32
29
  }
30
+
31
+ // Spread existing first so peerType (not in ConversationItem) is preserved
33
32
  return {
34
- ...droppii,
33
+ ...existing,
35
34
  ...openimRest,
36
35
  lastMessage
37
36
  };
@@ -47,4 +46,26 @@ export const sortConversation = map => {
47
46
  list
48
47
  };
49
48
  };
49
+ export const generateContentBasedOnMessageType = (contentType, plainText) => {
50
+ switch (contentType) {
51
+ case MessageType.TextMessage:
52
+ case MessageType.QuoteMessage:
53
+ case MessageType.LogTextMessage:
54
+ return plainText || '';
55
+ case MessageType.PictureMessage:
56
+ return trans('msg_type_image');
57
+ case MessageType.VoiceMessage:
58
+ return trans('msg_type_voice');
59
+ case MessageType.VideoMessage:
60
+ return trans('msg_type_video');
61
+ case MessageType.FileMessage:
62
+ return trans('msg_type_file');
63
+ case MessageType.UrlTextMessage:
64
+ return trans('msg_type_link');
65
+ case MessageType.RevokeMessage:
66
+ return trans('revoked');
67
+ default:
68
+ return '';
69
+ }
70
+ };
50
71
  //# sourceMappingURL=conversation.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SessionType","conversationCompare","a","b","isPinned","aCompare","draftTextTime","latestMsgSendTime","bCompare","dConversationCompare","aIsPinned","pinnedAt","bIsPinned","aCreateTime","lastMessage","createTime","bCreateTime","mergeOpenIMIntoConversation","droppii","openim","latestMsg","conversationID","openimRest","JSON","parse","getConversationID","sessionType","senderID","receiverID","prefix","Single","Notification","filter","Boolean","join","sortConversation","map","list","Object","keys","sort"],"sourceRoot":"../../../src","sources":["utils/conversation.ts"],"mappings":";;AAAA,SACEA,WAAW,QAEN,+BAA+B;AAGtC,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,CAAmB,EACnBC,CAAmB,KAChB;EACH,IAAID,CAAC,CAACE,QAAQ,KAAKD,CAAC,CAACC,QAAQ,EAAE,OAAOF,CAAC,CAACE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;EAEzD,MAAMC,QAAQ,GACZH,CAAC,CAACI,aAAa,GAAGJ,CAAC,CAACK,iBAAiB,GACjCL,CAAC,CAACI,aAAa,GACfJ,CAAC,CAACK,iBAAiB;EACzB,MAAMC,QAAQ,GACZL,CAAC,CAACG,aAAa,GAAGH,CAAC,CAACI,iBAAiB,GACjCJ,CAAC,CAACG,aAAa,GACfH,CAAC,CAACI,iBAAiB;EAEzB,OAAOC,QAAQ,GAAGH,QAAQ;AAC5B,CAAC;AAED,OAAO,MAAMI,oBAAoB,GAAGA,CAClCP,CAAoB,EACpBC,CAAoB,KACjB;EACH,MAAMO,SAAS,GAAGR,CAAC,CAACS,QAAQ,IAAI,IAAI;EACpC,MAAMC,SAAS,GAAGT,CAAC,CAACQ,QAAQ,IAAI,IAAI;EAEpC,IAAID,SAAS,KAAKE,SAAS,EAAE,OAAOF,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC;EAEtD,MAAMG,WAAW,GAAGX,CAAC,CAACY,WAAW,EAAEC,UAAU,IAAI,CAAC;EAClD,MAAMC,WAAW,GAAGb,CAAC,CAACW,WAAW,EAAEC,UAAU,IAAI,CAAC;EAElD,OAAOC,WAAW,GAAGH,WAAW;AAClC,CAAC;AAED,OAAO,MAAMI,2BAA2B,GAAGA,CACzCC,OAA0B,EAC1BC,MAAwB,KACF;EACtB;EACA,MAAM;IAAEC,SAAS;IAAEC,cAAc;IAAE,GAAGC;EAAW,CAAC,GAAGH,MAAM;EAE3D,IAAIL,WAAqC,GAAGI,OAAO,CAACJ,WAAW;EAC/D,IAAIM,SAAS,EAAE;IACb,IAAI;MACFN,WAAW,GAAGS,IAAI,CAACC,KAAK,CAACJ,SAAS,CAAiB;IACrD,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EAEA,OAAO;IACL,GAAGF,OAAO;IACV,GAAGI,UAAU;IACbR;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMW,iBAAiB,GAAGA,CAC/BC,WAAwB,EACxBC,QAAiB,EACjBC,UAAmB,KAChB;EACH,MAAMC,MAAM,GACVH,WAAW,KAAK1B,WAAW,CAAC8B,MAAM,GAC9B,IAAI,GACJJ,WAAW,KAAK1B,WAAW,CAAC+B,YAAY,GACtC,IAAI,GACJ,IAAI;EAEZ,OAAO,CAACF,MAAM,EAAEF,QAAQ,EAAEC,UAAU,CAAC,CAACI,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIC,GAAsC,IAAK;EAC1E,MAAMC,IAAI,GAAGC,MAAM,CAACC,IAAI,CAACH,GAAG,CAAC,CAACI,IAAI,CAAC,CAACtC,CAAC,EAAEC,CAAC,KACtCM,oBAAoB,CAAC2B,GAAG,CAAClC,CAAC,CAAC,EAAGkC,GAAG,CAACjC,CAAC,CAAE,CACvC,CAAC;EACD,OAAO;IAAEiC,GAAG;IAAEC;EAAK,CAAC;AACtB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["MessageType","SessionType","trans","conversationCompare","a","b","isPinned","aCompare","draftTextTime","latestMsgSendTime","bCompare","dConversationCompare","aTime","bTime","mergeOpenIMIntoConversation","existing","openim","latestMsg","openimRest","lastMessage","JSON","parse","getConversationID","sessionType","senderID","receiverID","prefix","Single","Notification","filter","Boolean","join","sortConversation","map","list","Object","keys","sort","generateContentBasedOnMessageType","contentType","plainText","TextMessage","QuoteMessage","LogTextMessage","PictureMessage","VoiceMessage","VideoMessage","FileMessage","UrlTextMessage","RevokeMessage"],"sourceRoot":"../../../src","sources":["utils/conversation.ts"],"mappings":";;AAAA,SACEA,WAAW,EACXC,WAAW,QAEN,+BAA+B;AAEtC,SAASC,KAAK,QAAQ,yBAAgB;AAEtC,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,CAAmB,EACnBC,CAAmB,KAChB;EACH,IAAID,CAAC,CAACE,QAAQ,KAAKD,CAAC,CAACC,QAAQ,EAAE,OAAOF,CAAC,CAACE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;EAEzD,MAAMC,QAAQ,GACZH,CAAC,CAACI,aAAa,GAAGJ,CAAC,CAACK,iBAAiB,GACjCL,CAAC,CAACI,aAAa,GACfJ,CAAC,CAACK,iBAAiB;EACzB,MAAMC,QAAQ,GACZL,CAAC,CAACG,aAAa,GAAGH,CAAC,CAACI,iBAAiB,GACjCJ,CAAC,CAACG,aAAa,GACfH,CAAC,CAACI,iBAAiB;EAEzB,OAAOC,QAAQ,GAAGH,QAAQ;AAC5B,CAAC;AAED,OAAO,MAAMI,oBAAoB,GAAGA,CAClCP,CAAoB,EACpBC,CAAoB,KACjB;EACH,IAAID,CAAC,CAACE,QAAQ,KAAKD,CAAC,CAACC,QAAQ,EAAE,OAAOF,CAAC,CAACE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;EAEzD,MAAMM,KAAK,GACTR,CAAC,CAACI,aAAa,GAAGJ,CAAC,CAACK,iBAAiB,GACjCL,CAAC,CAACI,aAAa,GACfJ,CAAC,CAACK,iBAAiB;EACzB,MAAMI,KAAK,GACTR,CAAC,CAACG,aAAa,GAAGH,CAAC,CAACI,iBAAiB,GACjCJ,CAAC,CAACG,aAAa,GACfH,CAAC,CAACI,iBAAiB;EAEzB,OAAOI,KAAK,GAAGD,KAAK;AACtB,CAAC;AAED,OAAO,MAAME,2BAA2B,GAAGA,CACzCC,QAA2B,EAC3BC,MAAwB,KACF;EACtB,MAAM;IAAEC,SAAS;IAAE,GAAGC;EAAW,CAAC,GAAGF,MAAM;EAE3C,IAAIG,WAAqC,GAAGJ,QAAQ,CAACI,WAAW;EAChE,IAAIF,SAAS,EAAE;IACb,IAAI;MACFE,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACJ,SAAS,CAAiB;IACrD,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;;EAEA;EACA,OAAO;IAAE,GAAGF,QAAQ;IAAE,GAAGG,UAAU;IAAEC;EAAY,CAAC;AACpD,CAAC;AAED,OAAO,MAAMG,iBAAiB,GAAGA,CAC/BC,WAAwB,EACxBC,QAAiB,EACjBC,UAAmB,KAChB;EACH,MAAMC,MAAM,GACVH,WAAW,KAAKtB,WAAW,CAAC0B,MAAM,GAC9B,IAAI,GACJJ,WAAW,KAAKtB,WAAW,CAAC2B,YAAY,GACtC,IAAI,GACJ,IAAI;EAEZ,OAAO,CAACF,MAAM,EAAEF,QAAQ,EAAEC,UAAU,CAAC,CAACI,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIC,GAAsC,IAAK;EAC1E,MAAMC,IAAI,GAAGC,MAAM,CAACC,IAAI,CAACH,GAAG,CAAC,CAACI,IAAI,CAAC,CAACjC,CAAC,EAAEC,CAAC,KACtCM,oBAAoB,CAACsB,GAAG,CAAC7B,CAAC,CAAC,EAAG6B,GAAG,CAAC5B,CAAC,CAAE,CACvC,CAAC;EACD,OAAO;IAAE4B,GAAG;IAAEC;EAAK,CAAC;AACtB,CAAC;AAED,OAAO,MAAMI,iCAAiC,GAAGA,CAC/CC,WAAwB,EACxBC,SAAkB,KACf;EACH,QAAQD,WAAW;IACjB,KAAKvC,WAAW,CAACyC,WAAW;IAC5B,KAAKzC,WAAW,CAAC0C,YAAY;IAC7B,KAAK1C,WAAW,CAAC2C,cAAc;MAC7B,OAAOH,SAAS,IAAI,EAAE;IACxB,KAAKxC,WAAW,CAAC4C,cAAc;MAC7B,OAAO1C,KAAK,CAAC,gBAAgB,CAAC;IAChC,KAAKF,WAAW,CAAC6C,YAAY;MAC3B,OAAO3C,KAAK,CAAC,gBAAgB,CAAC;IAChC,KAAKF,WAAW,CAAC8C,YAAY;MAC3B,OAAO5C,KAAK,CAAC,gBAAgB,CAAC;IAChC,KAAKF,WAAW,CAAC+C,WAAW;MAC1B,OAAO7C,KAAK,CAAC,eAAe,CAAC;IAC/B,KAAKF,WAAW,CAACgD,cAAc;MAC7B,OAAO9C,KAAK,CAAC,eAAe,CAAC;IAC/B,KAAKF,WAAW,CAACiD,aAAa;MAC5B,OAAO/C,KAAK,CAAC,SAAS,CAAC;IACzB;MACE,OAAO,EAAE;EACb;AACF,CAAC","ignoreList":[]}