@smart-link/rn-im 1.0.1

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 (302) hide show
  1. package/README.md +34 -0
  2. package/assets/avatars-busi-notify.png +0 -0
  3. package/assets/avatars-empty.png +0 -0
  4. package/assets/avatars-group.jpg +0 -0
  5. package/assets/avatars-man.jpg +0 -0
  6. package/assets/avatars-woman.jpg +0 -0
  7. package/assets/cloud-backup-begin.png +0 -0
  8. package/assets/cloud-backup.png +0 -0
  9. package/assets/group-mgr.png +0 -0
  10. package/assets/group-owner.png +0 -0
  11. package/assets/hook-black-double.png +0 -0
  12. package/assets/hook-black.png +0 -0
  13. package/assets/hook-blue-double.png +0 -0
  14. package/assets/hook-blue.png +0 -0
  15. package/assets/hook-green.png +0 -0
  16. package/assets/no_message.png +0 -0
  17. package/assets/share.jpeg +0 -0
  18. package/assets/voice-left-playing.gif +0 -0
  19. package/assets/voice-left.png +0 -0
  20. package/dist/api/addressList.d.ts +27 -0
  21. package/dist/api/addressList.js +18 -0
  22. package/dist/api/backup.d.ts +18 -0
  23. package/dist/api/backup.js +29 -0
  24. package/dist/api/file.d.ts +4 -0
  25. package/dist/api/file.js +49 -0
  26. package/dist/api/user.d.ts +8 -0
  27. package/dist/api/user.js +16 -0
  28. package/dist/components/CachedImage.d.ts +11 -0
  29. package/dist/components/CachedImage.js +48 -0
  30. package/dist/components/Camera/Camera.d.ts +10 -0
  31. package/dist/components/Camera/Camera.js +100 -0
  32. package/dist/components/Camera/CameraCapture.d.ts +32 -0
  33. package/dist/components/Camera/CameraCapture.js +360 -0
  34. package/dist/components/Camera/CameraResult.d.ts +11 -0
  35. package/dist/components/Camera/CameraResult.js +102 -0
  36. package/dist/components/ChatAvatar/ChatAvatar.d.ts +15 -0
  37. package/dist/components/ChatAvatar/ChatAvatar.js +134 -0
  38. package/dist/components/ChatAvatar/ChatAvatarId.d.ts +8 -0
  39. package/dist/components/ChatAvatar/ChatAvatarId.js +92 -0
  40. package/dist/components/ChatAvatar/ChatAvatarLocal.d.ts +9 -0
  41. package/dist/components/ChatAvatar/ChatAvatarLocal.js +76 -0
  42. package/dist/components/ChatAvatar/index.d.ts +2 -0
  43. package/dist/components/ChatAvatar/index.js +23 -0
  44. package/dist/components/Favicon.d.ts +7 -0
  45. package/dist/components/Favicon.js +74 -0
  46. package/dist/components/FormatTimeText.d.ts +8 -0
  47. package/dist/components/FormatTimeText.js +24 -0
  48. package/dist/components/Highlighter.d.ts +9 -0
  49. package/dist/components/Highlighter.js +42 -0
  50. package/dist/components/IndicatorText.d.ts +10 -0
  51. package/dist/components/IndicatorText.js +47 -0
  52. package/dist/components/LocalImage.d.ts +10 -0
  53. package/dist/components/LocalImage.js +37 -0
  54. package/dist/components/NetworkUnconnected.d.ts +3 -0
  55. package/dist/components/NetworkUnconnected.js +55 -0
  56. package/dist/components/PopoverWrapper.d.ts +13 -0
  57. package/dist/components/PopoverWrapper.js +78 -0
  58. package/dist/components/VideoPlayer.d.ts +13 -0
  59. package/dist/components/VideoPlayer.js +288 -0
  60. package/dist/components/styles.d.ts +19 -0
  61. package/dist/components/styles.js +23 -0
  62. package/dist/default-assets.d.ts +18 -0
  63. package/dist/default-assets.js +22 -0
  64. package/dist/hooks/useFormatMsgTime.d.ts +4 -0
  65. package/dist/hooks/useFormatMsgTime.js +53 -0
  66. package/dist/hooks/useImSelector.d.ts +15 -0
  67. package/dist/hooks/useImSelector.js +48 -0
  68. package/dist/hooks/useTranslation.d.ts +13 -0
  69. package/dist/hooks/useTranslation.js +12 -0
  70. package/dist/index.d.ts +7 -0
  71. package/dist/index.js +28 -0
  72. package/dist/init.d.ts +17 -0
  73. package/dist/init.js +116 -0
  74. package/dist/interface.d.ts +47 -0
  75. package/dist/interface.js +2 -0
  76. package/dist/locales/en/addressList.d.ts +3 -0
  77. package/dist/locales/en/addressList.js +31 -0
  78. package/dist/locales/index.d.ts +4 -0
  79. package/dist/locales/index.js +27 -0
  80. package/dist/locales/lao/addressList.d.ts +3 -0
  81. package/dist/locales/lao/addressList.js +31 -0
  82. package/dist/locales/zh/addressList.d.ts +30 -0
  83. package/dist/locales/zh/addressList.js +32 -0
  84. package/dist/pages/address-list/AddressList.d.ts +6 -0
  85. package/dist/pages/address-list/AddressList.js +158 -0
  86. package/dist/pages/address-list/CardInfo.d.ts +15 -0
  87. package/dist/pages/address-list/CardInfo.js +42 -0
  88. package/dist/pages/address-list/ChooseContact.d.ts +6 -0
  89. package/dist/pages/address-list/ChooseContact.js +197 -0
  90. package/dist/pages/address-list/Icons.d.ts +5 -0
  91. package/dist/pages/address-list/Icons.js +16 -0
  92. package/dist/pages/address-list/Organization.d.ts +13 -0
  93. package/dist/pages/address-list/Organization.js +221 -0
  94. package/dist/pages/address-list/UserDetail.d.ts +6 -0
  95. package/dist/pages/address-list/UserDetail.js +131 -0
  96. package/dist/pages/address-list/UserJobs.d.ts +6 -0
  97. package/dist/pages/address-list/UserJobs.js +50 -0
  98. package/dist/pages/address-list/UserSearch.d.ts +6 -0
  99. package/dist/pages/address-list/UserSearch.js +82 -0
  100. package/dist/pages/address-list/addressList.routes.d.ts +50 -0
  101. package/dist/pages/address-list/addressList.routes.js +50 -0
  102. package/dist/pages/collection/Collection.d.ts +3 -0
  103. package/dist/pages/collection/Collection.js +136 -0
  104. package/dist/pages/collection/ContentFactory.d.ts +6 -0
  105. package/dist/pages/collection/ContentFactory.js +167 -0
  106. package/dist/pages/collection/collection.routes.d.ts +9 -0
  107. package/dist/pages/collection/collection.routes.js +17 -0
  108. package/dist/pages/conversation/ForwardToConversation.d.ts +6 -0
  109. package/dist/pages/conversation/ForwardToConversation.js +172 -0
  110. package/dist/pages/conversation/List.d.ts +6 -0
  111. package/dist/pages/conversation/List.js +204 -0
  112. package/dist/pages/conversation/components/ConversationCard.d.ts +12 -0
  113. package/dist/pages/conversation/components/ConversationCard.js +142 -0
  114. package/dist/pages/conversation/components/ConversationOption.d.ts +11 -0
  115. package/dist/pages/conversation/components/ConversationOption.js +99 -0
  116. package/dist/pages/conversation/conversation.routes.d.ts +2 -0
  117. package/dist/pages/conversation/conversation.routes.js +74 -0
  118. package/dist/pages/conversation/setting/GroupTransfer.d.ts +6 -0
  119. package/dist/pages/conversation/setting/GroupTransfer.js +88 -0
  120. package/dist/pages/conversation/setting/OptionAvatars.d.ts +22 -0
  121. package/dist/pages/conversation/setting/OptionAvatars.js +152 -0
  122. package/dist/pages/conversation/setting/OptionCancelGroup.d.ts +6 -0
  123. package/dist/pages/conversation/setting/OptionCancelGroup.js +49 -0
  124. package/dist/pages/conversation/setting/OptionConversation.d.ts +19 -0
  125. package/dist/pages/conversation/setting/OptionConversation.js +71 -0
  126. package/dist/pages/conversation/setting/OptionGroup.d.ts +17 -0
  127. package/dist/pages/conversation/setting/OptionGroup.js +76 -0
  128. package/dist/pages/conversation/setting/OptionGroupManage.d.ts +6 -0
  129. package/dist/pages/conversation/setting/OptionGroupManage.js +68 -0
  130. package/dist/pages/conversation/setting/OptionGroupMoreMember.d.ts +4 -0
  131. package/dist/pages/conversation/setting/OptionGroupMoreMember.js +124 -0
  132. package/dist/pages/conversation/setting/OptionGroupNameOrNoticeEdit.d.ts +6 -0
  133. package/dist/pages/conversation/setting/OptionGroupNameOrNoticeEdit.js +149 -0
  134. package/dist/pages/conversation/setting/Setting.d.ts +6 -0
  135. package/dist/pages/conversation/setting/Setting.js +184 -0
  136. package/dist/pages/conversation/setting/SettingChatBg.d.ts +6 -0
  137. package/dist/pages/conversation/setting/SettingChatBg.js +95 -0
  138. package/dist/pages/index.d.ts +8 -0
  139. package/dist/pages/index.js +27 -0
  140. package/dist/pages/message/ChooseMember.d.ts +6 -0
  141. package/dist/pages/message/ChooseMember.js +185 -0
  142. package/dist/pages/message/MessageBackup/Bar.d.ts +8 -0
  143. package/dist/pages/message/MessageBackup/Bar.js +77 -0
  144. package/dist/pages/message/MessageBackup/MessageBackup.d.ts +10 -0
  145. package/dist/pages/message/MessageBackup/MessageBackup.js +133 -0
  146. package/dist/pages/message/MessageBackup/RestoreBackupPage.d.ts +6 -0
  147. package/dist/pages/message/MessageBackup/RestoreBackupPage.js +135 -0
  148. package/dist/pages/message/MessageBackup/StartBackupPage.d.ts +6 -0
  149. package/dist/pages/message/MessageBackup/StartBackupPage.js +135 -0
  150. package/dist/pages/message/MessageBackup/index.d.ts +3 -0
  151. package/dist/pages/message/MessageBackup/index.js +12 -0
  152. package/dist/pages/message/MessageBackup/utils.d.ts +46 -0
  153. package/dist/pages/message/MessageBackup/utils.js +239 -0
  154. package/dist/pages/message/MessageList.d.ts +6 -0
  155. package/dist/pages/message/MessageList.js +175 -0
  156. package/dist/pages/message/MessageRecord.d.ts +6 -0
  157. package/dist/pages/message/MessageRecord.js +97 -0
  158. package/dist/pages/message/components/BusiNotifyCard.d.ts +6 -0
  159. package/dist/pages/message/components/BusiNotifyCard.js +132 -0
  160. package/dist/pages/message/components/ChatBg.d.ts +7 -0
  161. package/dist/pages/message/components/ChatBg.js +65 -0
  162. package/dist/pages/message/components/MessageItem.d.ts +16 -0
  163. package/dist/pages/message/components/MessageItem.js +205 -0
  164. package/dist/pages/message/components/MessageItemQuote.d.ts +7 -0
  165. package/dist/pages/message/components/MessageItemQuote.js +83 -0
  166. package/dist/pages/message/components/MessageItemTips.d.ts +9 -0
  167. package/dist/pages/message/components/MessageItemTips.js +67 -0
  168. package/dist/pages/message/components/MessageOption.d.ts +11 -0
  169. package/dist/pages/message/components/MessageOption.js +360 -0
  170. package/dist/pages/message/components/MessagePayload.d.ts +14 -0
  171. package/dist/pages/message/components/MessagePayload.js +96 -0
  172. package/dist/pages/message/components/MessagePictureAlbum.d.ts +10 -0
  173. package/dist/pages/message/components/MessagePictureAlbum.js +105 -0
  174. package/dist/pages/message/components/MessageReceiptStatus.d.ts +6 -0
  175. package/dist/pages/message/components/MessageReceiptStatus.js +61 -0
  176. package/dist/pages/message/components/MessageUndo.d.ts +10 -0
  177. package/dist/pages/message/components/MessageUndo.js +75 -0
  178. package/dist/pages/message/components/MultipleBar/index.d.ts +5 -0
  179. package/dist/pages/message/components/MultipleBar/index.js +116 -0
  180. package/dist/pages/message/components/Payload/PayloadContact.d.ts +4 -0
  181. package/dist/pages/message/components/Payload/PayloadContact.js +86 -0
  182. package/dist/pages/message/components/Payload/PayloadFile.d.ts +4 -0
  183. package/dist/pages/message/components/Payload/PayloadFile.js +115 -0
  184. package/dist/pages/message/components/Payload/PayloadMultiple.d.ts +4 -0
  185. package/dist/pages/message/components/Payload/PayloadMultiple.js +102 -0
  186. package/dist/pages/message/components/Payload/PayloadNotify.d.ts +9 -0
  187. package/dist/pages/message/components/Payload/PayloadNotify.js +92 -0
  188. package/dist/pages/message/components/Payload/PayloadPicture.d.ts +7 -0
  189. package/dist/pages/message/components/Payload/PayloadPicture.js +69 -0
  190. package/dist/pages/message/components/Payload/PayloadShare.d.ts +4 -0
  191. package/dist/pages/message/components/Payload/PayloadShare.js +100 -0
  192. package/dist/pages/message/components/Payload/PayloadText.d.ts +4 -0
  193. package/dist/pages/message/components/Payload/PayloadText.js +128 -0
  194. package/dist/pages/message/components/Payload/PayloadVideo.d.ts +4 -0
  195. package/dist/pages/message/components/Payload/PayloadVideo.js +78 -0
  196. package/dist/pages/message/components/Payload/PayloadVoice.d.ts +6 -0
  197. package/dist/pages/message/components/Payload/PayloadVoice.js +155 -0
  198. package/dist/pages/message/components/Payload/PayloadWrapper.d.ts +12 -0
  199. package/dist/pages/message/components/Payload/PayloadWrapper.js +73 -0
  200. package/dist/pages/message/components/Payload/type.d.ts +9 -0
  201. package/dist/pages/message/components/Payload/type.js +2 -0
  202. package/dist/pages/message/components/ReceiptBack.d.ts +7 -0
  203. package/dist/pages/message/components/ReceiptBack.js +82 -0
  204. package/dist/pages/message/components/TextMixMessage.d.ts +9 -0
  205. package/dist/pages/message/components/TextMixMessage.js +62 -0
  206. package/dist/pages/message/components/TextMixQuote.d.ts +61 -0
  207. package/dist/pages/message/components/TextMixQuote.js +276 -0
  208. package/dist/pages/message/components/TextMixQuoteMessage.d.ts +14 -0
  209. package/dist/pages/message/components/TextMixQuoteMessage.js +74 -0
  210. package/dist/pages/message/components/UploadProgress.d.ts +9 -0
  211. package/dist/pages/message/components/UploadProgress.js +51 -0
  212. package/dist/pages/message/components/messageBar/EmojiPanel.d.ts +11 -0
  213. package/dist/pages/message/components/messageBar/EmojiPanel.js +101 -0
  214. package/dist/pages/message/components/messageBar/Icons.d.ts +18 -0
  215. package/dist/pages/message/components/messageBar/Icons.js +88 -0
  216. package/dist/pages/message/components/messageBar/MessageBar.d.ts +12 -0
  217. package/dist/pages/message/components/messageBar/MessageBar.js +273 -0
  218. package/dist/pages/message/components/messageBar/MessageInput.d.ts +21 -0
  219. package/dist/pages/message/components/messageBar/MessageInput.js +203 -0
  220. package/dist/pages/message/components/messageBar/OptionPanel.d.ts +8 -0
  221. package/dist/pages/message/components/messageBar/OptionPanel.js +240 -0
  222. package/dist/pages/message/components/messageBar/VoiceBar.d.ts +3 -0
  223. package/dist/pages/message/components/messageBar/VoiceBar.js +272 -0
  224. package/dist/pages/message/components/messageBar/index.d.ts +2 -0
  225. package/dist/pages/message/components/messageBar/index.js +23 -0
  226. package/dist/pages/message/message.routes.d.ts +2 -0
  227. package/dist/pages/message/message.routes.js +79 -0
  228. package/dist/pages/search/Search.d.ts +6 -0
  229. package/dist/pages/search/Search.js +84 -0
  230. package/dist/pages/search/SearchChatRecords.d.ts +3 -0
  231. package/dist/pages/search/SearchChatRecords.js +173 -0
  232. package/dist/pages/search/SearchFile.d.ts +3 -0
  233. package/dist/pages/search/SearchFile.js +202 -0
  234. package/dist/pages/search/SearchManager.d.ts +6 -0
  235. package/dist/pages/search/SearchManager.js +111 -0
  236. package/dist/pages/search/SearchPicturePage.d.ts +6 -0
  237. package/dist/pages/search/SearchPicturePage.js +56 -0
  238. package/dist/pages/search/components/ChatRecords.d.ts +6 -0
  239. package/dist/pages/search/components/ChatRecords.js +151 -0
  240. package/dist/pages/search/components/MyGroupChat.d.ts +6 -0
  241. package/dist/pages/search/components/MyGroupChat.js +128 -0
  242. package/dist/pages/search/components/PictureMulipleBar.d.ts +10 -0
  243. package/dist/pages/search/components/PictureMulipleBar.js +105 -0
  244. package/dist/pages/search/components/SearchFileList.d.ts +7 -0
  245. package/dist/pages/search/components/SearchFileList.js +173 -0
  246. package/dist/pages/search/components/SearchPictures.d.ts +8 -0
  247. package/dist/pages/search/components/SearchPictures.js +220 -0
  248. package/dist/pages/search/components/SearchShareLinkList.d.ts +7 -0
  249. package/dist/pages/search/components/SearchShareLinkList.js +112 -0
  250. package/dist/pages/search/components/SearchUser.d.ts +6 -0
  251. package/dist/pages/search/components/SearchUser.js +83 -0
  252. package/dist/pages/search/components/useSearchMessage.d.ts +11 -0
  253. package/dist/pages/search/components/useSearchMessage.js +68 -0
  254. package/dist/pages/search/search.routes.d.ts +2 -0
  255. package/dist/pages/search/search.routes.js +48 -0
  256. package/dist/pages/search/utils.d.ts +12 -0
  257. package/dist/pages/search/utils.js +42 -0
  258. package/dist/pages/types.d.ts +70 -0
  259. package/dist/pages/types.js +2 -0
  260. package/dist/slice/contact/contact.action.d.ts +1 -0
  261. package/dist/slice/contact/contact.action.js +2 -0
  262. package/dist/slice/contact/contact.slice.d.ts +12 -0
  263. package/dist/slice/contact/contact.slice.js +60 -0
  264. package/dist/slice/index.d.ts +9 -0
  265. package/dist/slice/index.js +15 -0
  266. package/dist/slice/panel/panel.slice.d.ts +8 -0
  267. package/dist/slice/panel/panel.slice.js +19 -0
  268. package/dist/slice/video/video.action.d.ts +5 -0
  269. package/dist/slice/video/video.action.js +65 -0
  270. package/dist/slice/video/video.slice.d.ts +17 -0
  271. package/dist/slice/video/video.slice.js +40 -0
  272. package/dist/utils/color.d.ts +1 -0
  273. package/dist/utils/color.js +9 -0
  274. package/dist/utils/common-action-sheet.d.ts +8 -0
  275. package/dist/utils/common-action-sheet.js +45 -0
  276. package/dist/utils/cookie.d.ts +1 -0
  277. package/dist/utils/cookie.js +29 -0
  278. package/dist/utils/emoji.d.ts +9 -0
  279. package/dist/utils/emoji.js +627 -0
  280. package/dist/utils/file-icon.d.ts +7 -0
  281. package/dist/utils/file-icon.js +80 -0
  282. package/dist/utils/file-operate.d.ts +1 -0
  283. package/dist/utils/file-operate.js +4 -0
  284. package/dist/utils/file.d.ts +23 -0
  285. package/dist/utils/file.js +255 -0
  286. package/dist/utils/golden-rectangle.d.ts +4 -0
  287. package/dist/utils/golden-rectangle.js +34 -0
  288. package/dist/utils/phone.d.ts +2 -0
  289. package/dist/utils/phone.js +24 -0
  290. package/dist/utils/request.d.ts +34 -0
  291. package/dist/utils/request.js +67 -0
  292. package/dist/utils/scroll.d.ts +1 -0
  293. package/dist/utils/scroll.js +12 -0
  294. package/dist/utils/summary.d.ts +2 -0
  295. package/dist/utils/summary.js +42 -0
  296. package/dist/utils/take-camera.d.ts +2 -0
  297. package/dist/utils/take-camera.js +41 -0
  298. package/dist/utils/text-mix.d.ts +9 -0
  299. package/dist/utils/text-mix.js +82 -0
  300. package/dist/utils/upload.d.ts +5 -0
  301. package/dist/utils/upload.js +80 -0
  302. package/package.json +79 -0
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const rn_ui_1 = require("@smart-link/rn-ui");
30
+ const react_1 = __importStar(require("react"));
31
+ const react_native_1 = require("react-native");
32
+ const FontAwesome_1 = __importDefault(require("react-native-vector-icons/FontAwesome"));
33
+ const styles_1 = require("../../../components/styles");
34
+ const init_1 = require("../../../init");
35
+ const im_base_1 = require("@smart-link/im-base");
36
+ const MessageItemTips = (0, react_1.memo)(props => {
37
+ const { text, style, } = props;
38
+ return (<react_native_1.TouchableOpacity style={[styles.tips, style]} onPress={() => {
39
+ const imManager = (0, init_1.getImManager)();
40
+ imManager.store.dispatch(im_base_1.MessagePanelActions.focusTipsMessage(imManager));
41
+ }}>
42
+ <react_native_1.Image style={styles.logo} source={(0, init_1.getLogo)()}/>
43
+ <react_native_1.Text style={styles.text}>{text}</react_native_1.Text>
44
+ <react_native_1.Text style={styles.icon}>
45
+ <FontAwesome_1.default name="angle-double-up" color="#777" size={17}/>
46
+ </react_native_1.Text>
47
+ </react_native_1.TouchableOpacity>);
48
+ });
49
+ const styles = react_native_1.StyleSheet.create({
50
+ tips: Object.assign({ top: (0, rn_ui_1.dp)(35), right: (0, rn_ui_1.dp)(0), position: 'absolute', flexDirection: 'row', height: (0, rn_ui_1.dp)(36), backgroundColor: '#fff', justifyContent: 'space-between', alignItems: 'center', borderColor: '#eee', borderTopLeftRadius: (0, rn_ui_1.dp)(20), borderBottomLeftRadius: (0, rn_ui_1.dp)(20), paddingVertical: (0, rn_ui_1.dp)(4) }, styles_1.shadowStyle),
51
+ logo: {
52
+ marginHorizontal: (0, rn_ui_1.dp)(4),
53
+ height: (0, rn_ui_1.dp)(30),
54
+ width: (0, rn_ui_1.dp)(30),
55
+ justifyContent: 'center',
56
+ borderRadius: (0, rn_ui_1.dp)(15),
57
+ },
58
+ text: {
59
+ fontSize: (0, rn_ui_1.dp)(13),
60
+ lineHeight: (0, rn_ui_1.dp)(18),
61
+ color: '#555',
62
+ },
63
+ icon: {
64
+ marginHorizontal: (0, rn_ui_1.dp)(4),
65
+ }
66
+ });
67
+ exports.default = MessageItemTips;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { NativeTouchEvent } from 'react-native';
3
+ import { IMessage } from '@smart-link/im-base';
4
+ type MessageOptionProps = {
5
+ message?: IMessage;
6
+ visible: boolean;
7
+ nativeEvent?: NativeTouchEvent;
8
+ onClose: () => void;
9
+ };
10
+ declare const _default: React.MemoExoticComponent<({ visible, message, nativeEvent, onClose }: MessageOptionProps) => React.JSX.Element | null>;
11
+ export default _default;
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ const react_1 = __importStar(require("react"));
39
+ const react_native_1 = require("react-native");
40
+ const clipboard_1 = __importDefault(require("@react-native-clipboard/clipboard"));
41
+ const im_base_1 = require("@smart-link/im-base");
42
+ const AntDesign_1 = __importDefault(require("react-native-vector-icons/AntDesign"));
43
+ const FontAwesome5_1 = __importDefault(require("react-native-vector-icons/FontAwesome5"));
44
+ const MaterialCommunityIcons_1 = __importDefault(require("react-native-vector-icons/MaterialCommunityIcons"));
45
+ const FontAwesome_1 = __importDefault(require("react-native-vector-icons/FontAwesome"));
46
+ const MaterialIcons_1 = __importDefault(require("react-native-vector-icons/MaterialIcons"));
47
+ const rn_ui_1 = require("@smart-link/rn-ui");
48
+ const useTranslation_1 = __importDefault(require("../../../hooks/useTranslation"));
49
+ const common_action_sheet_1 = require("../../../utils/common-action-sheet");
50
+ const init_1 = require("../../../init");
51
+ const elements_1 = require("@react-navigation/elements");
52
+ const useImSelector_1 = require("../../../hooks/useImSelector");
53
+ const file_1 = require("../../../utils/file");
54
+ const ReceiptBack_1 = require("../../../pages/message/components/ReceiptBack");
55
+ const getMessageAction = (t, message, navigation) => {
56
+ if (!message)
57
+ return [];
58
+ const actions = (0, im_base_1.getMessageActionKeys)(message.payloadType);
59
+ const items = [
60
+ {
61
+ key: 'copy',
62
+ title: t('copy'),
63
+ icon: <AntDesign_1.default name="copy1" size={(0, rn_ui_1.dp)(20)} color={'#333'}/>,
64
+ onPress: () => {
65
+ clipboard_1.default.setString(message.payload.text);
66
+ },
67
+ },
68
+ // {
69
+ // key: 'copyNotice',
70
+ // title: t('copy'),
71
+ // icon: <AntDesign name="copy1" size={dp(20)} color={'#333'}/>,
72
+ // onPress: () => {
73
+ // // Clipboard.setString(message.payload.title + '\r\n' + message.payload.content);
74
+ // }
75
+ // },
76
+ {
77
+ key: 'forward',
78
+ title: t('forward'),
79
+ icon: <FontAwesome5_1.default name="reply" size={(0, rn_ui_1.dp)(19)} color={'#333'}/>,
80
+ onPress: () => {
81
+ (0, init_1.getImManager)().store.dispatch(im_base_1.MessageActions.setForwardMessage(message));
82
+ navigation.navigate('ForwardToConversation');
83
+ },
84
+ },
85
+ {
86
+ key: 'delete',
87
+ title: t('delete'),
88
+ icon: <MaterialCommunityIcons_1.default name="delete-forever" size={(0, rn_ui_1.dp)(23)} color={'#333'}/>,
89
+ onPress: () => {
90
+ (0, common_action_sheet_1.ConfirmActionSheet)(t('confirmDeleteMessage'), () => __awaiter(void 0, void 0, void 0, function* () {
91
+ yield (0, init_1.getImManager)().deleteMessage(message);
92
+ }), t);
93
+ },
94
+ },
95
+ {
96
+ key: 'reply',
97
+ title: t('reply'),
98
+ icon: <MaterialCommunityIcons_1.default name="message-processing" size={(0, rn_ui_1.dp)(20)} color={'#333'}/>,
99
+ onPress: () => {
100
+ const imManager = (0, init_1.getImManager)();
101
+ imManager.replyMessage(message);
102
+ setTimeout(() => {
103
+ var _a, _b;
104
+ if ((_a = imManager.inputRef) === null || _a === void 0 ? void 0 : _a.current) {
105
+ imManager.inputRef.current.focusTextInput();
106
+ }
107
+ if ((_b = imManager.flatListRef) === null || _b === void 0 ? void 0 : _b.current) {
108
+ imManager.flatListRef.current.scrollToOffset({
109
+ offset: 0,
110
+ animated: false,
111
+ });
112
+ }
113
+ }, 300);
114
+ },
115
+ },
116
+ {
117
+ key: 'undo',
118
+ title: t('undo'),
119
+ icon: <FontAwesome_1.default name="undo" size={(0, rn_ui_1.dp)(20)} color={'#333'}/>,
120
+ onPress: () => __awaiter(void 0, void 0, void 0, function* () {
121
+ (0, common_action_sheet_1.ConfirmActionSheet)(t('confirmUndoMessage'), () => __awaiter(void 0, void 0, void 0, function* () {
122
+ try {
123
+ yield (0, init_1.getImManager)().undoMessage(message);
124
+ }
125
+ catch (e) {
126
+ rn_ui_1.Toast.error(t('undoFail'));
127
+ }
128
+ }), t);
129
+ }),
130
+ },
131
+ {
132
+ key: 'feedback',
133
+ title: t('feedback'),
134
+ icon: <MaterialIcons_1.default name="feedback" size={(0, rn_ui_1.dp)(20)} color={'#333'}/>,
135
+ onPress: () => __awaiter(void 0, void 0, void 0, function* () {
136
+ rn_ui_1.Modal.open({
137
+ content: <ReceiptBack_1.ReceiptBack message={message}/>,
138
+ maskClosable: true,
139
+ footer: {
140
+ cancelButton: false,
141
+ confirmButton: false,
142
+ },
143
+ });
144
+ })
145
+ },
146
+ {
147
+ key: 'collect',
148
+ title: t('collect'),
149
+ icon: <FontAwesome_1.default name="star" size={(0, rn_ui_1.dp)(20)} color={'#333'}/>,
150
+ onPress: () => {
151
+ (0, init_1.getImManager)().collectMessage(message);
152
+ },
153
+ },
154
+ {
155
+ key: 'saveToAlbum',
156
+ title: t('savePicture'),
157
+ icon: <AntDesign_1.default name="save" size={(0, rn_ui_1.dp)(20)} color={'#333'}/>,
158
+ onPress: () => __awaiter(void 0, void 0, void 0, function* () {
159
+ yield (0, file_1.saveToAlbum)((0, init_1.getImManager)(), localPath);
160
+ }),
161
+ },
162
+ {
163
+ key: 'download',
164
+ title: t('download'),
165
+ icon: <AntDesign_1.default name="download" size={(0, rn_ui_1.dp)(20)} color={'#333'}/>,
166
+ onPress: () => __awaiter(void 0, void 0, void 0, function* () {
167
+ const imManager = (0, init_1.getImManager)();
168
+ imManager.store.dispatch(im_base_1.MessagePanelActions.downloadFile(imManager, message));
169
+ }),
170
+ },
171
+ {
172
+ key: 'multiple',
173
+ title: t('multiple'),
174
+ icon: <MaterialCommunityIcons_1.default name="playlist-check" size={(0, rn_ui_1.dp)(22)} color={'#333'}/>,
175
+ onPress: () => {
176
+ (0, init_1.getImManager)().store.dispatch(im_base_1.MessagePanelActions.startMultipleSelect(message));
177
+ },
178
+ },
179
+ ];
180
+ const { messageFrom, isMyMessage, messageFromName, messageTime, payloadType, messageStatus, payload: {
181
+ // title,
182
+ // content,
183
+ // avatars,
184
+ // text,
185
+ localPath, }, conversationId, conversationType, } = message;
186
+ const imManager = (0, init_1.getImManager)();
187
+ return items.filter(item => {
188
+ const { key } = item;
189
+ //if (isMyMessage && key === 'reply') return false;
190
+ if (messageStatus === im_base_1.MessageStatus.EMITTING) {
191
+ return false;
192
+ }
193
+ if ((!isMyMessage ||
194
+ messageStatus === im_base_1.MessageStatus.EMIT_ERROR ||
195
+ new Date().getTime() - messageTime > imManager.undoLimitTime) &&
196
+ key === 'undo')
197
+ return false;
198
+ if (payloadType === im_base_1.PayloadType.FILE && localPath && key === 'download') {
199
+ return false;
200
+ }
201
+ if ((!isMyMessage || conversationType !== im_base_1.ConversationType.C2C) && key === 'feedback') {
202
+ return false;
203
+ }
204
+ return actions.includes(item.key);
205
+ });
206
+ };
207
+ const renderOperations = (items, close) => {
208
+ return (<react_native_1.View style={styles.operationWrap}>
209
+ {items.map((item, index) => {
210
+ return (<react_native_1.TouchableOpacity key={index} onPress={() => {
211
+ item.onPress && item.onPress();
212
+ close && close();
213
+ }}>
214
+ <react_native_1.View style={styles.operationItem}>
215
+ {item.icon}
216
+ <react_native_1.Text style={styles.operationText}>{item.title}</react_native_1.Text>
217
+ </react_native_1.View>
218
+ </react_native_1.TouchableOpacity>);
219
+ })}
220
+ </react_native_1.View>);
221
+ };
222
+ const MessageOption = ({ visible, message, nativeEvent, onClose }) => {
223
+ var _a;
224
+ const { t } = (0, useTranslation_1.default)();
225
+ const headerHeight = (0, elements_1.useHeaderHeight)();
226
+ const { messageBarHeight } = (0, useImSelector_1.usePanel)();
227
+ const navigation = (0, rn_ui_1.useNavigation)();
228
+ const items = getMessageAction(t, message, navigation);
229
+ const translateX = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current;
230
+ const translateY = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current;
231
+ const scale = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current;
232
+ const opacity = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current;
233
+ const { width: screenWidth, height: screenHeight } = react_native_1.Dimensions.get('window');
234
+ const padding = (0, rn_ui_1.dp)(12);
235
+ // 视窗范围
236
+ const displayArea = {
237
+ x: padding,
238
+ y: padding,
239
+ width: screenWidth - padding * 2,
240
+ height: screenHeight - headerHeight - messageBarHeight - ((_a = react_native_1.StatusBar.currentHeight) !== null && _a !== void 0 ? _a : 0) - padding * 2,
241
+ };
242
+ const showAnimation = (x, y) => {
243
+ translateX.setValue(x);
244
+ translateY.setValue(y);
245
+ react_native_1.Animated.parallel([
246
+ react_native_1.Animated.timing(scale, {
247
+ toValue: 1,
248
+ duration: 150,
249
+ useNativeDriver: true,
250
+ }),
251
+ react_native_1.Animated.timing(opacity, {
252
+ toValue: 1,
253
+ duration: 150,
254
+ useNativeDriver: true,
255
+ }),
256
+ ]).start();
257
+ };
258
+ const hideAnimation = () => {
259
+ react_native_1.Animated.parallel([
260
+ react_native_1.Animated.timing(scale, {
261
+ toValue: 0,
262
+ duration: 150,
263
+ useNativeDriver: true,
264
+ }),
265
+ react_native_1.Animated.timing(opacity, {
266
+ toValue: 0,
267
+ duration: 150,
268
+ useNativeDriver: true,
269
+ }),
270
+ ]).start(() => {
271
+ onClose();
272
+ translateX.setValue(0);
273
+ translateY.setValue(0);
274
+ opacity.setValue(0);
275
+ scale.setValue(0);
276
+ });
277
+ };
278
+ const onLayout = (e) => {
279
+ const { width: contentWidth, height: contentHeight } = e.nativeEvent.layout;
280
+ // 计算操作项的显示位置
281
+ // 判断点击位置是否存在
282
+ if (nativeEvent) {
283
+ // 测量点击位置的元素
284
+ // @ts-ignore
285
+ react_native_1.UIManager.measure(nativeEvent.target, (x, y, width, height, pageX, pageY) => {
286
+ console.log('measure', x, y, width, height, pageX, pageY);
287
+ let targetY = 0;
288
+ if (pageY + height + contentHeight > displayArea.height) {
289
+ targetY = pageY - contentHeight;
290
+ }
291
+ else {
292
+ targetY = pageY + height;
293
+ }
294
+ showAnimation(displayArea.x + displayArea.width - contentWidth, targetY);
295
+ });
296
+ }
297
+ else {
298
+ showAnimation(displayArea.x + displayArea.width - contentWidth, displayArea.y + displayArea.height / 2 - contentHeight / 2);
299
+ }
300
+ };
301
+ const onHide = () => {
302
+ hideAnimation();
303
+ };
304
+ if (!items.length)
305
+ return null;
306
+ return (<react_native_1.Modal visible={visible} transparent onRequestClose={onHide}>
307
+ <react_native_1.TouchableWithoutFeedback onPress={onHide}>
308
+ <react_native_1.View style={react_native_1.StyleSheet.absoluteFill}/>
309
+ </react_native_1.TouchableWithoutFeedback>
310
+ <react_native_1.Animated.View style={[
311
+ styles.popWrap,
312
+ {
313
+ transform: [
314
+ {
315
+ translateX: translateX,
316
+ },
317
+ {
318
+ translateY: translateY,
319
+ },
320
+ {
321
+ scale: scale,
322
+ },
323
+ ],
324
+ opacity: opacity,
325
+ },
326
+ ]} onLayout={onLayout}>
327
+ {renderOperations(items, onClose)}
328
+ </react_native_1.Animated.View>
329
+ </react_native_1.Modal>);
330
+ };
331
+ const styles = react_native_1.StyleSheet.create({
332
+ popWrap: {
333
+ maxWidth: (0, rn_ui_1.dp)(280),
334
+ borderRadius: (0, rn_ui_1.dp)(5),
335
+ paddingTop: (0, rn_ui_1.dp)(10),
336
+ backgroundColor: '#fff',
337
+ shadowOffset: { width: 1, height: 2 },
338
+ shadowColor: 'rgba(0, 0, 0, 0.1)',
339
+ shadowOpacity: 1,
340
+ shadowRadius: (0, rn_ui_1.dp)(5),
341
+ elevation: 10,
342
+ },
343
+ operationWrap: {
344
+ flexDirection: 'row',
345
+ flexWrap: 'wrap',
346
+ },
347
+ operationItem: {
348
+ width: (0, rn_ui_1.dp)(272 / 4),
349
+ height: (0, rn_ui_1.dp)(40),
350
+ paddingHorizontal: (0, rn_ui_1.dp)(2),
351
+ justifyContent: 'space-between',
352
+ alignItems: 'center',
353
+ marginBottom: (0, rn_ui_1.dp)(10),
354
+ },
355
+ operationText: {
356
+ fontSize: (0, rn_ui_1.dp)(12),
357
+ lineHeight: (0, rn_ui_1.dp)(15),
358
+ },
359
+ });
360
+ exports.default = (0, react_1.memo)(MessageOption);
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { IMessage } from '@smart-link/im-base';
3
+ import { StyleProp } from 'react-native';
4
+ import { ViewStyle } from 'react-native/Libraries/StyleSheet/StyleSheetTypes';
5
+ import { GestureResponderEvent } from 'react-native/Libraries/Types/CoreEventTypes';
6
+ export interface MessagePayloadProps extends IMessage {
7
+ style?: StyleProp<ViewStyle>;
8
+ direction?: 'left' | 'right';
9
+ showArrow?: boolean;
10
+ onPress?: (e: GestureResponderEvent) => void;
11
+ onLongPress?: (e: GestureResponderEvent) => void;
12
+ }
13
+ declare const _default: React.NamedExoticComponent<MessagePayloadProps>;
14
+ export default _default;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ const react_1 = __importStar(require("react"));
41
+ const im_base_1 = require("@smart-link/im-base");
42
+ const react_native_1 = require("react-native");
43
+ const PayloadContact_1 = __importDefault(require("./Payload/PayloadContact"));
44
+ const PayloadFile_1 = __importDefault(require("./Payload/PayloadFile"));
45
+ const PayloadPicture_1 = __importDefault(require("./Payload/PayloadPicture"));
46
+ const PayloadVoice_1 = __importDefault(require("./Payload/PayloadVoice"));
47
+ const PayloadVideo_1 = __importDefault(require("./Payload/PayloadVideo"));
48
+ const PayloadText_1 = __importDefault(require("./Payload/PayloadText"));
49
+ const styles_1 = require("../../../components/styles");
50
+ const useTranslation_1 = __importDefault(require("../../../hooks/useTranslation"));
51
+ const PayloadMultiple_1 = __importDefault(require("./Payload/PayloadMultiple"));
52
+ const PayloadWrapper_1 = __importDefault(require("./Payload/PayloadWrapper"));
53
+ const PayloadShare_1 = __importDefault(require("../../../pages/message/components/Payload/PayloadShare"));
54
+ const MessagePayload = props => {
55
+ const { style: outStyle } = props, retProps = __rest(props, ["style"]);
56
+ const { t } = (0, useTranslation_1.default)();
57
+ const payloadType = props.payloadType;
58
+ const noStylePayloadType = [im_base_1.PayloadType.PICTURE, im_base_1.PayloadType.VIDEO];
59
+ const style = !noStylePayloadType.includes(payloadType) ? outStyle : [];
60
+ const mergeProps = Object.assign(Object.assign({}, retProps), { style });
61
+ let content;
62
+ switch (payloadType) {
63
+ case im_base_1.PayloadType.TEXT:
64
+ content = <PayloadText_1.default {...mergeProps}/>;
65
+ break;
66
+ case im_base_1.PayloadType.PICTURE:
67
+ content = <PayloadPicture_1.default {...mergeProps}/>;
68
+ break;
69
+ case im_base_1.PayloadType.VOICE:
70
+ content = <PayloadVoice_1.default {...mergeProps}/>;
71
+ break;
72
+ case im_base_1.PayloadType.VIDEO:
73
+ content = <PayloadVideo_1.default {...mergeProps}/>;
74
+ break;
75
+ case im_base_1.PayloadType.FILE:
76
+ content = <PayloadFile_1.default {...mergeProps}/>;
77
+ break;
78
+ case im_base_1.PayloadType.CONTACT:
79
+ content = <PayloadContact_1.default {...mergeProps}/>;
80
+ break;
81
+ case im_base_1.PayloadType.MULTIPLE:
82
+ content = <PayloadMultiple_1.default {...mergeProps}/>;
83
+ break;
84
+ case im_base_1.PayloadType.SHARE:
85
+ content = <PayloadShare_1.default {...mergeProps}/>;
86
+ break;
87
+ default:
88
+ console.log('暂不支持的消息类型:', payloadType);
89
+ content = (<PayloadWrapper_1.default style={style} direction={mergeProps.direction}>
90
+ <react_native_1.Text style={styles_1.plain}>[{t('msgTypeNotSupported')}]</react_native_1.Text>
91
+ </PayloadWrapper_1.default>);
92
+ break;
93
+ }
94
+ return content;
95
+ };
96
+ exports.default = (0, react_1.memo)(MessagePayload);
@@ -0,0 +1,10 @@
1
+ import { IMessage } from '@smart-link/im-base';
2
+ import React from 'react';
3
+ export interface MessagePictureAlbumProps {
4
+ visible: boolean;
5
+ messages: IMessage[];
6
+ messageSeq: string;
7
+ onClose: () => void;
8
+ }
9
+ declare const MessagePictureAlbum: ({ visible, onClose, messages, messageSeq }: MessagePictureAlbumProps) => React.JSX.Element;
10
+ export default MessagePictureAlbum;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const file_1 = require("../../../api/file");
30
+ const file_2 = require("../../../utils/file");
31
+ const im_base_1 = require("@smart-link/im-base");
32
+ const rn_ui_1 = require("@smart-link/rn-ui");
33
+ const react_1 = __importStar(require("react"));
34
+ const react_native_1 = require("react-native");
35
+ const AntDesign_1 = __importDefault(require("react-native-vector-icons/AntDesign"));
36
+ const MessagePictureAlbum = ({ visible, onClose, messages, messageSeq }) => {
37
+ const { width, height } = react_native_1.Dimensions.get('window');
38
+ const [index, setIndex] = (0, react_1.useState)(0);
39
+ const [sources, setSources] = (0, react_1.useState)([]);
40
+ (0, react_1.useEffect)(() => {
41
+ if (!visible)
42
+ return;
43
+ let defaultIndex = 0;
44
+ const imageSources = messages
45
+ .filter(item => item.payloadType === im_base_1.PayloadType.PICTURE)
46
+ .sort((s, t) => {
47
+ return s.messageTime - t.messageTime;
48
+ })
49
+ .map((item, index) => {
50
+ if (messageSeq === item.messageSeq) {
51
+ defaultIndex = index;
52
+ }
53
+ const { payload: { localPath, fileId }, } = item;
54
+ let source = localPath;
55
+ if (Object.prototype.toString.call(localPath) === '[object String]') {
56
+ source = { uri: (0, file_2.toAbsolutePath)(localPath) };
57
+ }
58
+ else if (fileId) {
59
+ source = { uri: (0, file_1.getDownloadUrl)(fileId) };
60
+ }
61
+ return source;
62
+ });
63
+ setSources(imageSources);
64
+ setIndex(defaultIndex);
65
+ }, [visible, messages]);
66
+ const handleClose = () => {
67
+ setIndex(0);
68
+ setSources([]);
69
+ onClose();
70
+ };
71
+ return (<react_native_1.Modal visible={visible} onRequestClose={handleClose}>
72
+ {visible && (<react_native_1.View style={styles.root}>
73
+ {react_native_1.Platform.OS === 'android' && <react_native_1.StatusBar backgroundColor={'#000'}/>}
74
+ <react_native_1.View style={{ width: width, height: height }}>
75
+ <rn_ui_1.AlbumView images={sources} defaultIndex={index}/>
76
+ </react_native_1.View>
77
+
78
+ <react_native_1.TouchableOpacity style={styles.cancel} onPress={handleClose}>
79
+ <AntDesign_1.default name='close' size={(0, rn_ui_1.dp)(25)} color={'#fff'}/>
80
+ </react_native_1.TouchableOpacity>
81
+ </react_native_1.View>)}
82
+ </react_native_1.Modal>);
83
+ };
84
+ const styles = react_native_1.StyleSheet.create({
85
+ root: {
86
+ flex: 1,
87
+ backgroundColor: '#000',
88
+ justifyContent: 'center',
89
+ alignItems: 'center',
90
+ position: 'relative',
91
+ },
92
+ cancel: {
93
+ height: (0, rn_ui_1.dp)(40),
94
+ width: (0, rn_ui_1.dp)(40),
95
+ borderRadius: (0, rn_ui_1.dp)(5),
96
+ backgroundColor: '#333',
97
+ position: 'absolute',
98
+ top: (0, rn_ui_1.dp)(70),
99
+ right: (0, rn_ui_1.dp)(30),
100
+ justifyContent: 'center',
101
+ alignItems: 'center',
102
+ opacity: 0.7,
103
+ },
104
+ });
105
+ exports.default = MessagePictureAlbum;
@@ -0,0 +1,6 @@
1
+ import { IMessage } from '@smart-link/im-base';
2
+ import React from 'react';
3
+ export interface MessageReceiptStatusProps extends IMessage {
4
+ }
5
+ declare const MessageReceiptStatus: React.NamedExoticComponent<MessageReceiptStatusProps>;
6
+ export default MessageReceiptStatus;