@ion299/sdk-react-native 0.1.0-beta.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 (199) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/ChatPlatformSdk.podspec +20 -0
  3. package/README.md +315 -0
  4. package/android/build.gradle +54 -0
  5. package/android/src/main/AndroidManifest.xml +18 -0
  6. package/android/src/main/java/com/chatplatform/sdk/ChatSdkDownloaderModule.kt +240 -0
  7. package/android/src/main/java/com/chatplatform/sdk/ChatSdkFilePickerModule.kt +165 -0
  8. package/android/src/main/java/com/chatplatform/sdk/ChatSdkPackage.kt +15 -0
  9. package/android/src/main/res/xml/chat_sdk_file_paths.xml +7 -0
  10. package/ios/ChatSdkDownloader.m +10 -0
  11. package/ios/ChatSdkDownloader.swift +141 -0
  12. package/ios/ChatSdkFilePicker.m +9 -0
  13. package/ios/ChatSdkFilePicker.swift +161 -0
  14. package/lib/commonjs/ChatSDK.js +193 -0
  15. package/lib/commonjs/ChatSDK.js.map +1 -0
  16. package/lib/commonjs/api.js +195 -0
  17. package/lib/commonjs/api.js.map +1 -0
  18. package/lib/commonjs/attachmentUtils.js +39 -0
  19. package/lib/commonjs/attachmentUtils.js.map +1 -0
  20. package/lib/commonjs/components/AttachmentGallery.js +367 -0
  21. package/lib/commonjs/components/AttachmentGallery.js.map +1 -0
  22. package/lib/commonjs/components/ChatScreen.js +286 -0
  23. package/lib/commonjs/components/ChatScreen.js.map +1 -0
  24. package/lib/commonjs/components/MessageBubble.js +227 -0
  25. package/lib/commonjs/components/MessageBubble.js.map +1 -0
  26. package/lib/commonjs/components/MessageInput.js +273 -0
  27. package/lib/commonjs/components/MessageInput.js.map +1 -0
  28. package/lib/commonjs/components/SurveyOverlay.js +499 -0
  29. package/lib/commonjs/components/SurveyOverlay.js.map +1 -0
  30. package/lib/commonjs/downloaders/defaultAttachmentDownloader.js +28 -0
  31. package/lib/commonjs/downloaders/defaultAttachmentDownloader.js.map +1 -0
  32. package/lib/commonjs/filePicker.js +25 -0
  33. package/lib/commonjs/filePicker.js.map +1 -0
  34. package/lib/commonjs/index.js +27 -0
  35. package/lib/commonjs/index.js.map +1 -0
  36. package/lib/commonjs/native/NativeChatSdkDownloader.js +28 -0
  37. package/lib/commonjs/native/NativeChatSdkDownloader.js.map +1 -0
  38. package/lib/commonjs/native/NativeChatSdkFilePicker.js +17 -0
  39. package/lib/commonjs/native/NativeChatSdkFilePicker.js.map +1 -0
  40. package/lib/commonjs/package.json +1 -0
  41. package/lib/commonjs/realtime.js +242 -0
  42. package/lib/commonjs/realtime.js.map +1 -0
  43. package/lib/commonjs/safeArea.js +18 -0
  44. package/lib/commonjs/safeArea.js.map +1 -0
  45. package/lib/commonjs/session.js +159 -0
  46. package/lib/commonjs/session.js.map +1 -0
  47. package/lib/commonjs/surveyCache.js +30 -0
  48. package/lib/commonjs/surveyCache.js.map +1 -0
  49. package/lib/commonjs/theme.js +29 -0
  50. package/lib/commonjs/theme.js.map +1 -0
  51. package/lib/commonjs/types.js +2 -0
  52. package/lib/commonjs/types.js.map +1 -0
  53. package/lib/commonjs/useChat.js +145 -0
  54. package/lib/commonjs/useChat.js.map +1 -0
  55. package/lib/module/ChatSDK.js +189 -0
  56. package/lib/module/ChatSDK.js.map +1 -0
  57. package/lib/module/api.js +190 -0
  58. package/lib/module/api.js.map +1 -0
  59. package/lib/module/attachmentUtils.js +33 -0
  60. package/lib/module/attachmentUtils.js.map +1 -0
  61. package/lib/module/components/AttachmentGallery.js +362 -0
  62. package/lib/module/components/AttachmentGallery.js.map +1 -0
  63. package/lib/module/components/ChatScreen.js +281 -0
  64. package/lib/module/components/ChatScreen.js.map +1 -0
  65. package/lib/module/components/MessageBubble.js +222 -0
  66. package/lib/module/components/MessageBubble.js.map +1 -0
  67. package/lib/module/components/MessageInput.js +268 -0
  68. package/lib/module/components/MessageInput.js.map +1 -0
  69. package/lib/module/components/SurveyOverlay.js +494 -0
  70. package/lib/module/components/SurveyOverlay.js.map +1 -0
  71. package/lib/module/downloaders/defaultAttachmentDownloader.js +22 -0
  72. package/lib/module/downloaders/defaultAttachmentDownloader.js.map +1 -0
  73. package/lib/module/filePicker.js +20 -0
  74. package/lib/module/filePicker.js.map +1 -0
  75. package/lib/module/index.js +6 -0
  76. package/lib/module/index.js.map +1 -0
  77. package/lib/module/native/NativeChatSdkDownloader.js +23 -0
  78. package/lib/module/native/NativeChatSdkDownloader.js.map +1 -0
  79. package/lib/module/native/NativeChatSdkFilePicker.js +13 -0
  80. package/lib/module/native/NativeChatSdkFilePicker.js.map +1 -0
  81. package/lib/module/package.json +1 -0
  82. package/lib/module/realtime.js +236 -0
  83. package/lib/module/realtime.js.map +1 -0
  84. package/lib/module/safeArea.js +14 -0
  85. package/lib/module/safeArea.js.map +1 -0
  86. package/lib/module/session.js +154 -0
  87. package/lib/module/session.js.map +1 -0
  88. package/lib/module/surveyCache.js +23 -0
  89. package/lib/module/surveyCache.js.map +1 -0
  90. package/lib/module/theme.js +25 -0
  91. package/lib/module/theme.js.map +1 -0
  92. package/lib/module/types.js +2 -0
  93. package/lib/module/types.js.map +1 -0
  94. package/lib/module/useChat.js +141 -0
  95. package/lib/module/useChat.js.map +1 -0
  96. package/lib/typescript/commonjs/ChatSDK.d.ts +49 -0
  97. package/lib/typescript/commonjs/ChatSDK.d.ts.map +1 -0
  98. package/lib/typescript/commonjs/api.d.ts +31 -0
  99. package/lib/typescript/commonjs/api.d.ts.map +1 -0
  100. package/lib/typescript/commonjs/attachmentUtils.d.ts +12 -0
  101. package/lib/typescript/commonjs/attachmentUtils.d.ts.map +1 -0
  102. package/lib/typescript/commonjs/components/AttachmentGallery.d.ts +16 -0
  103. package/lib/typescript/commonjs/components/AttachmentGallery.d.ts.map +1 -0
  104. package/lib/typescript/commonjs/components/ChatScreen.d.ts +16 -0
  105. package/lib/typescript/commonjs/components/ChatScreen.d.ts.map +1 -0
  106. package/lib/typescript/commonjs/components/MessageBubble.d.ts +12 -0
  107. package/lib/typescript/commonjs/components/MessageBubble.d.ts.map +1 -0
  108. package/lib/typescript/commonjs/components/MessageInput.d.ts +14 -0
  109. package/lib/typescript/commonjs/components/MessageInput.d.ts.map +1 -0
  110. package/lib/typescript/commonjs/components/SurveyOverlay.d.ts +13 -0
  111. package/lib/typescript/commonjs/components/SurveyOverlay.d.ts.map +1 -0
  112. package/lib/typescript/commonjs/downloaders/defaultAttachmentDownloader.d.ts +3 -0
  113. package/lib/typescript/commonjs/downloaders/defaultAttachmentDownloader.d.ts.map +1 -0
  114. package/lib/typescript/commonjs/filePicker.d.ts +4 -0
  115. package/lib/typescript/commonjs/filePicker.d.ts.map +1 -0
  116. package/lib/typescript/commonjs/index.d.ts +7 -0
  117. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/native/NativeChatSdkDownloader.d.ts +24 -0
  119. package/lib/typescript/commonjs/native/NativeChatSdkDownloader.d.ts.map +1 -0
  120. package/lib/typescript/commonjs/native/NativeChatSdkFilePicker.d.ts +17 -0
  121. package/lib/typescript/commonjs/native/NativeChatSdkFilePicker.d.ts.map +1 -0
  122. package/lib/typescript/commonjs/package.json +1 -0
  123. package/lib/typescript/commonjs/realtime.d.ts +42 -0
  124. package/lib/typescript/commonjs/realtime.d.ts.map +1 -0
  125. package/lib/typescript/commonjs/safeArea.d.ts +4 -0
  126. package/lib/typescript/commonjs/safeArea.d.ts.map +1 -0
  127. package/lib/typescript/commonjs/session.d.ts +45 -0
  128. package/lib/typescript/commonjs/session.d.ts.map +1 -0
  129. package/lib/typescript/commonjs/surveyCache.d.ts +5 -0
  130. package/lib/typescript/commonjs/surveyCache.d.ts.map +1 -0
  131. package/lib/typescript/commonjs/theme.d.ts +21 -0
  132. package/lib/typescript/commonjs/theme.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/types.d.ts +156 -0
  134. package/lib/typescript/commonjs/types.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/useChat.d.ts +16 -0
  136. package/lib/typescript/commonjs/useChat.d.ts.map +1 -0
  137. package/lib/typescript/module/ChatSDK.d.ts +49 -0
  138. package/lib/typescript/module/ChatSDK.d.ts.map +1 -0
  139. package/lib/typescript/module/api.d.ts +31 -0
  140. package/lib/typescript/module/api.d.ts.map +1 -0
  141. package/lib/typescript/module/attachmentUtils.d.ts +12 -0
  142. package/lib/typescript/module/attachmentUtils.d.ts.map +1 -0
  143. package/lib/typescript/module/components/AttachmentGallery.d.ts +16 -0
  144. package/lib/typescript/module/components/AttachmentGallery.d.ts.map +1 -0
  145. package/lib/typescript/module/components/ChatScreen.d.ts +16 -0
  146. package/lib/typescript/module/components/ChatScreen.d.ts.map +1 -0
  147. package/lib/typescript/module/components/MessageBubble.d.ts +12 -0
  148. package/lib/typescript/module/components/MessageBubble.d.ts.map +1 -0
  149. package/lib/typescript/module/components/MessageInput.d.ts +14 -0
  150. package/lib/typescript/module/components/MessageInput.d.ts.map +1 -0
  151. package/lib/typescript/module/components/SurveyOverlay.d.ts +13 -0
  152. package/lib/typescript/module/components/SurveyOverlay.d.ts.map +1 -0
  153. package/lib/typescript/module/downloaders/defaultAttachmentDownloader.d.ts +3 -0
  154. package/lib/typescript/module/downloaders/defaultAttachmentDownloader.d.ts.map +1 -0
  155. package/lib/typescript/module/filePicker.d.ts +4 -0
  156. package/lib/typescript/module/filePicker.d.ts.map +1 -0
  157. package/lib/typescript/module/index.d.ts +7 -0
  158. package/lib/typescript/module/index.d.ts.map +1 -0
  159. package/lib/typescript/module/native/NativeChatSdkDownloader.d.ts +24 -0
  160. package/lib/typescript/module/native/NativeChatSdkDownloader.d.ts.map +1 -0
  161. package/lib/typescript/module/native/NativeChatSdkFilePicker.d.ts +17 -0
  162. package/lib/typescript/module/native/NativeChatSdkFilePicker.d.ts.map +1 -0
  163. package/lib/typescript/module/package.json +1 -0
  164. package/lib/typescript/module/realtime.d.ts +42 -0
  165. package/lib/typescript/module/realtime.d.ts.map +1 -0
  166. package/lib/typescript/module/safeArea.d.ts +4 -0
  167. package/lib/typescript/module/safeArea.d.ts.map +1 -0
  168. package/lib/typescript/module/session.d.ts +45 -0
  169. package/lib/typescript/module/session.d.ts.map +1 -0
  170. package/lib/typescript/module/surveyCache.d.ts +5 -0
  171. package/lib/typescript/module/surveyCache.d.ts.map +1 -0
  172. package/lib/typescript/module/theme.d.ts +21 -0
  173. package/lib/typescript/module/theme.d.ts.map +1 -0
  174. package/lib/typescript/module/types.d.ts +156 -0
  175. package/lib/typescript/module/types.d.ts.map +1 -0
  176. package/lib/typescript/module/useChat.d.ts +16 -0
  177. package/lib/typescript/module/useChat.d.ts.map +1 -0
  178. package/package.json +75 -0
  179. package/react-native.config.js +10 -0
  180. package/src/ChatSDK.ts +237 -0
  181. package/src/api.ts +228 -0
  182. package/src/attachmentUtils.ts +49 -0
  183. package/src/components/AttachmentGallery.tsx +363 -0
  184. package/src/components/ChatScreen.tsx +267 -0
  185. package/src/components/MessageBubble.tsx +208 -0
  186. package/src/components/MessageInput.tsx +280 -0
  187. package/src/components/SurveyOverlay.tsx +469 -0
  188. package/src/downloaders/defaultAttachmentDownloader.ts +27 -0
  189. package/src/filePicker.ts +22 -0
  190. package/src/index.ts +30 -0
  191. package/src/native/NativeChatSdkDownloader.ts +49 -0
  192. package/src/native/NativeChatSdkFilePicker.ts +30 -0
  193. package/src/realtime.ts +278 -0
  194. package/src/safeArea.ts +8 -0
  195. package/src/session.ts +196 -0
  196. package/src/surveyCache.ts +24 -0
  197. package/src/theme.ts +49 -0
  198. package/src/types.ts +199 -0
  199. package/src/useChat.ts +190 -0
@@ -0,0 +1,362 @@
1
+ "use strict";
2
+
3
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
4
+ import { ActivityIndicator, Alert, Dimensions, FlatList, Modal, Platform, SafeAreaView, StatusBar, StyleSheet, Text, TouchableOpacity, View, Image } from 'react-native';
5
+ import { attachmentDisplayName } from "../attachmentUtils.js";
6
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
7
+ const {
8
+ width: SW
9
+ } = Dimensions.get('window');
10
+ function formatBytes(bytes) {
11
+ if (bytes <= 0) return '';
12
+ if (bytes < 1024) return `${bytes} Б`;
13
+ if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} КБ`;
14
+ return `${(bytes / (1024 * 1024)).toFixed(1)} МБ`;
15
+ }
16
+ function GallerySlide({
17
+ item,
18
+ isVisible
19
+ }) {
20
+ const [loading, setLoading] = useState(true);
21
+ const displayName = attachmentDisplayName(item);
22
+ if (item.type === 'image') {
23
+ return /*#__PURE__*/_jsxs(View, {
24
+ style: slide.root,
25
+ children: [loading && isVisible && /*#__PURE__*/_jsx(ActivityIndicator, {
26
+ color: "#fff",
27
+ size: "large",
28
+ style: StyleSheet.absoluteFill
29
+ }), /*#__PURE__*/_jsx(Image, {
30
+ source: {
31
+ uri: item.url
32
+ },
33
+ style: slide.image,
34
+ resizeMode: "contain",
35
+ onLoadStart: () => setLoading(true),
36
+ onLoadEnd: () => setLoading(false)
37
+ })]
38
+ });
39
+ }
40
+ return /*#__PURE__*/_jsxs(View, {
41
+ style: [slide.root, slide.doc],
42
+ children: [/*#__PURE__*/_jsx(Text, {
43
+ style: slide.docName,
44
+ numberOfLines: 6,
45
+ children: displayName
46
+ }), item.size > 0 && /*#__PURE__*/_jsx(Text, {
47
+ style: slide.docSize,
48
+ children: formatBytes(item.size)
49
+ })]
50
+ });
51
+ }
52
+ export function AttachmentGallery({
53
+ attachments,
54
+ initialIndex,
55
+ visible,
56
+ onClose,
57
+ downloadLabel = 'Скачать',
58
+ onDownloadAttachment,
59
+ theme
60
+ }) {
61
+ const listRef = useRef(null);
62
+ const [currentIndex, setCurrentIndex] = useState(initialIndex);
63
+ const [isDownloading, setIsDownloading] = useState(false);
64
+ const current = attachments[currentIndex];
65
+ useEffect(() => {
66
+ if (visible) {
67
+ setCurrentIndex(initialIndex);
68
+ }
69
+ }, [visible, initialIndex]);
70
+ const handleViewableChange = useCallback(({
71
+ viewableItems
72
+ }) => {
73
+ if (viewableItems[0]?.index != null) {
74
+ setCurrentIndex(viewableItems[0].index);
75
+ }
76
+ }, []);
77
+ const viewabilityConfig = useRef({
78
+ viewAreaCoveragePercentThreshold: 50
79
+ });
80
+ const scrollTo = index => {
81
+ listRef.current?.scrollToIndex({
82
+ index,
83
+ animated: true
84
+ });
85
+ setCurrentIndex(index);
86
+ };
87
+ const handleDownload = async () => {
88
+ if (!current || isDownloading) return;
89
+ setIsDownloading(true);
90
+ try {
91
+ await onDownloadAttachment(current);
92
+ } catch (e) {
93
+ const message = e instanceof Error ? e.message : 'Не удалось скачать файл';
94
+ Alert.alert('Ошибка', message);
95
+ } finally {
96
+ setIsDownloading(false);
97
+ }
98
+ };
99
+ const renderItem = ({
100
+ item,
101
+ index
102
+ }) => /*#__PURE__*/_jsx(GallerySlide, {
103
+ item: item,
104
+ isVisible: index === currentIndex
105
+ });
106
+ const counterText = attachments.length > 1 ? `${currentIndex + 1} / ${attachments.length}` : '';
107
+ return /*#__PURE__*/_jsx(Modal, {
108
+ visible: visible,
109
+ transparent: false,
110
+ animationType: "fade",
111
+ onRequestClose: onClose,
112
+ statusBarTranslucent: true,
113
+ children: /*#__PURE__*/_jsxs(View, {
114
+ style: styles.root,
115
+ children: [Platform.OS === 'android' && /*#__PURE__*/_jsx(StatusBar, {
116
+ barStyle: "light-content",
117
+ backgroundColor: "#000",
118
+ translucent: true
119
+ }), /*#__PURE__*/_jsx(SafeAreaView, {
120
+ style: styles.headerSafe,
121
+ children: /*#__PURE__*/_jsxs(View, {
122
+ style: styles.header,
123
+ children: [/*#__PURE__*/_jsx(View, {
124
+ style: styles.headerSide
125
+ }), /*#__PURE__*/_jsx(Text, {
126
+ style: styles.counter,
127
+ children: counterText
128
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
129
+ style: styles.closeBtn,
130
+ onPress: onClose,
131
+ hitSlop: 12,
132
+ children: /*#__PURE__*/_jsx(Text, {
133
+ style: styles.closeIcon,
134
+ children: "\u2715"
135
+ })
136
+ })]
137
+ })
138
+ }), /*#__PURE__*/_jsxs(View, {
139
+ style: styles.listWrap,
140
+ children: [/*#__PURE__*/_jsx(FlatList, {
141
+ ref: listRef,
142
+ data: attachments,
143
+ keyExtractor: a => String(a.id),
144
+ renderItem: renderItem,
145
+ horizontal: true,
146
+ pagingEnabled: true,
147
+ showsHorizontalScrollIndicator: false,
148
+ initialScrollIndex: initialIndex,
149
+ getItemLayout: (_, index) => ({
150
+ length: SW,
151
+ offset: SW * index,
152
+ index
153
+ }),
154
+ onViewableItemsChanged: handleViewableChange,
155
+ viewabilityConfig: viewabilityConfig.current,
156
+ style: styles.list
157
+ }), attachments.length > 1 && currentIndex > 0 && /*#__PURE__*/_jsx(TouchableOpacity, {
158
+ style: [styles.navBtn, styles.navLeft],
159
+ onPress: () => scrollTo(currentIndex - 1),
160
+ activeOpacity: 0.7,
161
+ children: /*#__PURE__*/_jsx(Text, {
162
+ style: styles.navIcon,
163
+ children: "\u2039"
164
+ })
165
+ }), attachments.length > 1 && currentIndex < attachments.length - 1 && /*#__PURE__*/_jsx(TouchableOpacity, {
166
+ style: [styles.navBtn, styles.navRight],
167
+ onPress: () => scrollTo(currentIndex + 1),
168
+ activeOpacity: 0.7,
169
+ children: /*#__PURE__*/_jsx(Text, {
170
+ style: styles.navIcon,
171
+ children: "\u203A"
172
+ })
173
+ })]
174
+ }), current && /*#__PURE__*/_jsx(SafeAreaView, {
175
+ style: styles.footerSafe,
176
+ children: /*#__PURE__*/_jsxs(View, {
177
+ style: styles.footer,
178
+ children: [/*#__PURE__*/_jsxs(View, {
179
+ style: styles.meta,
180
+ children: [/*#__PURE__*/_jsx(Text, {
181
+ style: styles.metaName,
182
+ numberOfLines: 1,
183
+ children: attachmentDisplayName(current)
184
+ }), /*#__PURE__*/_jsx(Text, {
185
+ style: styles.metaInfo,
186
+ children: [formatBytes(current.size), current.messageTime].filter(Boolean).join(' · ')
187
+ })]
188
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
189
+ style: [styles.downloadBtn, {
190
+ backgroundColor: theme.primaryColor
191
+ }],
192
+ onPress: () => void handleDownload(),
193
+ activeOpacity: 0.85,
194
+ disabled: isDownloading,
195
+ children: isDownloading ? /*#__PURE__*/_jsx(ActivityIndicator, {
196
+ color: "#fff",
197
+ size: "small"
198
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
199
+ children: [/*#__PURE__*/_jsx(Text, {
200
+ style: styles.downloadIcon,
201
+ children: "\u2193"
202
+ }), /*#__PURE__*/_jsx(Text, {
203
+ style: styles.downloadText,
204
+ children: downloadLabel
205
+ })]
206
+ })
207
+ })]
208
+ })
209
+ })]
210
+ })
211
+ });
212
+ }
213
+ const slide = StyleSheet.create({
214
+ root: {
215
+ width: SW,
216
+ flex: 1,
217
+ alignItems: 'center',
218
+ justifyContent: 'center'
219
+ },
220
+ image: {
221
+ width: SW,
222
+ height: '100%'
223
+ },
224
+ doc: {
225
+ paddingHorizontal: 32,
226
+ gap: 12
227
+ },
228
+ docName: {
229
+ color: '#fff',
230
+ fontSize: 20,
231
+ fontWeight: '600',
232
+ textAlign: 'center',
233
+ lineHeight: 28
234
+ },
235
+ docSize: {
236
+ color: 'rgba(255,255,255,0.7)',
237
+ fontSize: 15,
238
+ textAlign: 'center'
239
+ }
240
+ });
241
+ const styles = StyleSheet.create({
242
+ root: {
243
+ flex: 1,
244
+ backgroundColor: '#000'
245
+ },
246
+ headerSafe: {
247
+ backgroundColor: 'rgba(0,0,0,0.85)',
248
+ borderBottomWidth: StyleSheet.hairlineWidth,
249
+ borderBottomColor: 'rgba(255,255,255,0.15)'
250
+ },
251
+ header: {
252
+ flexDirection: 'row',
253
+ alignItems: 'center',
254
+ paddingHorizontal: 16,
255
+ paddingVertical: 10
256
+ },
257
+ headerSide: {
258
+ width: 40
259
+ },
260
+ counter: {
261
+ flex: 1,
262
+ color: '#fff',
263
+ fontSize: 16,
264
+ fontWeight: '600',
265
+ textAlign: 'center'
266
+ },
267
+ closeBtn: {
268
+ width: 40,
269
+ height: 40,
270
+ borderRadius: 20,
271
+ backgroundColor: '#fff',
272
+ alignItems: 'center',
273
+ justifyContent: 'center'
274
+ },
275
+ closeIcon: {
276
+ color: '#111',
277
+ fontSize: 18,
278
+ fontWeight: '700',
279
+ lineHeight: 20
280
+ },
281
+ listWrap: {
282
+ flex: 1
283
+ },
284
+ list: {
285
+ flex: 1
286
+ },
287
+ navBtn: {
288
+ position: 'absolute',
289
+ top: 0,
290
+ bottom: 0,
291
+ width: 56,
292
+ alignItems: 'center',
293
+ justifyContent: 'center'
294
+ },
295
+ navLeft: {
296
+ left: 0
297
+ },
298
+ navRight: {
299
+ right: 0
300
+ },
301
+ navIcon: {
302
+ color: '#fff',
303
+ fontSize: 40,
304
+ lineHeight: 44,
305
+ textShadowColor: 'rgba(0,0,0,0.8)',
306
+ textShadowOffset: {
307
+ width: 0,
308
+ height: 1
309
+ },
310
+ textShadowRadius: 6
311
+ },
312
+ footerSafe: {
313
+ backgroundColor: 'rgba(0,0,0,0.9)',
314
+ borderTopWidth: StyleSheet.hairlineWidth,
315
+ borderTopColor: 'rgba(255,255,255,0.15)'
316
+ },
317
+ footer: {
318
+ flexDirection: 'row',
319
+ alignItems: 'center',
320
+ paddingHorizontal: 20,
321
+ paddingVertical: 16,
322
+ gap: 12
323
+ },
324
+ meta: {
325
+ flex: 1,
326
+ gap: 4
327
+ },
328
+ metaName: {
329
+ color: '#fff',
330
+ fontSize: 15,
331
+ fontWeight: '600',
332
+ lineHeight: 20
333
+ },
334
+ metaInfo: {
335
+ color: 'rgba(255,255,255,0.7)',
336
+ fontSize: 13,
337
+ lineHeight: 18
338
+ },
339
+ downloadBtn: {
340
+ flexDirection: 'row',
341
+ alignItems: 'center',
342
+ justifyContent: 'center',
343
+ minWidth: 110,
344
+ borderRadius: 20,
345
+ paddingHorizontal: 18,
346
+ paddingVertical: 10,
347
+ gap: 6,
348
+ flexShrink: 0
349
+ },
350
+ downloadIcon: {
351
+ color: '#fff',
352
+ fontSize: 16,
353
+ fontWeight: 'bold',
354
+ lineHeight: 18
355
+ },
356
+ downloadText: {
357
+ color: '#fff',
358
+ fontSize: 14,
359
+ fontWeight: '600'
360
+ }
361
+ });
362
+ //# sourceMappingURL=AttachmentGallery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useEffect","useRef","useState","ActivityIndicator","Alert","Dimensions","FlatList","Modal","Platform","SafeAreaView","StatusBar","StyleSheet","Text","TouchableOpacity","View","Image","attachmentDisplayName","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","width","SW","get","formatBytes","bytes","toFixed","GallerySlide","item","isVisible","loading","setLoading","displayName","type","style","slide","root","children","color","size","absoluteFill","source","uri","url","image","resizeMode","onLoadStart","onLoadEnd","doc","docName","numberOfLines","docSize","AttachmentGallery","attachments","initialIndex","visible","onClose","downloadLabel","onDownloadAttachment","theme","listRef","currentIndex","setCurrentIndex","isDownloading","setIsDownloading","current","handleViewableChange","viewableItems","index","viewabilityConfig","viewAreaCoveragePercentThreshold","scrollTo","scrollToIndex","animated","handleDownload","e","message","Error","alert","renderItem","counterText","length","transparent","animationType","onRequestClose","statusBarTranslucent","styles","OS","barStyle","backgroundColor","translucent","headerSafe","header","headerSide","counter","closeBtn","onPress","hitSlop","closeIcon","listWrap","ref","data","keyExtractor","a","String","id","horizontal","pagingEnabled","showsHorizontalScrollIndicator","initialScrollIndex","getItemLayout","_","offset","onViewableItemsChanged","list","navBtn","navLeft","activeOpacity","navIcon","navRight","footerSafe","footer","meta","metaName","metaInfo","messageTime","filter","Boolean","join","downloadBtn","primaryColor","disabled","downloadIcon","downloadText","create","flex","alignItems","justifyContent","height","paddingHorizontal","gap","fontSize","fontWeight","textAlign","lineHeight","borderBottomWidth","hairlineWidth","borderBottomColor","flexDirection","paddingVertical","borderRadius","position","top","bottom","left","right","textShadowColor","textShadowOffset","textShadowRadius","borderTopWidth","borderTopColor","minWidth","flexShrink"],"sourceRoot":"..\\..\\..\\src","sources":["components/AttachmentGallery.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,281 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
4
+ import { ActivityIndicator, FlatList, Image, KeyboardAvoidingView, Platform, SafeAreaView, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
5
+ import { getAndroidStatusBarHeight } from "../safeArea.js";
6
+ import { ChatSDK } from "../ChatSDK.js";
7
+ import { buildTheme } from "../theme.js";
8
+ import { useChat } from "../useChat.js";
9
+ import { defaultAttachmentDownloader } from "../downloaders/defaultAttachmentDownloader.js";
10
+ import { MessageBubble } from "./MessageBubble.js";
11
+ import { MessageInput } from "./MessageInput.js";
12
+ import { SurveyOverlay } from "./SurveyOverlay.js";
13
+ import { AttachmentGallery } from "./AttachmentGallery.js";
14
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
15
+ const DEFAULT_STRINGS = {
16
+ headerTitle: 'Чат',
17
+ emptyStateText: 'Начните диалог — оператор ответит в ближайшее время',
18
+ inputPlaceholder: 'Сообщение…',
19
+ sendingText: 'Отправка…',
20
+ errorRetry: 'Повторить',
21
+ surveyTitle: 'Оцените качество поддержки',
22
+ surveySubmit: 'Отправить',
23
+ surveySkip: 'Пропустить',
24
+ surveyClose: 'Закрыть',
25
+ galleryDownload: 'Скачать'
26
+ };
27
+ export function ChatScreen({
28
+ onClose,
29
+ theme: themeOverride,
30
+ strings,
31
+ onPickFiles,
32
+ onDownloadAttachment
33
+ }) {
34
+ const config = ChatSDK.getSDKConfig();
35
+ const baseTheme = buildTheme(config);
36
+ const theme = themeOverride ? {
37
+ ...baseTheme,
38
+ ...themeOverride
39
+ } : baseTheme;
40
+ const listRef = useRef(null);
41
+ const t = {
42
+ ...DEFAULT_STRINGS,
43
+ ...strings
44
+ };
45
+ const {
46
+ messages,
47
+ isLoading,
48
+ isSending,
49
+ error,
50
+ survey,
51
+ sendMessage,
52
+ sendCallback,
53
+ submitSurvey,
54
+ dismissSurvey,
55
+ retry
56
+ } = useChat();
57
+ const [galleryIndex, setGalleryIndex] = useState(0);
58
+ const [galleryVisible, setGalleryVisible] = useState(false);
59
+ const galleryAttachments = useMemo(() => messages.flatMap(m => (m.attachments ?? []).filter(a => a.id > 0).map(a => ({
60
+ ...a,
61
+ messageTime: m.time
62
+ }))), [messages]);
63
+ const openGallery = attachment => {
64
+ const idx = galleryAttachments.findIndex(a => a.id === attachment.id);
65
+ setGalleryIndex(Math.max(0, idx));
66
+ setGalleryVisible(true);
67
+ };
68
+ const showInitialLoader = isLoading && messages.length === 0;
69
+ const title = strings?.headerTitle ?? config?.widgetTitle ?? DEFAULT_STRINGS.headerTitle;
70
+ useEffect(() => {
71
+ if (messages.length > 0) {
72
+ setTimeout(() => listRef.current?.scrollToEnd({
73
+ animated: true
74
+ }), 100);
75
+ }
76
+ }, [messages.length]);
77
+ const headerContent = /*#__PURE__*/_jsxs(_Fragment, {
78
+ children: [onClose && /*#__PURE__*/_jsx(TouchableOpacity, {
79
+ onPress: onClose,
80
+ style: styles.backBtn,
81
+ hitSlop: 8,
82
+ children: /*#__PURE__*/_jsx(Text, {
83
+ style: [styles.backIcon, {
84
+ color: theme.headerText
85
+ }],
86
+ children: "\u2039"
87
+ })
88
+ }), config?.imageLogo ? /*#__PURE__*/_jsx(Image, {
89
+ source: {
90
+ uri: config.imageLogo
91
+ },
92
+ style: styles.logo
93
+ }) : null, /*#__PURE__*/_jsx(Text, {
94
+ style: [styles.headerTitle, {
95
+ color: theme.headerText
96
+ }],
97
+ numberOfLines: 2,
98
+ ellipsizeMode: "tail",
99
+ children: title
100
+ })]
101
+ });
102
+ return /*#__PURE__*/_jsxs(View, {
103
+ style: [styles.root, {
104
+ backgroundColor: theme.background
105
+ }],
106
+ children: [/*#__PURE__*/_jsxs(KeyboardAvoidingView, {
107
+ style: styles.flex,
108
+ behavior: Platform.OS === 'ios' ? 'padding' : undefined,
109
+ children: [Platform.OS === 'ios' ? /*#__PURE__*/_jsx(SafeAreaView, {
110
+ style: {
111
+ backgroundColor: theme.headerBg
112
+ },
113
+ children: /*#__PURE__*/_jsx(View, {
114
+ style: styles.header,
115
+ children: headerContent
116
+ })
117
+ }) : /*#__PURE__*/_jsx(View, {
118
+ style: [styles.header, {
119
+ backgroundColor: theme.headerBg,
120
+ paddingTop: getAndroidStatusBarHeight() + 8
121
+ }],
122
+ children: headerContent
123
+ }), error && /*#__PURE__*/_jsxs(View, {
124
+ style: styles.errorBanner,
125
+ children: [/*#__PURE__*/_jsx(Text, {
126
+ style: styles.errorText,
127
+ children: error
128
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
129
+ onPress: retry,
130
+ children: /*#__PURE__*/_jsx(Text, {
131
+ style: [styles.retryText, {
132
+ color: theme.primaryColor
133
+ }],
134
+ children: t.errorRetry
135
+ })
136
+ })]
137
+ }), showInitialLoader ? /*#__PURE__*/_jsx(View, {
138
+ style: styles.loader,
139
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
140
+ color: theme.primaryColor,
141
+ size: "large"
142
+ })
143
+ }) : /*#__PURE__*/_jsx(FlatList, {
144
+ ref: listRef,
145
+ style: styles.list,
146
+ data: messages,
147
+ keyExtractor: m => m.id,
148
+ renderItem: ({
149
+ item
150
+ }) => /*#__PURE__*/_jsx(MessageBubble, {
151
+ message: item,
152
+ theme: theme,
153
+ onButtonPress: (cbData, serverId) => void sendCallback(serverId, cbData),
154
+ onAttachmentPress: openGallery
155
+ }),
156
+ contentContainerStyle: [styles.messageList, messages.length === 0 && styles.messageListEmpty],
157
+ showsVerticalScrollIndicator: false,
158
+ ListEmptyComponent: /*#__PURE__*/_jsx(View, {
159
+ style: styles.emptyWrap,
160
+ children: /*#__PURE__*/_jsx(Text, {
161
+ style: [styles.emptyText, {
162
+ color: theme.systemText
163
+ }],
164
+ children: t.emptyStateText
165
+ })
166
+ })
167
+ }), /*#__PURE__*/_jsx(MessageInput, {
168
+ theme: theme,
169
+ isSending: isSending,
170
+ onSend: (text, files) => void sendMessage(text, files),
171
+ onPickFiles: onPickFiles,
172
+ strings: t
173
+ })]
174
+ }), survey && /*#__PURE__*/_jsx(SurveyOverlay, {
175
+ config: survey,
176
+ theme: theme,
177
+ strings: t,
178
+ onSubmit: submitSurvey,
179
+ onDismiss: dismissSurvey
180
+ }), galleryAttachments.length > 0 && /*#__PURE__*/_jsx(AttachmentGallery, {
181
+ attachments: galleryAttachments,
182
+ initialIndex: galleryIndex,
183
+ visible: galleryVisible,
184
+ onClose: () => setGalleryVisible(false),
185
+ downloadLabel: t.galleryDownload,
186
+ onDownloadAttachment: onDownloadAttachment ?? defaultAttachmentDownloader,
187
+ theme: theme
188
+ })]
189
+ });
190
+ }
191
+ const styles = StyleSheet.create({
192
+ root: {
193
+ flex: 1
194
+ },
195
+ flex: {
196
+ flex: 1
197
+ },
198
+ list: {
199
+ flex: 1
200
+ },
201
+ header: {
202
+ flexDirection: 'row',
203
+ alignItems: 'center',
204
+ paddingHorizontal: 16,
205
+ paddingBottom: 14,
206
+ gap: 10,
207
+ elevation: 2,
208
+ shadowColor: '#000',
209
+ shadowOffset: {
210
+ width: 0,
211
+ height: 1
212
+ },
213
+ shadowOpacity: 0.12,
214
+ shadowRadius: 3
215
+ },
216
+ backBtn: {
217
+ padding: 4,
218
+ flexShrink: 0
219
+ },
220
+ backIcon: {
221
+ fontSize: 28,
222
+ lineHeight: 28,
223
+ fontWeight: '300'
224
+ },
225
+ logo: {
226
+ width: 32,
227
+ height: 32,
228
+ borderRadius: 16,
229
+ flexShrink: 0
230
+ },
231
+ headerTitle: {
232
+ fontSize: 17,
233
+ fontWeight: '600',
234
+ flex: 1,
235
+ flexShrink: 1,
236
+ minWidth: 0
237
+ },
238
+ messageList: {
239
+ paddingTop: 12,
240
+ paddingBottom: 8,
241
+ flexGrow: 1
242
+ },
243
+ messageListEmpty: {
244
+ justifyContent: 'center'
245
+ },
246
+ loader: {
247
+ flex: 1,
248
+ alignItems: 'center',
249
+ justifyContent: 'center'
250
+ },
251
+ emptyWrap: {
252
+ alignItems: 'center',
253
+ justifyContent: 'center',
254
+ paddingHorizontal: 32,
255
+ paddingVertical: 60
256
+ },
257
+ emptyText: {
258
+ fontSize: 14,
259
+ textAlign: 'center',
260
+ lineHeight: 20
261
+ },
262
+ errorBanner: {
263
+ flexDirection: 'row',
264
+ alignItems: 'center',
265
+ justifyContent: 'space-between',
266
+ backgroundColor: '#fff3f3',
267
+ paddingHorizontal: 16,
268
+ paddingVertical: 8,
269
+ gap: 8
270
+ },
271
+ errorText: {
272
+ color: '#cc2222',
273
+ fontSize: 13,
274
+ flex: 1
275
+ },
276
+ retryText: {
277
+ fontSize: 13,
278
+ fontWeight: '500'
279
+ }
280
+ });
281
+ //# sourceMappingURL=ChatScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useMemo","useRef","useState","ActivityIndicator","FlatList","Image","KeyboardAvoidingView","Platform","SafeAreaView","StyleSheet","Text","TouchableOpacity","View","getAndroidStatusBarHeight","ChatSDK","buildTheme","useChat","defaultAttachmentDownloader","MessageBubble","MessageInput","SurveyOverlay","AttachmentGallery","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DEFAULT_STRINGS","headerTitle","emptyStateText","inputPlaceholder","sendingText","errorRetry","surveyTitle","surveySubmit","surveySkip","surveyClose","galleryDownload","ChatScreen","onClose","theme","themeOverride","strings","onPickFiles","onDownloadAttachment","config","getSDKConfig","baseTheme","listRef","t","messages","isLoading","isSending","error","survey","sendMessage","sendCallback","submitSurvey","dismissSurvey","retry","galleryIndex","setGalleryIndex","galleryVisible","setGalleryVisible","galleryAttachments","flatMap","m","attachments","filter","a","id","map","messageTime","time","openGallery","attachment","idx","findIndex","Math","max","showInitialLoader","length","title","widgetTitle","setTimeout","current","scrollToEnd","animated","headerContent","children","onPress","style","styles","backBtn","hitSlop","backIcon","color","headerText","imageLogo","source","uri","logo","numberOfLines","ellipsizeMode","root","backgroundColor","background","flex","behavior","OS","undefined","headerBg","header","paddingTop","errorBanner","errorText","retryText","primaryColor","loader","size","ref","list","data","keyExtractor","renderItem","item","message","onButtonPress","cbData","serverId","onAttachmentPress","contentContainerStyle","messageList","messageListEmpty","showsVerticalScrollIndicator","ListEmptyComponent","emptyWrap","emptyText","systemText","onSend","text","files","onSubmit","onDismiss","initialIndex","visible","downloadLabel","create","flexDirection","alignItems","paddingHorizontal","paddingBottom","gap","elevation","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","padding","flexShrink","fontSize","lineHeight","fontWeight","borderRadius","minWidth","flexGrow","justifyContent","paddingVertical","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/ChatScreen.tsx"],"mappings":"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","ignoreList":[]}