@droppii-org/chat-mobile 0.2.0

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 (294) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +101 -0
  3. package/lib/module/assets/images/icon_bot.png +0 -0
  4. package/lib/module/assets/images/index.js +9 -0
  5. package/lib/module/assets/images/index.js.map +1 -0
  6. package/lib/module/assets/images/tag_bot.png +0 -0
  7. package/lib/module/assets/images/tag_mall.png +0 -0
  8. package/lib/module/build-ignore.d.js +2 -0
  9. package/lib/module/build-ignore.d.js.map +1 -0
  10. package/lib/module/components/Avatar/Avatar.js +81 -0
  11. package/lib/module/components/Avatar/Avatar.js.map +1 -0
  12. package/lib/module/components/Avatar/Avatar.types.js +2 -0
  13. package/lib/module/components/Avatar/Avatar.types.js.map +1 -0
  14. package/lib/module/components/Avatar/Avatar.utils.js +44 -0
  15. package/lib/module/components/Avatar/Avatar.utils.js.map +1 -0
  16. package/lib/module/components/Avatar/AvatarBadge.js +28 -0
  17. package/lib/module/components/Avatar/AvatarBadge.js.map +1 -0
  18. package/lib/module/components/Avatar/DoubleAvatar.js +74 -0
  19. package/lib/module/components/Avatar/DoubleAvatar.js.map +1 -0
  20. package/lib/module/components/Avatar/SingleAvatar.js +53 -0
  21. package/lib/module/components/Avatar/SingleAvatar.js.map +1 -0
  22. package/lib/module/components/Avatar/index.js +7 -0
  23. package/lib/module/components/Avatar/index.js.map +1 -0
  24. package/lib/module/components/ThreadCard/AvatarSection.js +37 -0
  25. package/lib/module/components/ThreadCard/AvatarSection.js.map +1 -0
  26. package/lib/module/components/ThreadCard/NamePrefixIcon.js +36 -0
  27. package/lib/module/components/ThreadCard/NamePrefixIcon.js.map +1 -0
  28. package/lib/module/components/ThreadCard/ThreadCard.js +132 -0
  29. package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -0
  30. package/lib/module/components/ThreadCard/UnreadBadge.js +35 -0
  31. package/lib/module/components/ThreadCard/UnreadBadge.js.map +1 -0
  32. package/lib/module/components/ThreadCard/index.js +7 -0
  33. package/lib/module/components/ThreadCard/index.js.map +1 -0
  34. package/lib/module/components/ThreadCard/thread-card.utils.js +51 -0
  35. package/lib/module/components/ThreadCard/thread-card.utils.js.map +1 -0
  36. package/lib/module/core/index.js +11 -0
  37. package/lib/module/core/index.js.map +1 -0
  38. package/lib/module/core/useChatListener.js +62 -0
  39. package/lib/module/core/useChatListener.js.map +1 -0
  40. package/lib/module/core/useUserListener.js +72 -0
  41. package/lib/module/core/useUserListener.js.map +1 -0
  42. package/lib/module/hooks/query-keys.js +10 -0
  43. package/lib/module/hooks/query-keys.js.map +1 -0
  44. package/lib/module/hooks/useChatMessages.js +163 -0
  45. package/lib/module/hooks/useChatMessages.js.map +1 -0
  46. package/lib/module/hooks/useConversationList.js +51 -0
  47. package/lib/module/hooks/useConversationList.js.map +1 -0
  48. package/lib/module/index.js +14 -0
  49. package/lib/module/index.js.map +1 -0
  50. package/lib/module/package.json +1 -0
  51. package/lib/module/screens/chat-detail/ChatAttachmentPanel.js +106 -0
  52. package/lib/module/screens/chat-detail/ChatAttachmentPanel.js.map +1 -0
  53. package/lib/module/screens/chat-detail/ChatComposer.js +288 -0
  54. package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -0
  55. package/lib/module/screens/chat-detail/ChatDay.js +65 -0
  56. package/lib/module/screens/chat-detail/ChatDay.js.map +1 -0
  57. package/lib/module/screens/chat-detail/ChatDetail.js +104 -0
  58. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -0
  59. package/lib/module/screens/chat-detail/ChatDetailHeader.js +92 -0
  60. package/lib/module/screens/chat-detail/ChatDetailHeader.js.map +1 -0
  61. package/lib/module/screens/chat-detail/ChatList.js +145 -0
  62. package/lib/module/screens/chat-detail/ChatList.js.map +1 -0
  63. package/lib/module/screens/chat-detail/ChatLoadEarlier.js +23 -0
  64. package/lib/module/screens/chat-detail/ChatLoadEarlier.js.map +1 -0
  65. package/lib/module/screens/chat-detail/ChatQuickActions.js +85 -0
  66. package/lib/module/screens/chat-detail/ChatQuickActions.js.map +1 -0
  67. package/lib/module/screens/chat-detail/ChatScrollToBottom.js +12 -0
  68. package/lib/module/screens/chat-detail/ChatScrollToBottom.js.map +1 -0
  69. package/lib/module/screens/chat-detail/ChatTextBubble.js +62 -0
  70. package/lib/module/screens/chat-detail/ChatTextBubble.js.map +1 -0
  71. package/lib/module/screens/chat-detail/constants.js +59 -0
  72. package/lib/module/screens/chat-detail/constants.js.map +1 -0
  73. package/lib/module/screens/chat-detail/index.js +12 -0
  74. package/lib/module/screens/chat-detail/index.js.map +1 -0
  75. package/lib/module/screens/chat-detail/messages/ChatMessageBubble.js +24 -0
  76. package/lib/module/screens/chat-detail/messages/ChatMessageBubble.js.map +1 -0
  77. package/lib/module/screens/chat-detail/messages/types.js +4 -0
  78. package/lib/module/screens/chat-detail/messages/types.js.map +1 -0
  79. package/lib/module/screens/chat-detail/types.js +4 -0
  80. package/lib/module/screens/chat-detail/types.js.map +1 -0
  81. package/lib/module/screens/chat-detail/useChatActionPress.js +11 -0
  82. package/lib/module/screens/chat-detail/useChatActionPress.js.map +1 -0
  83. package/lib/module/screens/inbox/Inbox.js +134 -0
  84. package/lib/module/screens/inbox/Inbox.js.map +1 -0
  85. package/lib/module/screens/inbox/MessagesTab.js +58 -0
  86. package/lib/module/screens/inbox/MessagesTab.js.map +1 -0
  87. package/lib/module/screens/inbox/index.js +5 -0
  88. package/lib/module/screens/inbox/index.js.map +1 -0
  89. package/lib/module/services/apis.js +41 -0
  90. package/lib/module/services/apis.js.map +1 -0
  91. package/lib/module/services/index.js +5 -0
  92. package/lib/module/services/index.js.map +1 -0
  93. package/lib/module/services/message.js +38 -0
  94. package/lib/module/services/message.js.map +1 -0
  95. package/lib/module/store/conversation.js +89 -0
  96. package/lib/module/store/conversation.js.map +1 -0
  97. package/lib/module/store/index.js +6 -0
  98. package/lib/module/store/index.js.map +1 -0
  99. package/lib/module/store/storeConfig.js +19 -0
  100. package/lib/module/store/storeConfig.js.map +1 -0
  101. package/lib/module/store/user.js +25 -0
  102. package/lib/module/store/user.js.map +1 -0
  103. package/lib/module/translation/index.js +24 -0
  104. package/lib/module/translation/index.js.map +1 -0
  105. package/lib/module/translation/resources/i18n.js +10 -0
  106. package/lib/module/translation/resources/i18n.js.map +1 -0
  107. package/lib/module/types/auth.js +9 -0
  108. package/lib/module/types/auth.js.map +1 -0
  109. package/lib/module/types/chat.js +26 -0
  110. package/lib/module/types/chat.js.map +1 -0
  111. package/lib/module/types/message.js +16 -0
  112. package/lib/module/types/message.js.map +1 -0
  113. package/lib/module/utils/conversation.js +61 -0
  114. package/lib/module/utils/conversation.js.map +1 -0
  115. package/lib/module/utils/giftedChatMessage.js +90 -0
  116. package/lib/module/utils/giftedChatMessage.js.map +1 -0
  117. package/lib/module/utils/message.js +68 -0
  118. package/lib/module/utils/message.js.map +1 -0
  119. package/lib/module/utils/resolveMessageType.js +44 -0
  120. package/lib/module/utils/resolveMessageType.js.map +1 -0
  121. package/lib/typescript/package.json +1 -0
  122. package/lib/typescript/src/assets/images/index.d.ts +7 -0
  123. package/lib/typescript/src/assets/images/index.d.ts.map +1 -0
  124. package/lib/typescript/src/components/Avatar/Avatar.d.ts +4 -0
  125. package/lib/typescript/src/components/Avatar/Avatar.d.ts.map +1 -0
  126. package/lib/typescript/src/components/Avatar/Avatar.types.d.ts +18 -0
  127. package/lib/typescript/src/components/Avatar/Avatar.types.d.ts.map +1 -0
  128. package/lib/typescript/src/components/Avatar/Avatar.utils.d.ts +14 -0
  129. package/lib/typescript/src/components/Avatar/Avatar.utils.d.ts.map +1 -0
  130. package/lib/typescript/src/components/Avatar/AvatarBadge.d.ts +7 -0
  131. package/lib/typescript/src/components/Avatar/AvatarBadge.d.ts.map +1 -0
  132. package/lib/typescript/src/components/Avatar/DoubleAvatar.d.ts +13 -0
  133. package/lib/typescript/src/components/Avatar/DoubleAvatar.d.ts.map +1 -0
  134. package/lib/typescript/src/components/Avatar/SingleAvatar.d.ts +12 -0
  135. package/lib/typescript/src/components/Avatar/SingleAvatar.d.ts.map +1 -0
  136. package/lib/typescript/src/components/Avatar/index.d.ts +6 -0
  137. package/lib/typescript/src/components/Avatar/index.d.ts.map +1 -0
  138. package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts +8 -0
  139. package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts.map +1 -0
  140. package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts +8 -0
  141. package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts.map +1 -0
  142. package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts +11 -0
  143. package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -0
  144. package/lib/typescript/src/components/ThreadCard/UnreadBadge.d.ts +6 -0
  145. package/lib/typescript/src/components/ThreadCard/UnreadBadge.d.ts.map +1 -0
  146. package/lib/typescript/src/components/ThreadCard/index.d.ts +5 -0
  147. package/lib/typescript/src/components/ThreadCard/index.d.ts.map +1 -0
  148. package/lib/typescript/src/components/ThreadCard/thread-card.utils.d.ts +4 -0
  149. package/lib/typescript/src/components/ThreadCard/thread-card.utils.d.ts.map +1 -0
  150. package/lib/typescript/src/core/index.d.ts +3 -0
  151. package/lib/typescript/src/core/index.d.ts.map +1 -0
  152. package/lib/typescript/src/core/useChatListener.d.ts +2 -0
  153. package/lib/typescript/src/core/useChatListener.d.ts.map +1 -0
  154. package/lib/typescript/src/core/useUserListener.d.ts +2 -0
  155. package/lib/typescript/src/core/useUserListener.d.ts.map +1 -0
  156. package/lib/typescript/src/hooks/query-keys.d.ts +9 -0
  157. package/lib/typescript/src/hooks/query-keys.d.ts.map +1 -0
  158. package/lib/typescript/src/hooks/useChatMessages.d.ts +21 -0
  159. package/lib/typescript/src/hooks/useChatMessages.d.ts.map +1 -0
  160. package/lib/typescript/src/hooks/useConversationList.d.ts +8 -0
  161. package/lib/typescript/src/hooks/useConversationList.d.ts.map +1 -0
  162. package/lib/typescript/src/index.d.ts +14 -0
  163. package/lib/typescript/src/index.d.ts.map +1 -0
  164. package/lib/typescript/src/screens/chat-detail/ChatAttachmentPanel.d.ts +3 -0
  165. package/lib/typescript/src/screens/chat-detail/ChatAttachmentPanel.d.ts.map +1 -0
  166. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +3 -0
  167. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -0
  168. package/lib/typescript/src/screens/chat-detail/ChatDay.d.ts +3 -0
  169. package/lib/typescript/src/screens/chat-detail/ChatDay.d.ts.map +1 -0
  170. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts +4 -0
  171. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -0
  172. package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts +4 -0
  173. package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts.map +1 -0
  174. package/lib/typescript/src/screens/chat-detail/ChatList.d.ts +3 -0
  175. package/lib/typescript/src/screens/chat-detail/ChatList.d.ts.map +1 -0
  176. package/lib/typescript/src/screens/chat-detail/ChatLoadEarlier.d.ts +3 -0
  177. package/lib/typescript/src/screens/chat-detail/ChatLoadEarlier.d.ts.map +1 -0
  178. package/lib/typescript/src/screens/chat-detail/ChatQuickActions.d.ts +3 -0
  179. package/lib/typescript/src/screens/chat-detail/ChatQuickActions.d.ts.map +1 -0
  180. package/lib/typescript/src/screens/chat-detail/ChatScrollToBottom.d.ts +2 -0
  181. package/lib/typescript/src/screens/chat-detail/ChatScrollToBottom.d.ts.map +1 -0
  182. package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts +3 -0
  183. package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts.map +1 -0
  184. package/lib/typescript/src/screens/chat-detail/constants.d.ts +17 -0
  185. package/lib/typescript/src/screens/chat-detail/constants.d.ts.map +1 -0
  186. package/lib/typescript/src/screens/chat-detail/index.d.ts +13 -0
  187. package/lib/typescript/src/screens/chat-detail/index.d.ts.map +1 -0
  188. package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts +3 -0
  189. package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts.map +1 -0
  190. package/lib/typescript/src/screens/chat-detail/messages/types.d.ts +13 -0
  191. package/lib/typescript/src/screens/chat-detail/messages/types.d.ts.map +1 -0
  192. package/lib/typescript/src/screens/chat-detail/types.d.ts +86 -0
  193. package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -0
  194. package/lib/typescript/src/screens/chat-detail/useChatActionPress.d.ts +3 -0
  195. package/lib/typescript/src/screens/chat-detail/useChatActionPress.d.ts.map +1 -0
  196. package/lib/typescript/src/screens/inbox/Inbox.d.ts +10 -0
  197. package/lib/typescript/src/screens/inbox/Inbox.d.ts.map +1 -0
  198. package/lib/typescript/src/screens/inbox/MessagesTab.d.ts +7 -0
  199. package/lib/typescript/src/screens/inbox/MessagesTab.d.ts.map +1 -0
  200. package/lib/typescript/src/screens/inbox/index.d.ts +3 -0
  201. package/lib/typescript/src/screens/inbox/index.d.ts.map +1 -0
  202. package/lib/typescript/src/services/apis.d.ts +12 -0
  203. package/lib/typescript/src/services/apis.d.ts.map +1 -0
  204. package/lib/typescript/src/services/index.d.ts +3 -0
  205. package/lib/typescript/src/services/index.d.ts.map +1 -0
  206. package/lib/typescript/src/services/message.d.ts +21 -0
  207. package/lib/typescript/src/services/message.d.ts.map +1 -0
  208. package/lib/typescript/src/store/conversation.d.ts +24 -0
  209. package/lib/typescript/src/store/conversation.d.ts.map +1 -0
  210. package/lib/typescript/src/store/index.d.ts +4 -0
  211. package/lib/typescript/src/store/index.d.ts.map +1 -0
  212. package/lib/typescript/src/store/storeConfig.d.ts +4 -0
  213. package/lib/typescript/src/store/storeConfig.d.ts.map +1 -0
  214. package/lib/typescript/src/store/user.d.ts +12 -0
  215. package/lib/typescript/src/store/user.d.ts.map +1 -0
  216. package/lib/typescript/src/translation/index.d.ts +4 -0
  217. package/lib/typescript/src/translation/index.d.ts.map +1 -0
  218. package/lib/typescript/src/translation/resources/i18n.d.ts +5 -0
  219. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -0
  220. package/lib/typescript/src/types/auth.d.ts +24 -0
  221. package/lib/typescript/src/types/auth.d.ts.map +1 -0
  222. package/lib/typescript/src/types/chat.d.ts +99 -0
  223. package/lib/typescript/src/types/chat.d.ts.map +1 -0
  224. package/lib/typescript/src/types/message.d.ts +15 -0
  225. package/lib/typescript/src/types/message.d.ts.map +1 -0
  226. package/lib/typescript/src/utils/conversation.d.ts +10 -0
  227. package/lib/typescript/src/utils/conversation.d.ts.map +1 -0
  228. package/lib/typescript/src/utils/giftedChatMessage.d.ts +10 -0
  229. package/lib/typescript/src/utils/giftedChatMessage.d.ts.map +1 -0
  230. package/lib/typescript/src/utils/message.d.ts +15 -0
  231. package/lib/typescript/src/utils/message.d.ts.map +1 -0
  232. package/lib/typescript/src/utils/resolveMessageType.d.ts +4 -0
  233. package/lib/typescript/src/utils/resolveMessageType.d.ts.map +1 -0
  234. package/package.json +209 -0
  235. package/src/assets/images/icon_bot.png +0 -0
  236. package/src/assets/images/index.ts +7 -0
  237. package/src/assets/images/tag_bot.png +0 -0
  238. package/src/assets/images/tag_mall.png +0 -0
  239. package/src/build-ignore.d.ts +24 -0
  240. package/src/components/Avatar/Avatar.tsx +105 -0
  241. package/src/components/Avatar/Avatar.types.ts +17 -0
  242. package/src/components/Avatar/Avatar.utils.ts +49 -0
  243. package/src/components/Avatar/AvatarBadge.tsx +29 -0
  244. package/src/components/Avatar/DoubleAvatar.tsx +89 -0
  245. package/src/components/Avatar/SingleAvatar.tsx +74 -0
  246. package/src/components/Avatar/index.ts +5 -0
  247. package/src/components/ThreadCard/AvatarSection.tsx +42 -0
  248. package/src/components/ThreadCard/NamePrefixIcon.tsx +45 -0
  249. package/src/components/ThreadCard/ThreadCard.tsx +145 -0
  250. package/src/components/ThreadCard/UnreadBadge.tsx +35 -0
  251. package/src/components/ThreadCard/index.ts +4 -0
  252. package/src/components/ThreadCard/thread-card.utils.ts +68 -0
  253. package/src/core/index.ts +10 -0
  254. package/src/core/useChatListener.ts +85 -0
  255. package/src/core/useUserListener.ts +86 -0
  256. package/src/hooks/query-keys.ts +11 -0
  257. package/src/hooks/useChatMessages.ts +243 -0
  258. package/src/hooks/useConversationList.ts +57 -0
  259. package/src/index.tsx +36 -0
  260. package/src/screens/chat-detail/ChatAttachmentPanel.tsx +142 -0
  261. package/src/screens/chat-detail/ChatComposer.tsx +412 -0
  262. package/src/screens/chat-detail/ChatDay.tsx +73 -0
  263. package/src/screens/chat-detail/ChatDetail.tsx +118 -0
  264. package/src/screens/chat-detail/ChatDetailHeader.tsx +114 -0
  265. package/src/screens/chat-detail/ChatList.tsx +187 -0
  266. package/src/screens/chat-detail/ChatLoadEarlier.tsx +20 -0
  267. package/src/screens/chat-detail/ChatQuickActions.tsx +108 -0
  268. package/src/screens/chat-detail/ChatScrollToBottom.tsx +8 -0
  269. package/src/screens/chat-detail/ChatTextBubble.tsx +73 -0
  270. package/src/screens/chat-detail/constants.ts +76 -0
  271. package/src/screens/chat-detail/index.ts +33 -0
  272. package/src/screens/chat-detail/messages/ChatMessageBubble.tsx +24 -0
  273. package/src/screens/chat-detail/messages/types.ts +14 -0
  274. package/src/screens/chat-detail/types.ts +97 -0
  275. package/src/screens/chat-detail/useChatActionPress.ts +17 -0
  276. package/src/screens/inbox/Inbox.tsx +164 -0
  277. package/src/screens/inbox/MessagesTab.tsx +62 -0
  278. package/src/screens/inbox/index.ts +2 -0
  279. package/src/services/apis.ts +60 -0
  280. package/src/services/index.ts +2 -0
  281. package/src/services/message.ts +61 -0
  282. package/src/store/conversation.ts +116 -0
  283. package/src/store/index.ts +3 -0
  284. package/src/store/storeConfig.ts +19 -0
  285. package/src/store/user.ts +26 -0
  286. package/src/translation/index.ts +30 -0
  287. package/src/translation/resources/i18n.ts +8 -0
  288. package/src/types/auth.ts +25 -0
  289. package/src/types/chat.ts +118 -0
  290. package/src/types/message.ts +17 -0
  291. package/src/utils/conversation.ts +106 -0
  292. package/src/utils/giftedChatMessage.ts +137 -0
  293. package/src/utils/message.ts +136 -0
  294. package/src/utils/resolveMessageType.ts +49 -0
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ import { memo, useState, useCallback } from 'react';
4
+ import { StyleSheet } from 'react-native';
5
+ import { KeyboardAvoidingView } from 'react-native-keyboard-controller';
6
+ import { KContainer } from '@droppii/libs';
7
+ import ChatDetailHeader from "./ChatDetailHeader.js";
8
+ import { ChatList } from "./ChatList.js";
9
+ import { ChatComposer } from "./ChatComposer.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const ChatDetail = /*#__PURE__*/memo(({
12
+ title,
13
+ subtitle,
14
+ avatarUri,
15
+ avatarFullName,
16
+ chatType,
17
+ showAddMember,
18
+ onBack,
19
+ onPressSearch,
20
+ onPressAddMember,
21
+ onPressMenu,
22
+ onPressAvatar,
23
+ messages = [],
24
+ currentUserId,
25
+ renderChat,
26
+ onLoadEarlier,
27
+ isLoading,
28
+ isLoadingEarlier,
29
+ hasMoreEarlier,
30
+ quickActions,
31
+ inputValue,
32
+ inputPlaceholder,
33
+ onChangeInput,
34
+ onSend,
35
+ onPressAttach,
36
+ onPressEmoji,
37
+ attachmentActions,
38
+ onQuickActionPress,
39
+ onAttachmentAction,
40
+ renderQuickAction,
41
+ renderAttachmentAction,
42
+ attachmentColumns
43
+ }) => {
44
+ const [internalInput, setInternalInput] = useState('');
45
+ const handleChangeInput = useCallback(text => {
46
+ if (onChangeInput) {
47
+ onChangeInput(text);
48
+ return;
49
+ }
50
+ setInternalInput(text);
51
+ }, [onChangeInput]);
52
+ const currentInput = inputValue ?? internalInput;
53
+ return /*#__PURE__*/_jsxs(KContainer.Page, {
54
+ flex: true,
55
+ edges: ['bottom'],
56
+ children: [/*#__PURE__*/_jsx(ChatDetailHeader, {
57
+ title: title,
58
+ subtitle: subtitle,
59
+ avatarUri: avatarUri,
60
+ avatarFullName: avatarFullName,
61
+ chatType: chatType,
62
+ showAddMember: showAddMember,
63
+ onBack: onBack,
64
+ onPressSearch: onPressSearch,
65
+ onPressAddMember: onPressAddMember,
66
+ onPressMenu: onPressMenu,
67
+ onPressAvatar: onPressAvatar
68
+ }), /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
69
+ style: styles.keyboardAvoiding,
70
+ behavior: "padding",
71
+ children: [/*#__PURE__*/_jsx(ChatList, {
72
+ messages: messages,
73
+ currentUserId: currentUserId,
74
+ renderChat: renderChat,
75
+ onLoadEarlier: onLoadEarlier,
76
+ isLoading: isLoading,
77
+ isLoadingEarlier: isLoadingEarlier,
78
+ hasMoreEarlier: hasMoreEarlier
79
+ }), /*#__PURE__*/_jsx(ChatComposer, {
80
+ value: currentInput,
81
+ placeholder: inputPlaceholder,
82
+ onChangeText: handleChangeInput,
83
+ onSend: onSend,
84
+ onPressAttach: onPressAttach,
85
+ onPressEmoji: onPressEmoji,
86
+ quickActions: quickActions,
87
+ attachmentActions: attachmentActions,
88
+ onQuickActionPress: onQuickActionPress,
89
+ onAttachmentAction: onAttachmentAction,
90
+ renderQuickAction: renderQuickAction,
91
+ renderAttachmentAction: renderAttachmentAction,
92
+ attachmentColumns: attachmentColumns
93
+ })]
94
+ })]
95
+ });
96
+ });
97
+ ChatDetail.displayName = 'ChatDetail';
98
+ const styles = StyleSheet.create({
99
+ keyboardAvoiding: {
100
+ flex: 1
101
+ }
102
+ });
103
+ export default ChatDetail;
104
+ //# sourceMappingURL=ChatDetail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useState","useCallback","StyleSheet","KeyboardAvoidingView","KContainer","ChatDetailHeader","ChatList","ChatComposer","jsx","_jsx","jsxs","_jsxs","ChatDetail","title","subtitle","avatarUri","avatarFullName","chatType","showAddMember","onBack","onPressSearch","onPressAddMember","onPressMenu","onPressAvatar","messages","currentUserId","renderChat","onLoadEarlier","isLoading","isLoadingEarlier","hasMoreEarlier","quickActions","inputValue","inputPlaceholder","onChangeInput","onSend","onPressAttach","onPressEmoji","attachmentActions","onQuickActionPress","onAttachmentAction","renderQuickAction","renderAttachmentAction","attachmentColumns","internalInput","setInternalInput","handleChangeInput","text","currentInput","Page","flex","edges","children","style","styles","keyboardAvoiding","behavior","value","placeholder","onChangeText","displayName","create"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatDetail.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ import { memo, useMemo } from 'react';
4
+ import { KNavigation, KContainer, KImage, KLabel, KColors } from '@droppii/libs';
5
+ import { Avatar } from "../../components/Avatar/index.js";
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const ChatDetailHeader = /*#__PURE__*/memo(({
8
+ title,
9
+ subtitle,
10
+ avatarUri,
11
+ avatarFullName,
12
+ showAddMember = false,
13
+ onBack,
14
+ onPressSearch,
15
+ onPressAddMember,
16
+ onPressMenu,
17
+ onPressAvatar
18
+ }) => {
19
+ const rightButtons = useMemo(() => {
20
+ const buttons = [{
21
+ id: 'search',
22
+ index: 2,
23
+ icon: {
24
+ vectorName: 'search-o'
25
+ },
26
+ onPress: onPressSearch
27
+ }, {
28
+ id: 'menu',
29
+ index: 0,
30
+ icon: {
31
+ vectorName: 'align-justify-o'
32
+ },
33
+ onPress: onPressMenu
34
+ }];
35
+ if (showAddMember) {
36
+ buttons.splice(1, 0, {
37
+ id: 'add-member',
38
+ index: 1,
39
+ icon: {
40
+ vectorName: 'user-add-o'
41
+ },
42
+ onPress: onPressAddMember
43
+ });
44
+ }
45
+ return buttons;
46
+ }, [onPressSearch, onPressAddMember, onPressMenu, showAddMember]);
47
+ const leftNode = useMemo(() => /*#__PURE__*/_jsxs(KContainer.View, {
48
+ row: true,
49
+ alignItems: true,
50
+ marginR: "0.25rem",
51
+ children: [/*#__PURE__*/_jsx(KContainer.Touchable, {
52
+ onPress: onBack,
53
+ height: 40,
54
+ width: 40,
55
+ center: true,
56
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
57
+ name: "arrow-left-o",
58
+ size: 24,
59
+ color: KColors.primary.normal
60
+ })
61
+ }), /*#__PURE__*/_jsx(Avatar, {
62
+ source: avatarUri,
63
+ fullName: avatarFullName ?? title,
64
+ size: "md",
65
+ onPress: onPressAvatar
66
+ })]
67
+ }), [avatarFullName, avatarUri, onBack, onPressAvatar, title]);
68
+ const subTitleNode = useMemo(() => {
69
+ if (!subtitle) {
70
+ return null;
71
+ }
72
+ return /*#__PURE__*/_jsx(KLabel.Text, {
73
+ typo: "TextSmNormal",
74
+ color: KColors.palette.gray.w500,
75
+ numberOfLines: 1,
76
+ children: subtitle
77
+ });
78
+ }, [subtitle]);
79
+ return /*#__PURE__*/_jsx(KNavigation.Header, {
80
+ theme: "light",
81
+ alignment: "left",
82
+ size: "small",
83
+ leftNode: leftNode,
84
+ title: title,
85
+ subTitle: subTitleNode,
86
+ initRightButtons: rightButtons,
87
+ shadow: true
88
+ });
89
+ });
90
+ ChatDetailHeader.displayName = 'ChatDetailHeader';
91
+ export default ChatDetailHeader;
92
+ //# sourceMappingURL=ChatDetailHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useMemo","KNavigation","KContainer","KImage","KLabel","KColors","Avatar","jsx","_jsx","jsxs","_jsxs","ChatDetailHeader","title","subtitle","avatarUri","avatarFullName","showAddMember","onBack","onPressSearch","onPressAddMember","onPressMenu","onPressAvatar","rightButtons","buttons","id","index","icon","vectorName","onPress","splice","leftNode","View","row","alignItems","marginR","children","Touchable","height","width","center","VectorIcons","name","size","color","primary","normal","source","fullName","subTitleNode","Text","typo","palette","gray","w500","numberOfLines","Header","theme","alignment","subTitle","initRightButtons","shadow","displayName"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatDetailHeader.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+
3
+ import { memo, useCallback, useMemo, useRef } from 'react';
4
+ import { ActivityIndicator, StyleSheet } from 'react-native';
5
+ import { GiftedChat } from 'react-native-gifted-chat';
6
+ import { KContainer, KColors, KSpacingValue } from '@droppii/libs';
7
+ import { mapOpenIMMessagesToGiftedChat } from "../../utils/giftedChatMessage.js";
8
+ import { ChatDay } from "./ChatDay.js";
9
+ import { ChatLoadEarlier } from "./ChatLoadEarlier.js";
10
+ import { ChatScrollToBottom } from "./ChatScrollToBottom.js";
11
+ import { ChatMessageBubble } from "./messages/ChatMessageBubble.js";
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ export const ChatList = /*#__PURE__*/memo(({
14
+ messages = [],
15
+ currentUserId = '',
16
+ renderChat,
17
+ onLoadEarlier,
18
+ isLoading,
19
+ isLoadingEarlier,
20
+ hasMoreEarlier
21
+ }) => {
22
+ const giftedMessages = useMemo(() => mapOpenIMMessagesToGiftedChat(messages), [messages]);
23
+ const user = useMemo(() => ({
24
+ _id: String(currentUserId)
25
+ }), [currentUserId]);
26
+ const renderMessage = useCallback(props => {
27
+ const currentMessage = props.currentMessage;
28
+ if (!currentMessage) {
29
+ return /*#__PURE__*/_jsx(KContainer.View, {});
30
+ }
31
+ const isOutgoing = props.position === 'right';
32
+ return /*#__PURE__*/_jsx(KContainer.View, {
33
+ style: [styles.messageRow, isOutgoing ? styles.messageRowRight : styles.messageRowLeft],
34
+ children: renderChat ? renderChat(currentMessage.openIMMessage) : /*#__PURE__*/_jsx(ChatMessageBubble, {
35
+ message: currentMessage,
36
+ position: props.position
37
+ })
38
+ });
39
+ }, [renderChat]);
40
+ const renderDay = useCallback(props => /*#__PURE__*/_jsx(ChatDay, {
41
+ ...props
42
+ }), []);
43
+ const renderLoadEarlier = useCallback(props => /*#__PURE__*/_jsx(ChatLoadEarlier, {
44
+ ...props
45
+ }), []);
46
+ const onLoadEarlierRef = useRef(onLoadEarlier);
47
+ onLoadEarlierRef.current = onLoadEarlier;
48
+ const handleLoadEarlier = useCallback(() => {
49
+ onLoadEarlierRef.current?.();
50
+ }, []);
51
+ const loadEarlierMessagesProps = useMemo(() => onLoadEarlier ? {
52
+ isAvailable: !!hasMoreEarlier,
53
+ isInfiniteScrollEnabled: true,
54
+ onPress: handleLoadEarlier,
55
+ isLoading: isLoadingEarlier ?? false
56
+ } : undefined, [hasMoreEarlier, isLoadingEarlier, onLoadEarlier, handleLoadEarlier]);
57
+ const renderScrollToBottom = useCallback(() => /*#__PURE__*/_jsx(ChatScrollToBottom, {}), []);
58
+ return /*#__PURE__*/_jsx(KContainer.View, {
59
+ flex: true,
60
+ background: KColors.white,
61
+ children: isLoading ? /*#__PURE__*/_jsx(KContainer.View, {
62
+ flex: true,
63
+ center: true,
64
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
65
+ color: KColors.palette.primary.w400,
66
+ size: "small"
67
+ })
68
+ }) : /*#__PURE__*/_jsx(GiftedChat, {
69
+ messages: giftedMessages,
70
+ user: user,
71
+ renderInputToolbar: () => null,
72
+ renderAvatar: () => null,
73
+ renderMessage: renderMessage,
74
+ renderDay: renderDay,
75
+ renderLoadEarlier: onLoadEarlier ? renderLoadEarlier : undefined,
76
+ isDayAnimationEnabled: false,
77
+ keyboardAvoidingViewProps: {
78
+ enabled: false
79
+ },
80
+ messagesContainerStyle: styles.messagesContainer,
81
+ minInputToolbarHeight: 0,
82
+ loadEarlierMessagesProps: loadEarlierMessagesProps,
83
+ listProps: {
84
+ showsVerticalScrollIndicator: false,
85
+ keyboardShouldPersistTaps: 'handled',
86
+ contentContainerStyle: styles.content,
87
+ onEndReachedThreshold: 0.5
88
+ },
89
+ reply: {
90
+ swipe: {
91
+ isEnabled: true,
92
+ direction: 'left'
93
+ }
94
+ },
95
+ isScrollToBottomEnabled: true,
96
+ scrollToBottomComponent: renderScrollToBottom,
97
+ scrollToBottomStyle: styles.scrollToBottom,
98
+ scrollToBottomContentStyle: styles.scrollToBottomContent
99
+ })
100
+ });
101
+ });
102
+ ChatList.displayName = 'ChatList';
103
+ const styles = StyleSheet.create({
104
+ messagesContainer: {
105
+ backgroundColor: KColors.white
106
+ },
107
+ content: {
108
+ paddingVertical: KSpacingValue['0.75rem'],
109
+ flexGrow: 1
110
+ },
111
+ messageRow: {
112
+ width: '100%',
113
+ paddingHorizontal: KSpacingValue['0.75rem'],
114
+ marginBottom: KSpacingValue['0.25rem']
115
+ },
116
+ messageRowLeft: {
117
+ alignItems: 'flex-start'
118
+ },
119
+ messageRowRight: {
120
+ alignItems: 'flex-end'
121
+ },
122
+ scrollToBottom: {
123
+ position: 'absolute',
124
+ bottom: 20,
125
+ right: 16,
126
+ zIndex: 999
127
+ },
128
+ scrollToBottomContent: {
129
+ backgroundColor: KColors.white,
130
+ width: 32,
131
+ height: 32,
132
+ borderRadius: 16,
133
+ shadowColor: KColors.black,
134
+ shadowOffset: {
135
+ width: 0,
136
+ height: 1
137
+ },
138
+ shadowOpacity: 0.16,
139
+ shadowRadius: 8,
140
+ elevation: 8,
141
+ justifyContent: 'center',
142
+ alignItems: 'center'
143
+ }
144
+ });
145
+ //# sourceMappingURL=ChatList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","useMemo","useRef","ActivityIndicator","StyleSheet","GiftedChat","KContainer","KColors","KSpacingValue","mapOpenIMMessagesToGiftedChat","ChatDay","ChatLoadEarlier","ChatScrollToBottom","ChatMessageBubble","jsx","_jsx","ChatList","messages","currentUserId","renderChat","onLoadEarlier","isLoading","isLoadingEarlier","hasMoreEarlier","giftedMessages","user","_id","String","renderMessage","props","currentMessage","View","isOutgoing","position","style","styles","messageRow","messageRowRight","messageRowLeft","children","openIMMessage","message","renderDay","renderLoadEarlier","onLoadEarlierRef","current","handleLoadEarlier","loadEarlierMessagesProps","isAvailable","isInfiniteScrollEnabled","onPress","undefined","renderScrollToBottom","flex","background","white","center","color","palette","primary","w400","size","renderInputToolbar","renderAvatar","isDayAnimationEnabled","keyboardAvoidingViewProps","enabled","messagesContainerStyle","messagesContainer","minInputToolbarHeight","listProps","showsVerticalScrollIndicator","keyboardShouldPersistTaps","contentContainerStyle","content","onEndReachedThreshold","reply","swipe","isEnabled","direction","isScrollToBottomEnabled","scrollToBottomComponent","scrollToBottomStyle","scrollToBottom","scrollToBottomContentStyle","scrollToBottomContent","displayName","create","backgroundColor","paddingVertical","flexGrow","width","paddingHorizontal","marginBottom","alignItems","bottom","right","zIndex","height","borderRadius","shadowColor","black","shadowOffset","shadowOpacity","shadowRadius","elevation","justifyContent"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatList.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ import { memo } from 'react';
4
+ import { ActivityIndicator } from 'react-native';
5
+ import { KContainer, KColors } from '@droppii/libs';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const ChatLoadEarlier = /*#__PURE__*/memo(({
8
+ isLoading = false
9
+ }) => {
10
+ if (!isLoading) {
11
+ return null;
12
+ }
13
+ return /*#__PURE__*/_jsx(KContainer.View, {
14
+ center: true,
15
+ marginV: "0.75rem",
16
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
17
+ color: KColors.palette.primary.w400,
18
+ size: "small"
19
+ })
20
+ });
21
+ });
22
+ ChatLoadEarlier.displayName = 'ChatLoadEarlier';
23
+ //# sourceMappingURL=ChatLoadEarlier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","ActivityIndicator","KContainer","KColors","jsx","_jsx","ChatLoadEarlier","isLoading","View","center","marginV","children","color","palette","primary","w400","size","displayName"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatLoadEarlier.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,iBAAiB,QAAQ,cAAc;AAChD,SAASC,UAAU,EAAEC,OAAO,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGpD,OAAO,MAAMC,eAAe,gBAAGN,IAAI,CACjC,CAAC;EAAEO,SAAS,GAAG;AAAgC,CAAC,KAAK;EACnD,IAAI,CAACA,SAAS,EAAE;IACd,OAAO,IAAI;EACb;EAEA,oBACEF,IAAA,CAACH,UAAU,CAACM,IAAI;IAACC,MAAM;IAACC,OAAO,EAAC,SAAS;IAAAC,QAAA,eACvCN,IAAA,CAACJ,iBAAiB;MAACW,KAAK,EAAET,OAAO,CAACU,OAAO,CAACC,OAAO,CAACC,IAAK;MAACC,IAAI,EAAC;IAAO,CAAE;EAAC,CACxD,CAAC;AAEtB,CACF,CAAC;AAEDV,eAAe,CAACW,WAAW,GAAG,iBAAiB","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ import { memo, useCallback } from 'react';
4
+ import { FlatList, StyleSheet } from 'react-native';
5
+ import { KContainer, KImage, KLabel, KColors, KSpacingValue } from '@droppii/libs';
6
+ import { useChatActionPress } from "./useChatActionPress.js";
7
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
8
+ const QuickActionItem = /*#__PURE__*/memo(({
9
+ action,
10
+ onPress
11
+ }) => {
12
+ const handlePress = useCallback(() => {
13
+ onPress(action);
14
+ }, [action, onPress]);
15
+ return /*#__PURE__*/_jsxs(KContainer.Touchable, {
16
+ row: true,
17
+ alignItems: true,
18
+ onPress: handlePress,
19
+ disabled: action.disabled,
20
+ paddingH: "0.75rem",
21
+ paddingV: "0.375rem",
22
+ marginR: "0.5rem",
23
+ background: KColors.palette.gray.w25,
24
+ br: "3x",
25
+ activeOpacity: 0.7,
26
+ children: [/*#__PURE__*/_jsx(KImage.VectorIcons, {
27
+ name: action.iconName,
28
+ provider: action.iconProvider ?? 'MaterialCommunityIcons',
29
+ size: 14,
30
+ color: action.disabled ? KColors.palette.gray.w300 : KColors.gray.dark
31
+ }), /*#__PURE__*/_jsx(KLabel.Text, {
32
+ typo: "TextXsMedium",
33
+ color: action.disabled ? KColors.palette.gray.w300 : KColors.gray.dark,
34
+ marginL: "0.25rem",
35
+ numberOfLines: 1,
36
+ children: action.label
37
+ })]
38
+ });
39
+ });
40
+ QuickActionItem.displayName = 'QuickActionItem';
41
+ export const ChatQuickActions = /*#__PURE__*/memo(({
42
+ actions,
43
+ onActionPress,
44
+ renderAction
45
+ }) => {
46
+ const handleActionPress = useChatActionPress(onActionPress);
47
+ const renderItem = useCallback(({
48
+ item
49
+ }) => {
50
+ const onPress = () => handleActionPress(item);
51
+ if (renderAction) {
52
+ return /*#__PURE__*/_jsx(_Fragment, {
53
+ children: renderAction(item, onPress)
54
+ });
55
+ }
56
+ return /*#__PURE__*/_jsx(QuickActionItem, {
57
+ action: item,
58
+ onPress: handleActionPress
59
+ });
60
+ }, [handleActionPress, renderAction]);
61
+ const keyExtractor = useCallback(item => item.id, []);
62
+ if (!actions?.length) {
63
+ return null;
64
+ }
65
+ return /*#__PURE__*/_jsx(KContainer.View, {
66
+ paddingT: "0.75rem",
67
+ paddingB: "0.25rem",
68
+ children: /*#__PURE__*/_jsx(FlatList, {
69
+ data: actions,
70
+ horizontal: true,
71
+ renderItem: renderItem,
72
+ keyExtractor: keyExtractor,
73
+ showsHorizontalScrollIndicator: false,
74
+ contentContainerStyle: styles.content,
75
+ keyboardShouldPersistTaps: "handled"
76
+ })
77
+ });
78
+ });
79
+ ChatQuickActions.displayName = 'ChatQuickActions';
80
+ const styles = StyleSheet.create({
81
+ content: {
82
+ paddingHorizontal: KSpacingValue['0.75rem']
83
+ }
84
+ });
85
+ //# sourceMappingURL=ChatQuickActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","FlatList","StyleSheet","KContainer","KImage","KLabel","KColors","KSpacingValue","useChatActionPress","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","QuickActionItem","action","onPress","handlePress","Touchable","row","alignItems","disabled","paddingH","paddingV","marginR","background","palette","gray","w25","br","activeOpacity","children","VectorIcons","name","iconName","provider","iconProvider","size","color","w300","dark","Text","typo","marginL","numberOfLines","label","displayName","ChatQuickActions","actions","onActionPress","renderAction","handleActionPress","renderItem","item","keyExtractor","id","length","View","paddingT","paddingB","data","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","styles","content","keyboardShouldPersistTaps","create","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatQuickActions.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ import { memo } from 'react';
4
+ import { KImage, KColors } from '@droppii/libs';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export const ChatScrollToBottom = /*#__PURE__*/memo(() => /*#__PURE__*/_jsx(KImage.VectorIcons, {
7
+ name: "arrow-down-o",
8
+ size: 16,
9
+ color: KColors.black
10
+ }));
11
+ ChatScrollToBottom.displayName = 'ChatScrollToBottom';
12
+ //# sourceMappingURL=ChatScrollToBottom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","KImage","KColors","jsx","_jsx","ChatScrollToBottom","VectorIcons","name","size","color","black","displayName"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatScrollToBottom.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,MAAM,EAAEC,OAAO,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEhD,OAAO,MAAMC,kBAAkB,gBAAGL,IAAI,CAAC,mBACrCI,IAAA,CAACH,MAAM,CAACK,WAAW;EAACC,IAAI,EAAC,cAAc;EAACC,IAAI,EAAE,EAAG;EAACC,KAAK,EAAEP,OAAO,CAACQ;AAAM,CAAE,CAC1E,CAAC;AAEFL,kBAAkB,CAACM,WAAW,GAAG,oBAAoB","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ import { memo } from 'react';
4
+ import { StyleSheet } from 'react-native';
5
+ import { KContainer, KLabel, KSpacingValue } from '@droppii/libs';
6
+ import { CHAT_BUBBLE_COLORS } from "./constants.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ const formatMessageTime = createdAt => {
9
+ const date = new Date(createdAt);
10
+ if (Number.isNaN(date.getTime())) {
11
+ return '';
12
+ }
13
+ return date.toLocaleTimeString('vi-VN', {
14
+ hour: '2-digit',
15
+ minute: '2-digit',
16
+ hour12: false
17
+ });
18
+ };
19
+ export const ChatTextBubble = /*#__PURE__*/memo(({
20
+ message,
21
+ position
22
+ }) => {
23
+ const isOutgoing = position === 'right';
24
+ const timeLabel = formatMessageTime(message.createdAt);
25
+ if (!message.text?.trim()) {
26
+ return null;
27
+ }
28
+ return /*#__PURE__*/_jsxs(KContainer.View, {
29
+ style: styles.wrapper,
30
+ children: [/*#__PURE__*/_jsx(KContainer.View, {
31
+ style: [styles.bubble, isOutgoing ? styles.bubbleSent : styles.bubbleReceived],
32
+ children: /*#__PURE__*/_jsx(KLabel.Text, {
33
+ typo: "TextMdNormal",
34
+ color: CHAT_BUBBLE_COLORS.text,
35
+ children: message.text
36
+ })
37
+ }), !isOutgoing && timeLabel ? /*#__PURE__*/_jsx(KLabel.Text, {
38
+ typo: "TextXsNormal",
39
+ color: CHAT_BUBBLE_COLORS.timestamp,
40
+ marginL: '0.25rem',
41
+ children: timeLabel
42
+ }) : null]
43
+ });
44
+ });
45
+ ChatTextBubble.displayName = 'ChatTextBubble';
46
+ const styles = StyleSheet.create({
47
+ wrapper: {
48
+ maxWidth: '80%'
49
+ },
50
+ bubble: {
51
+ paddingHorizontal: KSpacingValue['0.75rem'],
52
+ paddingVertical: KSpacingValue['0.5rem'],
53
+ borderRadius: KSpacingValue['1.25rem']
54
+ },
55
+ bubbleReceived: {
56
+ backgroundColor: CHAT_BUBBLE_COLORS.received
57
+ },
58
+ bubbleSent: {
59
+ backgroundColor: CHAT_BUBBLE_COLORS.sent
60
+ }
61
+ });
62
+ //# sourceMappingURL=ChatTextBubble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","StyleSheet","KContainer","KLabel","KSpacingValue","CHAT_BUBBLE_COLORS","jsx","_jsx","jsxs","_jsxs","formatMessageTime","createdAt","date","Date","Number","isNaN","getTime","toLocaleTimeString","hour","minute","hour12","ChatTextBubble","message","position","isOutgoing","timeLabel","text","trim","View","style","styles","wrapper","children","bubble","bubbleSent","bubbleReceived","Text","typo","color","timestamp","marginL","displayName","create","maxWidth","paddingHorizontal","paddingVertical","borderRadius","backgroundColor","received","sent"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatTextBubble.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,UAAU,EAAEC,MAAM,EAAEC,aAAa,QAAQ,eAAe;AAEjE,SAASC,kBAAkB,QAAQ,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEjD,MAAMC,iBAAiB,GAAIC,SAAwB,IAAK;EACtD,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,SAAS,CAAC;EAChC,IAAIG,MAAM,CAACC,KAAK,CAACH,IAAI,CAACI,OAAO,CAAC,CAAC,CAAC,EAAE;IAChC,OAAO,EAAE;EACX;EAEA,OAAOJ,IAAI,CAACK,kBAAkB,CAAC,OAAO,EAAE;IACtCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE,SAAS;IACjBC,MAAM,EAAE;EACV,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMC,cAAc,gBAAGrB,IAAI,CAChC,CAAC;EAAEsB,OAAO;EAAEC;AAAiC,CAAC,KAAK;EACjD,MAAMC,UAAU,GAAGD,QAAQ,KAAK,OAAO;EACvC,MAAME,SAAS,GAAGf,iBAAiB,CAACY,OAAO,CAACX,SAAS,CAAC;EAEtD,IAAI,CAACW,OAAO,CAACI,IAAI,EAAEC,IAAI,CAAC,CAAC,EAAE;IACzB,OAAO,IAAI;EACb;EAEA,oBACElB,KAAA,CAACP,UAAU,CAAC0B,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,OAAQ;IAAAC,QAAA,gBACrCzB,IAAA,CAACL,UAAU,CAAC0B,IAAI;MACdC,KAAK,EAAE,CACLC,MAAM,CAACG,MAAM,EACbT,UAAU,GAAGM,MAAM,CAACI,UAAU,GAAGJ,MAAM,CAACK,cAAc,CACtD;MAAAH,QAAA,eAEFzB,IAAA,CAACJ,MAAM,CAACiC,IAAI;QAACC,IAAI,EAAC,cAAc;QAACC,KAAK,EAAEjC,kBAAkB,CAACqB,IAAK;QAAAM,QAAA,EAC7DV,OAAO,CAACI;MAAI,CACF;IAAC,CACC,CAAC,EAEjB,CAACF,UAAU,IAAIC,SAAS,gBACvBlB,IAAA,CAACJ,MAAM,CAACiC,IAAI;MACVC,IAAI,EAAC,cAAc;MACnBC,KAAK,EAAEjC,kBAAkB,CAACkC,SAAU;MACpCC,OAAO,EAAE,SAAU;MAAAR,QAAA,EAElBP;IAAS,CACC,CAAC,GACZ,IAAI;EAAA,CACO,CAAC;AAEtB,CACF,CAAC;AAEDJ,cAAc,CAACoB,WAAW,GAAG,gBAAgB;AAE7C,MAAMX,MAAM,GAAG7B,UAAU,CAACyC,MAAM,CAAC;EAC/BX,OAAO,EAAE;IACPY,QAAQ,EAAE;EACZ,CAAC;EACDV,MAAM,EAAE;IACNW,iBAAiB,EAAExC,aAAa,CAAC,SAAS,CAAC;IAC3CyC,eAAe,EAAEzC,aAAa,CAAC,QAAQ,CAAC;IACxC0C,YAAY,EAAE1C,aAAa,CAAC,SAAS;EACvC,CAAC;EACD+B,cAAc,EAAE;IACdY,eAAe,EAAE1C,kBAAkB,CAAC2C;EACtC,CAAC;EACDd,UAAU,EAAE;IACVa,eAAe,EAAE1C,kBAAkB,CAAC4C;EACtC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ import { KColors } from '@droppii/libs';
4
+ export const CHAT_BUBBLE_COLORS = {
5
+ received: 'rgba(131, 137, 157, 0.1)',
6
+ sent: 'rgba(0, 81, 255, 0.1)',
7
+ text: KColors.gray.dark,
8
+ timestamp: KColors.gray.light,
9
+ dayLabel: KColors.gray.light
10
+ };
11
+ export const DEFAULT_Chat_QUICK_ACTIONS = [{
12
+ id: 'restart',
13
+ label: 'Bắt đầu lại',
14
+ iconName: 'refresh'
15
+ }, {
16
+ id: 'send-order',
17
+ label: 'Gửi đơn hàng',
18
+ iconName: 'file-document-outline'
19
+ }, {
20
+ id: 'scam-warning',
21
+ label: 'Cảnh báo lừa đảo/g...',
22
+ iconName: 'alert-outline'
23
+ }];
24
+ export const ATTACHMENT_PANEL_COLUMNS = 4;
25
+ export const ATTACHMENT_ITEM_HEIGHT = 100;
26
+ export const ATTACHMENT_PANEL_VERTICAL_PADDING = 16;
27
+ export const getAttachmentPanelHeight = (actionCount, columns = ATTACHMENT_PANEL_COLUMNS) => {
28
+ const rows = Math.ceil(actionCount / columns);
29
+ return rows * ATTACHMENT_ITEM_HEIGHT + ATTACHMENT_PANEL_VERTICAL_PADDING;
30
+ };
31
+
32
+ /** @deprecated use getAttachmentPanelHeight */
33
+ export const DEFAULT_ATTACHMENT_PANEL_HEIGHT = getAttachmentPanelHeight(6);
34
+ export const DEFAULT_ATTACHMENT_ACTIONS = [{
35
+ id: 'gallery',
36
+ label: 'Ảnh/Video',
37
+ iconName: 'image-multiple-outline'
38
+ }, {
39
+ id: 'camera',
40
+ label: 'Chụp ảnh',
41
+ iconName: 'camera-outline'
42
+ }, {
43
+ id: 'file',
44
+ label: 'Đính kèm file',
45
+ iconName: 'paperclip'
46
+ }, {
47
+ id: 'order',
48
+ label: 'Gửi đơn hàng',
49
+ iconName: 'receipt'
50
+ }, {
51
+ id: 'product',
52
+ label: 'Gửi sản phẩm',
53
+ iconName: 'basket-outline'
54
+ }, {
55
+ id: 'poll',
56
+ label: 'Tạo bình chọn',
57
+ iconName: 'poll'
58
+ }];
59
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KColors","CHAT_BUBBLE_COLORS","received","sent","text","gray","dark","timestamp","light","dayLabel","DEFAULT_Chat_QUICK_ACTIONS","id","label","iconName","ATTACHMENT_PANEL_COLUMNS","ATTACHMENT_ITEM_HEIGHT","ATTACHMENT_PANEL_VERTICAL_PADDING","getAttachmentPanelHeight","actionCount","columns","rows","Math","ceil","DEFAULT_ATTACHMENT_PANEL_HEIGHT","DEFAULT_ATTACHMENT_ACTIONS"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/constants.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,eAAe;AAGvC,OAAO,MAAMC,kBAAkB,GAAG;EAChCC,QAAQ,EAAE,0BAA0B;EACpCC,IAAI,EAAE,uBAAuB;EAC7BC,IAAI,EAAEJ,OAAO,CAACK,IAAI,CAACC,IAAI;EACvBC,SAAS,EAAEP,OAAO,CAACK,IAAI,CAACG,KAAK;EAC7BC,QAAQ,EAAET,OAAO,CAACK,IAAI,CAACG;AACzB,CAAU;AAEV,OAAO,MAAME,0BAA8C,GAAG,CAC5D;EACEC,EAAE,EAAE,SAAS;EACbC,KAAK,EAAE,aAAa;EACpBC,QAAQ,EAAE;AACZ,CAAC,EACD;EACEF,EAAE,EAAE,YAAY;EAChBC,KAAK,EAAE,cAAc;EACrBC,QAAQ,EAAE;AACZ,CAAC,EACD;EACEF,EAAE,EAAE,cAAc;EAClBC,KAAK,EAAE,uBAAuB;EAC9BC,QAAQ,EAAE;AACZ,CAAC,CACF;AAED,OAAO,MAAMC,wBAAwB,GAAG,CAAC;AACzC,OAAO,MAAMC,sBAAsB,GAAG,GAAG;AACzC,OAAO,MAAMC,iCAAiC,GAAG,EAAE;AAEnD,OAAO,MAAMC,wBAAwB,GAAGA,CACtCC,WAAmB,EACnBC,OAAO,GAAGL,wBAAwB,KACvB;EACX,MAAMM,IAAI,GAAGC,IAAI,CAACC,IAAI,CAACJ,WAAW,GAAGC,OAAO,CAAC;EAC7C,OAAOC,IAAI,GAAGL,sBAAsB,GAAGC,iCAAiC;AAC1E,CAAC;;AAED;AACA,OAAO,MAAMO,+BAA+B,GAAGN,wBAAwB,CAAC,CAAC,CAAC;AAE1E,OAAO,MAAMO,0BAAmD,GAAG,CACjE;EACEb,EAAE,EAAE,SAAS;EACbC,KAAK,EAAE,WAAW;EAClBC,QAAQ,EAAE;AACZ,CAAC,EACD;EACEF,EAAE,EAAE,QAAQ;EACZC,KAAK,EAAE,UAAU;EACjBC,QAAQ,EAAE;AACZ,CAAC,EACD;EACEF,EAAE,EAAE,MAAM;EACVC,KAAK,EAAE,eAAe;EACtBC,QAAQ,EAAE;AACZ,CAAC,EACD;EACEF,EAAE,EAAE,OAAO;EACXC,KAAK,EAAE,cAAc;EACrBC,QAAQ,EAAE;AACZ,CAAC,EACD;EACEF,EAAE,EAAE,SAAS;EACbC,KAAK,EAAE,cAAc;EACrBC,QAAQ,EAAE;AACZ,CAAC,EACD;EACEF,EAAE,EAAE,MAAM;EACVC,KAAK,EAAE,eAAe;EACtBC,QAAQ,EAAE;AACZ,CAAC,CACF","ignoreList":[]}