connect-x-reactnative-livechat-sdk 1.5.1-legacy → 1.6.0-legacy
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.
- package/README.md +36 -4
- package/lib/module/ChatScreen.js +188 -66
- package/lib/module/ChatScreen.js.map +1 -1
- package/lib/module/api.js +27 -1
- package/lib/module/api.js.map +1 -1
- package/lib/typescript/src/ChatScreen.d.ts.map +1 -1
- package/lib/typescript/src/api.d.ts +5 -0
- package/lib/typescript/src/api.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/ChatScreen.tsx +199 -62
- package/src/api.ts +32 -1
package/README.md
CHANGED
|
@@ -9,7 +9,8 @@ An SDK for easily integrating the Connect-X Live Chat into your React Native app
|
|
|
9
9
|
* Displays chat history with date partitions.
|
|
10
10
|
* Customizable styles and colors from from [Connect-X](https://app.connect-x.tech/) by navigating to: Organization Settings → Connector → Live Chat → Style.
|
|
11
11
|
* Supports custom header components.
|
|
12
|
-
* Image preview with zoom capabilities.
|
|
12
|
+
* Image preview with zoom capabilities and download (Save to Files on iOS, save-as on Android).
|
|
13
|
+
* Supports DNG, HEIC and JFIF images.
|
|
13
14
|
|
|
14
15
|
## 🔧 Installation
|
|
15
16
|
|
|
@@ -33,7 +34,7 @@ yarn connect-x-reactnative-livechat-sdk@1.4.7-legacy
|
|
|
33
34
|
You need to install the following peer dependencies manually:
|
|
34
35
|
|
|
35
36
|
```bash
|
|
36
|
-
npm install @react-native-documents/picker react-native-svg@13.4.0 react-native-image-zoom-viewer react-native-device-info @react-native-community/netinfo
|
|
37
|
+
npm install @react-native-documents/picker react-native-image-picker react-native-svg@13.4.0 react-native-image-zoom-viewer react-native-device-info react-native-blob-util @react-native-community/netinfo
|
|
37
38
|
```
|
|
38
39
|
|
|
39
40
|
If you have a problem with @react-native-documents/picker,
|
|
@@ -59,11 +60,30 @@ https://github.com/react-native-documents/document-picker/issues/777#issuecommen
|
|
|
59
60
|
This library requires some peer dependencies. You need to install these libraries in your project as well:
|
|
60
61
|
|
|
61
62
|
```bash
|
|
62
|
-
npm install socket.io-client @react-native-documents/picker react-native-svg react-native-image-zoom-viewer react-native-device-info @react-native-community/netinfo
|
|
63
|
+
npm install socket.io-client @react-native-documents/picker react-native-image-picker react-native-svg react-native-image-zoom-viewer react-native-device-info react-native-blob-util @react-native-community/netinfo
|
|
63
64
|
|
|
64
65
|
#or
|
|
65
66
|
|
|
66
|
-
yarn add socket.io-client @react-native-documents/picker react-native-svg react-native-image-zoom-viewer react-native-device-info @react-native-community/netinfo
|
|
67
|
+
yarn add socket.io-client @react-native-documents/picker react-native-image-picker react-native-svg react-native-image-zoom-viewer react-native-device-info react-native-blob-util @react-native-community/netinfo
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Camera & Photo Library Permissions
|
|
71
|
+
|
|
72
|
+
The chat input has **File**, **Camera** and **Gallery** buttons (via `react-native-image-picker`). Add these to your app:
|
|
73
|
+
|
|
74
|
+
**iOS** (`Info.plist`):
|
|
75
|
+
|
|
76
|
+
```xml
|
|
77
|
+
<key>NSCameraUsageDescription</key>
|
|
78
|
+
<string>Take a photo to send in live chat</string>
|
|
79
|
+
<key>NSPhotoLibraryUsageDescription</key>
|
|
80
|
+
<string>Choose a photo to send in live chat</string>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Android** (`AndroidManifest.xml`):
|
|
84
|
+
|
|
85
|
+
```xml
|
|
86
|
+
<uses-permission android:name="android.permission.CAMERA" />
|
|
67
87
|
```
|
|
68
88
|
|
|
69
89
|
## 🚀 Usage
|
|
@@ -174,6 +194,18 @@ A method to open the chat window. It accepts a `config` object with the followin
|
|
|
174
194
|
|
|
175
195
|
---
|
|
176
196
|
|
|
197
|
+
## 📝 Changelog
|
|
198
|
+
|
|
199
|
+
### 1.6.0-legacy
|
|
200
|
+
|
|
201
|
+
* **Attach buttons:** the chat input has separate **File** (+ icon), **Camera** and **Gallery** buttons.
|
|
202
|
+
* **DNG / HEIC / JFIF:** these images can be sent, viewed and downloaded. Images the device can't decode fall back to a download link.
|
|
203
|
+
* **Correct file types:** DNG and HEIC picked from the iOS gallery keep their real extension instead of becoming `.jpg`.
|
|
204
|
+
* **Image preview:** the close button sits below the notch, and a new download button saves the image through the system Save to Files / save-as sheet.
|
|
205
|
+
* **New dependency:** `react-native-blob-util`. Install it and run `pod install` after upgrading.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
177
209
|
## 📄 License
|
|
178
210
|
|
|
179
211
|
[](https://www.apache.org/licenses/LICENSE-2.0)
|
package/lib/module/ChatScreen.js
CHANGED
|
@@ -2,16 +2,45 @@
|
|
|
2
2
|
|
|
3
3
|
// src/ChatScreen.tsx
|
|
4
4
|
import React, { useState, useEffect, useRef, useMemo } from 'react';
|
|
5
|
-
import { View, Text, TextInput, TouchableOpacity, SectionList, StyleSheet, SafeAreaView, KeyboardAvoidingView, Platform, Image, ActivityIndicator, Alert, Linking, Dimensions, Modal } from 'react-native';
|
|
5
|
+
import { View, Text, TextInput, TouchableOpacity, SectionList, StyleSheet, SafeAreaView, KeyboardAvoidingView, Platform, StatusBar, Image, ActivityIndicator, Alert, Linking, Dimensions, Modal } from 'react-native';
|
|
6
6
|
import io from 'socket.io-client';
|
|
7
|
-
import { pick, types } from '@react-native-documents/picker';
|
|
7
|
+
import { errorCodes, pick, saveDocuments, types } from '@react-native-documents/picker';
|
|
8
|
+
import ReactNativeBlobUtil from 'react-native-blob-util';
|
|
9
|
+
import { launchCamera, launchImageLibrary } from 'react-native-image-picker';
|
|
8
10
|
import { ConnectXMobileSdk } from 'connect-x-react-native-sdk';
|
|
9
|
-
import { apiGet, uploadFile, BASE_URL_LIVE_CHAT, apiPost, buildConnectorBody } from "./api.js";
|
|
11
|
+
import { apiGet, uploadFile, BASE_URL_LIVE_CHAT, apiPost, buildConnectorBody, fileMimeType, sniffImageExt } from "./api.js";
|
|
10
12
|
import Svg, { ClipPath, Defs, G, Path, Rect } from 'react-native-svg';
|
|
11
13
|
import hexToRgba from 'hex-to-rgba';
|
|
12
14
|
import ImageViewer from 'react-native-image-zoom-viewer';
|
|
13
15
|
import { mergeIncomingMessage, mergeHistory, messageSig } from "./mergeMessages.js";
|
|
14
16
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
17
|
+
// ponytail: ไอคอน SVG ในไฟล์ แทน vector-icons เพราะไม่ต้องให้แอปที่ใช้ SDK link font เพิ่ม
|
|
18
|
+
const ATTACH_ICONS = {
|
|
19
|
+
file: 'M12 5v14M5 12h14',
|
|
20
|
+
camera: 'M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2zM12 17a4 4 0 1 0 0-8 4 4 0 0 0 0 8z',
|
|
21
|
+
gallery: 'M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zM8.5 10a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM21 15l-5-5L5 21',
|
|
22
|
+
download: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3'
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// ระยะจากขอบบนของ preview ให้พ้น status bar / notch
|
|
26
|
+
// ponytail: ค่าคงที่ ไม่ใช้ safe-area lib; iOS 60 พอสำหรับ Dynamic Island
|
|
27
|
+
const VIEWER_TOP = Platform.OS === 'ios' ? 60 : (StatusBar.currentHeight ?? 0) + 16;
|
|
28
|
+
const AttachIcon = ({
|
|
29
|
+
name,
|
|
30
|
+
color = '#525E62'
|
|
31
|
+
}) => /*#__PURE__*/_jsx(Svg, {
|
|
32
|
+
width: 22,
|
|
33
|
+
height: 22,
|
|
34
|
+
viewBox: "0 0 24 24",
|
|
35
|
+
fill: "none",
|
|
36
|
+
children: /*#__PURE__*/_jsx(Path, {
|
|
37
|
+
d: ATTACH_ICONS[name],
|
|
38
|
+
stroke: color,
|
|
39
|
+
strokeWidth: 2,
|
|
40
|
+
strokeLinecap: "round",
|
|
41
|
+
strokeLinejoin: "round"
|
|
42
|
+
})
|
|
43
|
+
});
|
|
15
44
|
const SendIcon = ({
|
|
16
45
|
size,
|
|
17
46
|
backgroundColor,
|
|
@@ -64,6 +93,8 @@ export const ChatScreen = ({
|
|
|
64
93
|
const socketRef = useRef(null);
|
|
65
94
|
const hasConnectedRef = useRef(false);
|
|
66
95
|
const [userId, setUserId] = useState(null);
|
|
96
|
+
// ponytail: url ที่ <Image> decode ไม่ผ่าน (dng/heic บน Android ฯลฯ) → ตกไปเป็นลิงก์ดาวน์โหลด
|
|
97
|
+
const [undecodableUrls, setUndecodableUrls] = useState({});
|
|
67
98
|
const [selectedFile, setSelectedFile] = useState(null);
|
|
68
99
|
const [settings, setSettings] = useState(null);
|
|
69
100
|
const [styles, setStyles] = useState({});
|
|
@@ -339,10 +370,19 @@ export const ChatScreen = ({
|
|
|
339
370
|
const handleSelectFile = async () => {
|
|
340
371
|
try {
|
|
341
372
|
const result = await pick({
|
|
342
|
-
|
|
373
|
+
// ponytail: allFiles เพราะ iOS ไม่รู้จักนามสกุลแปลก ๆ (.jfif) เลย grey out
|
|
374
|
+
// ถ้าปล่อยเป็น public.image; ชนิดไฟล์คัดตอนส่งด้วย mime อยู่แล้ว
|
|
375
|
+
type: [types.allFiles],
|
|
343
376
|
allowMultiSelection: false
|
|
344
377
|
});
|
|
345
|
-
|
|
378
|
+
const file = result[0];
|
|
379
|
+
if (file) {
|
|
380
|
+
setSelectedFile({
|
|
381
|
+
uri: file.uri,
|
|
382
|
+
name: file.name || 'file',
|
|
383
|
+
type: file.type
|
|
384
|
+
});
|
|
385
|
+
}
|
|
346
386
|
} catch (err) {
|
|
347
387
|
if (err?.code !== 'DOCUMENT_PICKER_CANCELED') {
|
|
348
388
|
// Alert.alert(
|
|
@@ -352,6 +392,51 @@ export const ChatScreen = ({
|
|
|
352
392
|
}
|
|
353
393
|
}
|
|
354
394
|
};
|
|
395
|
+
|
|
396
|
+
// อ่านแค่ 12 byte แรกของไฟล์ ไว้เช็คชนิดจริง
|
|
397
|
+
const readFileHead = async uri => {
|
|
398
|
+
try {
|
|
399
|
+
const head = `${ReactNativeBlobUtil.fs.dirs.CacheDir}/head_${Date.now()}`;
|
|
400
|
+
await ReactNativeBlobUtil.fs.slice(uri.replace('file://', ''), head, 0, 12);
|
|
401
|
+
const bytes = await ReactNativeBlobUtil.fs.readFile(head, 'ascii');
|
|
402
|
+
ReactNativeBlobUtil.fs.unlink(head).catch(() => {});
|
|
403
|
+
return bytes;
|
|
404
|
+
} catch {
|
|
405
|
+
return [];
|
|
406
|
+
}
|
|
407
|
+
};
|
|
408
|
+
const handleImagePicked = async res => {
|
|
409
|
+
if (res.didCancel) return;
|
|
410
|
+
const asset = res.assets?.[0];
|
|
411
|
+
if (res.errorCode || !asset?.uri) {
|
|
412
|
+
if (res.errorCode === 'permission') {
|
|
413
|
+
Alert.alert('Permission required', 'Please allow access in Settings.');
|
|
414
|
+
}
|
|
415
|
+
return;
|
|
416
|
+
}
|
|
417
|
+
let name = asset.fileName || `image_${Date.now()}.jpg`;
|
|
418
|
+
let type = asset.type || 'image/jpeg';
|
|
419
|
+
const realExt = sniffImageExt(await readFileHead(asset.uri));
|
|
420
|
+
if (realExt) {
|
|
421
|
+
name = `${name.replace(/\.[^.]+$/, '')}.${realExt}`;
|
|
422
|
+
type = fileMimeType({
|
|
423
|
+
name
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
setSelectedFile({
|
|
427
|
+
uri: asset.uri,
|
|
428
|
+
name,
|
|
429
|
+
type
|
|
430
|
+
});
|
|
431
|
+
};
|
|
432
|
+
const handleOpenCamera = () => launchCamera({
|
|
433
|
+
mediaType: 'photo',
|
|
434
|
+
saveToPhotos: false
|
|
435
|
+
}).then(handleImagePicked);
|
|
436
|
+
const handleOpenGallery = () => launchImageLibrary({
|
|
437
|
+
mediaType: 'photo',
|
|
438
|
+
selectionLimit: 1
|
|
439
|
+
}).then(handleImagePicked);
|
|
355
440
|
const MessageWithLinks = ({
|
|
356
441
|
text,
|
|
357
442
|
textStyle,
|
|
@@ -375,8 +460,9 @@ export const ChatScreen = ({
|
|
|
375
460
|
})
|
|
376
461
|
});
|
|
377
462
|
};
|
|
463
|
+
const isDisplayableImage = item => item.type === 'image' && !!item.url && !undecodableUrls[item.url];
|
|
378
464
|
const openImageViewer = tappedImageUrl => {
|
|
379
|
-
const allImages = messages.filter(
|
|
465
|
+
const allImages = messages.filter(isDisplayableImage).map(msg => ({
|
|
380
466
|
url: msg.url
|
|
381
467
|
}));
|
|
382
468
|
const tappedIndex = allImages.findIndex(img => img.url === tappedImageUrl);
|
|
@@ -386,6 +472,30 @@ export const ChatScreen = ({
|
|
|
386
472
|
setImageViewerVisible(true);
|
|
387
473
|
}
|
|
388
474
|
};
|
|
475
|
+
|
|
476
|
+
// โหลดรูปลง cache ก่อน แล้วเปิดหน้า "Save to Files" (iOS) / "บันทึกเป็น" (Android)
|
|
477
|
+
// เพราะ saveDocuments รับแค่ไฟล์ในเครื่อง
|
|
478
|
+
const handleDownloadImage = async url => {
|
|
479
|
+
try {
|
|
480
|
+
// ใช้ชื่อไฟล์ตอนส่ง (เช่น .dng / .jfif) ก่อน ชื่อใน url อาจถูก storage เปลี่ยนนามสกุล
|
|
481
|
+
const name = messages.find(m => m.url === url)?.fileName || decodeURIComponent(url.split('?')[0].split('/').pop() || 'image');
|
|
482
|
+
const res = await ReactNativeBlobUtil.config({
|
|
483
|
+
path: `${ReactNativeBlobUtil.fs.dirs.CacheDir}/${name}`
|
|
484
|
+
}).fetch('GET', url);
|
|
485
|
+
await saveDocuments({
|
|
486
|
+
sourceUris: [`file://${res.path()}`],
|
|
487
|
+
fileName: name,
|
|
488
|
+
mimeType: fileMimeType({
|
|
489
|
+
name
|
|
490
|
+
})
|
|
491
|
+
});
|
|
492
|
+
} catch (err) {
|
|
493
|
+
if (err?.code !== errorCodes.OPERATION_CANCELED) {
|
|
494
|
+
Alert.alert('Download Error', 'Failed to save the image.');
|
|
495
|
+
console.error('Download failed', err);
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
};
|
|
389
499
|
const handleCancelUpload = () => {
|
|
390
500
|
if (isUploading) return;
|
|
391
501
|
setSelectedFile(null);
|
|
@@ -395,7 +505,7 @@ export const ChatScreen = ({
|
|
|
395
505
|
setIsUploading(true);
|
|
396
506
|
try {
|
|
397
507
|
const fileUrl = await uploadFile(selectedFile, orgId, channelId);
|
|
398
|
-
const type = selectedFile.
|
|
508
|
+
const type = fileMimeType(selectedFile).startsWith('image/') ? 'image' : 'file';
|
|
399
509
|
const messageBody = {
|
|
400
510
|
type,
|
|
401
511
|
fileName: selectedFile.name || 'file',
|
|
@@ -463,16 +573,20 @@ export const ChatScreen = ({
|
|
|
463
573
|
text: item.text || '',
|
|
464
574
|
textStyle: item.sender === 'user' ? styles.customerChatText : styles.agentChatText,
|
|
465
575
|
linkStyle: styles.linkTextStyle
|
|
466
|
-
}), item
|
|
576
|
+
}), isDisplayableImage(item) && /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
467
577
|
onPress: () => openImageViewer(item.url),
|
|
468
578
|
children: /*#__PURE__*/_jsx(Image, {
|
|
469
579
|
source: {
|
|
470
580
|
uri: item.url
|
|
471
581
|
},
|
|
472
582
|
style: styles.imageMessage,
|
|
473
|
-
resizeMode: "cover"
|
|
583
|
+
resizeMode: "cover",
|
|
584
|
+
onError: () => setUndecodableUrls(prev => ({
|
|
585
|
+
...prev,
|
|
586
|
+
[item.url]: true
|
|
587
|
+
}))
|
|
474
588
|
})
|
|
475
|
-
}), item.type === 'file' && /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
589
|
+
}), (item.type === 'file' || item.type === 'image' && !isDisplayableImage(item)) && /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
476
590
|
onPress: handleFilePress,
|
|
477
591
|
children: /*#__PURE__*/_jsx(Text, {
|
|
478
592
|
style: [styles.fileLink, item.sender === 'user' ? styles.customerChatText : styles.agentChatText],
|
|
@@ -512,7 +626,9 @@ export const ChatScreen = ({
|
|
|
512
626
|
renderIndicator: (currentIndex, allSize) => /*#__PURE__*/_jsx(View, {
|
|
513
627
|
style: {
|
|
514
628
|
position: 'absolute',
|
|
515
|
-
top:
|
|
629
|
+
top: VIEWER_TOP,
|
|
630
|
+
height: 42,
|
|
631
|
+
justifyContent: 'center',
|
|
516
632
|
width: '100%',
|
|
517
633
|
alignItems: 'center',
|
|
518
634
|
zIndex: 1
|
|
@@ -526,30 +642,41 @@ export const ChatScreen = ({
|
|
|
526
642
|
children: [currentIndex, " / ", allSize]
|
|
527
643
|
})
|
|
528
644
|
}),
|
|
529
|
-
renderHeader:
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
645
|
+
renderHeader: currentIndex => /*#__PURE__*/_jsxs(View, {
|
|
646
|
+
pointerEvents: "box-none",
|
|
647
|
+
style: [styles.imageViewerHeader, {
|
|
648
|
+
top: VIEWER_TOP
|
|
649
|
+
}],
|
|
650
|
+
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
651
|
+
style: styles.imageViewerCloseButton,
|
|
652
|
+
hitSlop: {
|
|
653
|
+
top: 20,
|
|
654
|
+
bottom: 20,
|
|
655
|
+
left: 20,
|
|
656
|
+
right: 20
|
|
657
|
+
},
|
|
658
|
+
onPress: () => {
|
|
659
|
+
const url = viewerImages[currentIndex ?? 0]?.url;
|
|
660
|
+
if (url) handleDownloadImage(url);
|
|
661
|
+
},
|
|
662
|
+
children: /*#__PURE__*/_jsx(AttachIcon, {
|
|
663
|
+
name: "download",
|
|
664
|
+
color: "white"
|
|
665
|
+
})
|
|
666
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
667
|
+
style: styles.imageViewerCloseButton,
|
|
668
|
+
hitSlop: {
|
|
669
|
+
top: 20,
|
|
670
|
+
bottom: 20,
|
|
671
|
+
left: 20,
|
|
672
|
+
right: 20
|
|
673
|
+
},
|
|
674
|
+
onPress: () => setImageViewerVisible(false),
|
|
675
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
676
|
+
style: styles.imageViewerCloseButtonText,
|
|
677
|
+
children: "\u2715"
|
|
678
|
+
})
|
|
679
|
+
})]
|
|
553
680
|
})
|
|
554
681
|
})
|
|
555
682
|
}), customHeader !== undefined ? customHeader : /*#__PURE__*/_jsxs(View, {
|
|
@@ -650,13 +777,23 @@ export const ChatScreen = ({
|
|
|
650
777
|
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
651
778
|
onPress: handleSelectFile,
|
|
652
779
|
style: styles.attachmentButton,
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
780
|
+
accessibilityLabel: "Attach file",
|
|
781
|
+
children: /*#__PURE__*/_jsx(AttachIcon, {
|
|
782
|
+
name: "file"
|
|
783
|
+
})
|
|
784
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
785
|
+
onPress: handleOpenCamera,
|
|
786
|
+
style: styles.attachmentButton,
|
|
787
|
+
accessibilityLabel: "Take photo",
|
|
788
|
+
children: /*#__PURE__*/_jsx(AttachIcon, {
|
|
789
|
+
name: "camera"
|
|
790
|
+
})
|
|
791
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
792
|
+
onPress: handleOpenGallery,
|
|
793
|
+
style: styles.attachmentButton,
|
|
794
|
+
accessibilityLabel: "Choose from gallery",
|
|
795
|
+
children: /*#__PURE__*/_jsx(AttachIcon, {
|
|
796
|
+
name: "gallery"
|
|
660
797
|
})
|
|
661
798
|
}), /*#__PURE__*/_jsx(TextInput, {
|
|
662
799
|
style: styles.input,
|
|
@@ -907,26 +1044,6 @@ const getDynamicStyles = (settingStyle = {}) => {
|
|
|
907
1044
|
fontWeight: 'bold',
|
|
908
1045
|
fontSize: 16
|
|
909
1046
|
},
|
|
910
|
-
plusIconContainer: {
|
|
911
|
-
width: 10,
|
|
912
|
-
height: 18,
|
|
913
|
-
justifyContent: 'center',
|
|
914
|
-
alignItems: 'center'
|
|
915
|
-
},
|
|
916
|
-
plusIconBar: {
|
|
917
|
-
position: 'absolute',
|
|
918
|
-
backgroundColor: '#525E62'
|
|
919
|
-
},
|
|
920
|
-
plusIconBarHorizontal: {
|
|
921
|
-
width: 18,
|
|
922
|
-
height: 2,
|
|
923
|
-
borderRadius: 1
|
|
924
|
-
},
|
|
925
|
-
plusIconBarVertical: {
|
|
926
|
-
width: 2,
|
|
927
|
-
height: 18,
|
|
928
|
-
borderRadius: 1
|
|
929
|
-
},
|
|
930
1047
|
imageMessage: {
|
|
931
1048
|
width: 200,
|
|
932
1049
|
height: 200,
|
|
@@ -1014,11 +1131,16 @@ const getDynamicStyles = (settingStyle = {}) => {
|
|
|
1014
1131
|
fontSize: 12,
|
|
1015
1132
|
fontWeight: 'bold'
|
|
1016
1133
|
},
|
|
1017
|
-
|
|
1134
|
+
imageViewerHeader: {
|
|
1018
1135
|
position: 'absolute',
|
|
1019
|
-
|
|
1020
|
-
right:
|
|
1021
|
-
zIndex:
|
|
1136
|
+
left: 10,
|
|
1137
|
+
right: 10,
|
|
1138
|
+
zIndex: 9999,
|
|
1139
|
+
flexDirection: 'row',
|
|
1140
|
+
justifyContent: 'space-between',
|
|
1141
|
+
alignItems: 'center'
|
|
1142
|
+
},
|
|
1143
|
+
imageViewerCloseButton: {
|
|
1022
1144
|
padding: 10
|
|
1023
1145
|
},
|
|
1024
1146
|
imageViewerCloseButtonText: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useEffect","useRef","useMemo","View","Text","TextInput","TouchableOpacity","SectionList","StyleSheet","SafeAreaView","KeyboardAvoidingView","Platform","Image","ActivityIndicator","Alert","Linking","Dimensions","Modal","io","pick","types","ConnectXMobileSdk","apiGet","uploadFile","BASE_URL_LIVE_CHAT","apiPost","buildConnectorBody","Svg","ClipPath","Defs","G","Path","Rect","hexToRgba","ImageViewer","mergeIncomingMessage","mergeHistory","messageSig","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SendIcon","size","backgroundColor","iconColor","width","height","viewBox","fill","children","rx","id","transform","clipPath","fillRule","clipRule","d","ChatScreen","onClose","token","orgId","channelId","externalValue","customHeader","customer","messages","setMessages","inputText","setInputText","loading","setLoading","sendError","setSendError","errorTimer","socketRef","hasConnectedRef","userId","setUserId","selectedFile","setSelectedFile","settings","setSettings","styles","setStyles","chatPhase","setChatPhase","isUploading","setIsUploading","isImageViewerVisible","setImageViewerVisible","viewerImages","setViewerImages","viewerIndex","setViewerIndex","findCustomer","_unknownId","body","console","log","res","error","alert","initializeUserId","checkAllowed","getUnknownId","initializeChat","resSettings","getDynamicStyles","history","current","socket","transports","on","emit","socketId","then","fresh","prev","catch","e","payload","message","reason","disconnect","messageSections","length","groupedMessages","reduce","acc","dateKey","Date","timestamp","toLocaleDateString","push","Object","keys","sort","reverse","map","date","title","day","month","year","data","PreChatForm","onSubmit","headerColor","formData","setFormData","consentChecked","setConsentChecked","handleInputChange","field","value","handleStartChat","style","safeArea","formContainer","formWelcomeText","formInputContainer","formLabel","formInput","placeholder","placeholderTextColor","onChangeText","text","consentContainer","onPress","checkboxBase","accessibilityRole","accessibilityState","checked","checkmark","consentText","color","consentLink","formFooter","startButton","startButtonText","showSendError","msg","clearTimeout","setTimeout","handleSendText","trim","connected","type","sender","now","timeout","organizeId","err","handleSelectFile","result","images","doc","pdf","allowMultiSelection","code","MessageWithLinks","textStyle","linkStyle","urlRegex","parts","split","part","index","match","openURL","openImageViewer","tappedImageUrl","allImages","filter","url","tappedIndex","findIndex","img","handleCancelUpload","handleConfirmUpload","fileUrl","startsWith","messageBody","fileName","name","fullMessage","formatTimestamp","messageTime","getTime","differenceInSeconds","toLocaleTimeString","hour","minute","hour12","renderMessage","item","handleFilePress","messageRow","userRow","agentRow","styleLogoUrl","source","uri","avatar","timestampText","messageAgentContainer","messageContainer","messageBubble","userBubble","agentBubble","customerChatText","agentChatText","linkTextStyle","imageMessage","resizeMode","fileLink","pop","flex","justifyContent","alignItems","visible","transparent","imageUrls","onCancel","enableSwipeDown","renderIndicator","currentIndex","allSize","position","top","zIndex","fontSize","fontWeight","renderHeader","imageViewerCloseButton","right","hitSlop","bottom","left","imageViewerCloseButtonText","undefined","header","headerProfile","headerAvatar","headerTitle","closeButtonText","container","behavior","OS","styleHeadColor","inverted","sections","renderItem","renderSectionFooter","section","datePartition","datePartitionText","keyExtractor","messageList","inputContainer","errorBanner","errorBannerText","uploadPreviewContainer","fileInfoContainer","fileNameText","numberOfLines","buttonRow","uploadButton","actionButton","disabled","uploadButtonText","cancelButton","cancelButtonText","normalInputContainer","attachmentButton","plusIconContainer","plusIconBar","plusIconBarHorizontal","plusIconBarVertical","input","sendButton","styleTextColor","settingStyle","screenWidth","get","create","centered","flexDirection","paddingVertical","paddingHorizontal","paddingTop","borderRadius","marginRight","marginVertical","maxWidth","flexWrap","alignSelf","styleAgentColor","styleCustomerColor","styleCustomerTextColor","styleAgentTextColor","textDecorationLine","marginHorizontal","borderTopWidth","borderTopColor","borderWidth","borderColor","elevation","textAlign","padding","disabledButton","opacity","paddingRight","marginLeft","marginTop","margin","marginBottom","checkboxChecked"],"sourceRoot":"../../src","sources":["ChatScreen.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,EAAEC,OAAO,QAAQ,OAAO;AACnE,SACEC,IAAI,EACJC,IAAI,EACJC,SAAS,EACTC,gBAAgB,EAChBC,WAAW,EACXC,UAAU,EACVC,YAAY,EACZC,oBAAoB,EACpBC,QAAQ,EACRC,KAAK,EACLC,iBAAiB,EACjBC,KAAK,EACLC,OAAO,EACPC,UAAU,EACVC,KAAK,QACA,cAAc;AACrB,OAAOC,EAAE,MAAM,kBAAkB;AACjC,SACEC,IAAI,EACJC,KAAK,QAEA,gCAAgC;AACvC,SAASC,iBAAiB,QAAQ,4BAA4B;AAC9D,SACEC,MAAM,EACNC,UAAU,EACVC,kBAAkB,EAClBC,OAAO,EACPC,kBAAkB,QACb,UAAO;AACd,OAAOC,GAAG,IAAIC,QAAQ,EAAEC,IAAI,EAAEC,CAAC,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AACrE,OAAOC,SAAS,MAAM,aAAa;AACnC,OAAOC,WAAW,MAAM,gCAAgC;AACxD,SACEC,oBAAoB,EACpBC,YAAY,EACZC,UAAU,QACL,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAczB,MAAMC,QAAQ,GAAGA,CAAC;EAChBC,IAAI;EACJC,eAAe;EACfC;AAKF,CAAC,kBACCN,KAAA,CAACd,GAAG;EAACqB,KAAK,EAAEH,IAAK;EAACI,MAAM,EAAEJ,IAAK;EAACK,OAAO,EAAC,WAAW;EAACC,IAAI,EAAC,MAAM;EAAAC,QAAA,gBAC7Db,IAAA,CAACP,IAAI;IAACgB,KAAK,EAAE,EAAG;IAACC,MAAM,EAAE,EAAG;IAACI,EAAE,EAAE,EAAG;IAACF,IAAI,EAAEL;EAAgB,CAAE,CAAC,eAC9DP,IAAA,CAACV,IAAI;IAAAuB,QAAA,eACHb,IAAA,CAACX,QAAQ;MAAC0B,EAAE,EAAC,kBAAkB;MAAAF,QAAA,eAC7Bb,IAAA,CAACP,IAAI;QAACgB,KAAK,EAAE,EAAG;QAACC,MAAM,EAAE,EAAG;QAACE,IAAI,EAAC,OAAO;QAACI,SAAS,EAAC;MAAgB,CAAE;IAAC,CAC/D;EAAC,CACP,CAAC,eACPhB,IAAA,CAACT,CAAC;IAAC0B,QAAQ,EAAC,wBAAwB;IAAAJ,QAAA,eAClCb,IAAA,CAACR,IAAI;MACH0B,QAAQ,EAAC,SAAS;MAClBC,QAAQ,EAAC,SAAS;MAClBC,CAAC,EAAC,8gBAA8gB;MAChhBR,IAAI,EAAEJ;IAAU,CACjB;EAAC,CACD,CAAC;AAAA,CACD,CACN;AACD;AACA,OAAO,MAAMa,UAAU,GAAGA,CAAC;EACzBC,OAAO;EACPC,KAAK;EACLC,KAAK;EACLC,SAAS;EACTC,aAAa;EACbC,YAAY;EACZC;AAUF,CAAC,KAAK;EACJ,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGtE,QAAQ,CAAY,EAAE,CAAC;EACvD,MAAM,CAACuE,SAAS,EAAEC,YAAY,CAAC,GAAGxE,QAAQ,CAAC,EAAE,CAAC;EAC9C,MAAM,CAACyE,OAAO,EAAEC,UAAU,CAAC,GAAG1E,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAAC2E,SAAS,EAAEC,YAAY,CAAC,GAAG5E,QAAQ,CAAgB,IAAI,CAAC;EAC/D,MAAM6E,UAAU,GAAG3E,MAAM,CAAuC,IAAI,CAAC;EACrE,MAAM4E,SAAS,GAAG5E,MAAM,CAA+B,IAAI,CAAC;EAC5D,MAAM6E,eAAe,GAAG7E,MAAM,CAAC,KAAK,CAAC;EACrC,MAAM,CAAC8E,MAAM,EAAEC,SAAS,CAAC,GAAGjF,QAAQ,CAAgB,IAAI,CAAC;EACzD,MAAM,CAACkF,YAAY,EAAEC,eAAe,CAAC,GACnCnF,QAAQ,CAAgC,IAAI,CAAC;EAC/C,MAAM,CAACoF,QAAQ,EAAEC,WAAW,CAAC,GAAGrF,QAAQ,CAAM,IAAI,CAAC;EACnD,MAAM,CAACsF,MAAM,EAAEC,SAAS,CAAC,GAAGvF,QAAQ,CAAM,CAAC,CAAC,CAAC;EAC7C,MAAM,CAACwF,SAAS,EAAEC,YAAY,CAAC,GAAGzF,QAAQ,CACxC,UACF,CAAC;EACD,MAAM,CAAC0F,WAAW,EAAEC,cAAc,CAAC,GAAG3F,QAAQ,CAAC,KAAK,CAAC;EACrD,MAAM,CAAC4F,oBAAoB,EAAEC,qBAAqB,CAAC,GAAG7F,QAAQ,CAAC,KAAK,CAAC;EACrE,MAAM,CAAC8F,YAAY,EAAEC,eAAe,CAAC,GAAG/F,QAAQ,CAAoB,EAAE,CAAC;EACvE,MAAM,CAACgG,WAAW,EAAEC,cAAc,CAAC,GAAGjG,QAAQ,CAAC,CAAC,CAAC;EAEjDC,SAAS,CAAC,MAAM;IACd;IACA,MAAMiG,YAAY,GAAG,MAAOC,UAAkB,IAAK;MACjD,IAAI;QACF,MAAMC,IAAI,GAAGzE,kBAAkB,CAAC;UAAEuC,aAAa;UAAEE;QAAS,CAAC,CAAC;QAC5DiC,OAAO,CAACC,GAAG,CAAC,4BAA4B,EAAEF,IAAI,CAAC;QAC/C,MAAMG,GAAG,GAAG,MAAM7E,OAAO,CACvB,YAAYsC,KAAK,IAAIC,SAAS,uBAAuB,EACrDmC,IAAI,EACJrC,KACF,CAAC;QACDsC,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEC,GAAG,CAAC;QACnC,IAAIA,GAAG,EAAE;UACPtB,SAAS,CAACsB,GAAG,EAAEvB,MAAM,CAAC;QACxB,CAAC,MAAM;UACL;QAAA;MAEJ,CAAC,CAAC,OAAOwB,KAAK,EAAE;QACd1C,OAAO,CAAC,CAAC;QACT/C,KAAK,CAAC0F,KAAK,CAAC,SAAS,EAAE,6CAA6C,CAAC;QACrEJ,OAAO,CAACC,GAAG,CAAC,yBAAyB,EAAEE,KAAK,CAAC;MAC/C;IACF,CAAC;IAED,MAAME,gBAAgB,GAAG,MAAAA,CAAA,KAAY;MACnC,IAAI,EAAE,MAAMC,YAAY,CAAC,CAAC,CAAC,EAAE;QAC3B;MACF;MACA,IAAI;QACF,MAAMJ,GAAG,GAAG,MAAMjF,iBAAiB,CAACsF,YAAY,CAAC,CAAC;QAClDP,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEC,GAAG,CAAC;QACrC;QACAL,YAAY,CAACK,GAAG,CAAC;MACnB,CAAC,CAAC,OAAOC,KAAK,EAAE;QACdH,OAAO,CAACC,GAAG,CAAC,0BAA0B,EAAEE,KAAK,CAAC;MAChD;IACF,CAAC;IAED,MAAMG,YAAY,GAAG,MAAAA,CAAA,KAAY;MAC/B,IAAI;QACFN,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEvC,KAAK,CAAC;QAC5B,MAAMwC,GAAG,GAAG,MAAMhF,MAAM,CAAC,YAAYyC,KAAK,gBAAgB,EAAED,KAAK,CAAC;QAClEsC,OAAO,CAACC,GAAG,CAAC,kBAAkB,EAAEC,GAAG,CAAC;QACpC,IAAIA,GAAG,EAAE;UACPF,OAAO,CAACC,GAAG,CAAC,mCAAmC,CAAC;UAChD,OAAO,IAAI;QACb,CAAC,MAAM;UACLxC,OAAO,CAAC,CAAC;UACT/C,KAAK,CAAC0F,KAAK,CACT,mBAAmB,EACnB,gDACF,CAAC;UACD,OAAO,KAAK;QACd;MACF,CAAC,CAAC,OAAOD,KAAK,EAAE;QACd1C,OAAO,CAAC,CAAC;QACTuC,OAAO,CAACC,GAAG,CAAC,6BAA6B,EAAEE,KAAK,CAAC;QACjDzF,KAAK,CAAC0F,KAAK,CACT,mBAAmB,EACnB,iDACF,CAAC;QACD,OAAO,KAAK;MACd;IACF,CAAC;IAED,IAAI,CAACzB,MAAM,EAAE;MACX0B,gBAAgB,CAAC,CAAC;IACpB;EACF,CAAC,CAAC;EAEFzG,SAAS,CAAC,MAAM;IACd,MAAM4G,cAAc,GAAG,MAAAA,CAAA,KAAY;MACjC,IAAI,CAAC7B,MAAM,EAAE;MACb,IAAI;QACFqB,OAAO,CAACC,GAAG,CAAC,oCAAoC,CAAC;QAEjD,MAAMQ,WAAW,GAAG,MAAMvF,MAAM,CAC9B,YAAYyC,KAAK,IAAIC,SAAS,sBAAsB,EACpDF,KACF,CAAC;QACDsC,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEQ,WAAW,CAAC;QAC9CzB,WAAW,CAACyB,WAAW,CAAC;QACxBvB,SAAS,CAACwB,gBAAgB,CAACD,WAAW,CAACxB,MAAM,CAAC,CAAC;QAE/C,MAAM0B,OAAO,GAAG,MAAMzF,MAAM,CAC1B,YAAYyC,KAAK,IAAIC,SAAS,mBAAmBe,MAAM,EAAE,EACzDjB,KACF,CAAC;QACDsC,OAAO,CAACC,GAAG,CAAC,eAAe,EAAEU,OAAO,CAAC;QACrC1C,WAAW,CAAC0C,OAAO,CAAC;QAEpBjC,eAAe,CAACkC,OAAO,GAAG,KAAK;QAC/B,MAAMC,MAAM,GAAG/F,EAAE,CAAC,GAAGM,kBAAkB,WAAW,EAAE;UAClD0F,UAAU,EAAE,CAAC,WAAW;QAC1B,CAAC,CAAC;QACFrC,SAAS,CAACmC,OAAO,GAAGC,MAAM;QAE1BA,MAAM,CAACE,EAAE,CAAC,SAAS,EAAE,MAAM;UACzBf,OAAO,CAACC,GAAG,CAAC,mBAAmB,CAAC;UAChCY,MAAM,CAACG,IAAI,CAAC,UAAU,EAAE;YAAErC,MAAM;YAAEsC,QAAQ,EAAEJ,MAAM,CAAC3D;UAAG,CAAC,CAAC;UACxD;UACA;UACA,IAAIwB,eAAe,CAACkC,OAAO,EAAE;YAC3B1F,MAAM,CACJ,YAAYyC,KAAK,IAAIC,SAAS,mBAAmBe,MAAM,EAAE,EACzDjB,KACF;YACE;YACA;YAAA,CACCwD,IAAI,CAAEC,KAAK,IAAKlD,WAAW,CAAEmD,IAAI,IAAKpF,YAAY,CAACoF,IAAI,EAAED,KAAK,CAAC,CAAC,CAAC,CACjEE,KAAK,CAAEC,CAAC,IAAKtB,OAAO,CAACC,GAAG,CAAC,yBAAyB,EAAEqB,CAAC,CAAC,CAAC;UAC5D;UACA5C,eAAe,CAACkC,OAAO,GAAG,IAAI;QAChC,CAAC,CAAC;QAEFC,MAAM,CAACE,EAAE,CAAC,gBAAgB,EAAGQ,OAA6B,IAAK;UAC7DvB,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAEsB,OAAO,CAACC,OAAO,CAAC;UACjDvD,WAAW,CAAEmD,IAAI,IAAKrF,oBAAoB,CAACqF,IAAI,EAAEG,OAAO,CAACC,OAAO,CAAC,CAAC;QACpE,CAAC,CAAC;QAEFX,MAAM,CAACE,EAAE,CAAC,YAAY,EAAGU,MAAW,IAAK;UACvCzB,OAAO,CAACC,GAAG,CAAC,wBAAwBwB,MAAM,EAAE,CAAC;QAC/C,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOtB,KAAK,EAAE;QACdH,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAEE,KAAK,CAAC;QAC5C;MACF,CAAC,SAAS;QACR9B,UAAU,CAAC,KAAK,CAAC;MACnB;IACF,CAAC;IAEDmC,cAAc,CAAC,CAAC;IAEhB,OAAO,MAAM;MACX/B,SAAS,CAACmC,OAAO,EAAEc,UAAU,CAAC,CAAC;IACjC,CAAC;EACH,CAAC,EAAE,CAAC/C,MAAM,EAAEhB,KAAK,EAAEC,SAAS,EAAEF,KAAK,CAAC,CAAC;EAErC,MAAMiE,eAAe,GAAG7H,OAAO,CAAC,MAAM;IACpC,IAAI,CAACkE,QAAQ,IAAIA,QAAQ,CAAC4D,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;IAEjD,MAAMC,eAAe,GAAG7D,QAAQ,CAAC8D,MAAM,CACrC,CAACC,GAAG,EAAEP,OAAO,KAAK;MAChB,MAAMQ,OAAO,GAAG,IAAIC,IAAI,CAACT,OAAO,CAACU,SAAS,CAAC,CAACC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;MACzE,IAAI,CAACJ,GAAG,CAACC,OAAO,CAAC,EAAE;QACjBD,GAAG,CAACC,OAAO,CAAC,GAAG,EAAE;MACnB;MACAD,GAAG,CAACC,OAAO,CAAC,CAACI,IAAI,CAACZ,OAAO,CAAC;MAC1B,OAAOO,GAAG;IACZ,CAAC,EACD,CAAC,CACH,CAAC;;IAED;IACA,OAAOM,MAAM,CAACC,IAAI,CAACT,eAAe,CAAC,CAChCU,IAAI,CAAC,CAAC,CACNC,OAAO,CAAC,CAAC,CACTC,GAAG,CAAEC,IAAI,KAAM;MACdC,KAAK,EAAE,IAAIV,IAAI,CAACS,IAAI,CAAC,CAACP,kBAAkB,CAAC,OAAO,EAAE;QAChDS,GAAG,EAAE,SAAS;QACdC,KAAK,EAAE,SAAS;QAChBC,IAAI,EAAE;MACR,CAAC,CAAC;MACFC,IAAI,EAAE,CAAC,IAAIlB,eAAe,CAACa,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAACF,OAAO,CAAC;IACnD,CAAC,CAAC,CAAC;EACP,CAAC,EAAE,CAACxE,QAAQ,CAAC,CAAC;;EAEd;EACA,MAAMgF,WAAW,GAAGA,CAAC;IACnBC,QAAQ;IACRC;EAMF,CAAC,KAAK;IACJ,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGzJ,QAAQ,CAAM,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC0J,cAAc,EAAEC,iBAAiB,CAAC,GAAG3J,QAAQ,CAAC,KAAK,CAAC;IAE3D,MAAM4J,iBAAiB,GAAGA,CAACC,KAAa,EAAEC,KAAa,KAAK;MAC1DL,WAAW,CAAEhC,IAAS,KAAM;QAAE,GAAGA,IAAI;QAAE,CAACoC,KAAK,GAAGC;MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAMC,eAAe,GAAGA,CAAA,KAAM;MAC5B,IAAI,CAACL,cAAc,EAAE;QACnB3I,KAAK,CAAC0F,KAAK,CACT,kBAAkB,EAClB,gDACF,CAAC;QACD;MACF;MACA6C,QAAQ,CAACE,QAAQ,CAAC;IACpB,CAAC;IAED,oBACE9G,KAAA,CAAChC,YAAY;MAACsJ,KAAK,EAAE1E,MAAM,CAAC2E,QAAS;MAAA5G,QAAA,gBACnCX,KAAA,CAACtC,IAAI;QAAC4J,KAAK,EAAE1E,MAAM,CAAC4E,aAAc;QAAA7G,QAAA,gBAChCb,IAAA,CAACnC,IAAI;UAAC2J,KAAK,EAAE1E,MAAM,CAAC6E,eAAgB;UAAA9G,QAAA,EAAC;QAGrC,CAAM,CAAC,eAEPX,KAAA,CAACtC,IAAI;UAAC4J,KAAK,EAAE1E,MAAM,CAAC8E,kBAAmB;UAAA/G,QAAA,gBACrCb,IAAA,CAACnC,IAAI;YAAC2J,KAAK,EAAE1E,MAAM,CAAC+E,SAAU;YAAAhH,QAAA,EAAC;UAAU,CAAM,CAAC,eAChDb,IAAA,CAAClC,SAAS;YACR0J,KAAK,EAAE1E,MAAM,CAACgF,SAAU;YACxBC,WAAW,EAAC,YAAY;YACxBC,oBAAoB,EAAE,SAAU;YAChCC,YAAY,EAAGC,IAAI,IAAKd,iBAAiB,CAAC,WAAW,EAAEc,IAAI;UAAE,CAC9D,CAAC;QAAA,CACE,CAAC,eAEPhI,KAAA,CAACtC,IAAI;UAAC4J,KAAK,EAAE1E,MAAM,CAAC8E,kBAAmB;UAAA/G,QAAA,gBACrCb,IAAA,CAACnC,IAAI;YAAC2J,KAAK,EAAE1E,MAAM,CAAC+E,SAAU;YAAAhH,QAAA,EAAC;UAAK,CAAM,CAAC,eAC3Cb,IAAA,CAAClC,SAAS;YACR0J,KAAK,EAAE1E,MAAM,CAACgF,SAAU;YACxBC,WAAW,EAAC,OAAO;YACnBC,oBAAoB,EAAE,SAAU;YAChCC,YAAY,EAAGC,IAAI,IAAKd,iBAAiB,CAAC,OAAO,EAAEc,IAAI;UAAE,CAC1D,CAAC;QAAA,CACE,CAAC;MAAA,CACH,CAAC,eAEPhI,KAAA,CAACtC,IAAI;QAAC4J,KAAK,EAAE1E,MAAM,CAACqF,gBAAiB;QAAAtH,QAAA,gBACnCb,IAAA,CAACjC,gBAAgB;UACfqK,OAAO,EAAEA,CAAA,KAAMjB,iBAAiB,CAAC,CAACD,cAAc,CAAE;UAClDM,KAAK,EAAE,CACL1E,MAAM,CAACuF,YAAY,EACnB;YAAE9H,eAAe,EAAE2G,cAAc,GAAG,SAAS,GAAG;UAAO,CAAC,CACxD;UACFoB,iBAAiB,EAAC,UAAU;UAC5BC,kBAAkB,EAAE;YAAEC,OAAO,EAAEtB;UAAe,CAAE;UAAArG,QAAA,EAE/CqG,cAAc,iBAAIlH,IAAA,CAACnC,IAAI;YAAC2J,KAAK,EAAE1E,MAAM,CAAC2F,SAAU;YAAA5H,QAAA,EAAC;UAAC,CAAM;QAAC,CAC1C,CAAC,eAEnBX,KAAA,CAACrC,IAAI;UAAC2J,KAAK,EAAE1E,MAAM,CAAC4F,WAAY;UAAA7H,QAAA,gBAC9Bb,IAAA,CAACnC,IAAI;YAAC2J,KAAK,EAAE;cAAEmB,KAAK,EAAE;YAAM,CAAE;YAAA9H,QAAA,EAAC;UAAC,CAAM,CAAC,UAAM,EAAC,GAAG,eACjDb,IAAA,CAACnC,IAAI;YAAC2J,KAAK,EAAE1E,MAAM,CAAC8F,WAAY;YAAA/H,QAAA,EAAC;UAAO,CAAM,CAAC;QAAA,CAC3C,CAAC;MAAA,CACH,CAAC,eAEPb,IAAA,CAACpC,IAAI;QAAC4J,KAAK,EAAE1E,MAAM,CAAC+F,UAAW;QAAAhI,QAAA,eAC7Bb,IAAA,CAACjC,gBAAgB;UACfyJ,KAAK,EAAE,CAAC1E,MAAM,CAACgG,WAAW,EAAE;YAAEvI,eAAe,EAAEwG;UAAY,CAAC,CAAE;UAC9DqB,OAAO,EAAEb,eAAgB;UAAA1G,QAAA,eAEzBb,IAAA,CAACnC,IAAI;YAAC2J,KAAK,EAAE1E,MAAM,CAACiG,eAAgB;YAAAlI,QAAA,EAAC;UAAU,CAAM;QAAC,CACtC;MAAC,CACf,CAAC;IAAA,CACK,CAAC;EAEnB,CAAC;EAED,MAAMmI,aAAa,GAAIC,GAAW,IAAK;IACrC7G,YAAY,CAAC6G,GAAG,CAAC;IACjB,IAAI5G,UAAU,CAACoC,OAAO,EAAEyE,YAAY,CAAC7G,UAAU,CAACoC,OAAO,CAAC;IACxDpC,UAAU,CAACoC,OAAO,GAAG0E,UAAU,CAAC,MAAM/G,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;EACjE,CAAC;EAED,MAAMgH,cAAc,GAAGA,CAAA,KAAM;IAC3B,MAAMlB,IAAI,GAAGnG,SAAS,CAACsH,IAAI,CAAC,CAAC;IAC7B,IAAInB,IAAI,KAAK,EAAE,EAAE;IAEjB,MAAMxD,MAAM,GAAGpC,SAAS,CAACmC,OAAO;IAChC;IACA;IACA,IAAI,CAACC,MAAM,IAAI,CAACA,MAAM,CAAC4E,SAAS,EAAE;MAChCN,aAAa,CAAC,sCAAsC,CAAC;MACrD;IACF;;IAEA;IACA;IACAhH,YAAY,CAAC,EAAE,CAAC;IAEhB,MAAMqD,OAAgB,GAAG;MACvBkE,IAAI,EAAE,MAAM;MACZrB,IAAI;MACJsB,MAAM,EAAE,MAAM;MACdzD,SAAS,EAAED,IAAI,CAAC2D,GAAG,CAAC;IACtB,CAAC;IACD;IACA;IACC/E,MAAM,CACJgF,OAAO,CAAC,IAAI,CAAC,CACb7E,IAAI,CACH,aAAa,EACb;MAAE8E,UAAU,EAAEnI,KAAK;MAAEC,SAAS;MAAEe,MAAM;MAAE6C;IAAQ,CAAC,EAChDuE,GAAY,IAAK;MAChB,IAAIA,GAAG,EAAE;QACP5H,YAAY,CAACkG,IAAI,CAAC;QAClBc,aAAa,CAAC,sCAAsC,CAAC;MACvD;IACF,CACF,CAAC;EACL,CAAC;EAED,MAAMa,gBAAgB,GAAG,MAAAA,CAAA,KAAY;IACnC,IAAI;MACF,MAAMC,MAAM,GAAG,MAAMlL,IAAI,CAAC;QACxB2K,IAAI,EAAE,CAAC1K,KAAK,CAACkL,MAAM,EAAElL,KAAK,CAACmL,GAAG,EAAEnL,KAAK,CAACoL,GAAG,CAAC;QAC1CC,mBAAmB,EAAE;MACvB,CAAC,CAAC;MACFvH,eAAe,CAACmH,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,OAAOF,GAAG,EAAE;MACZ,IAAKA,GAAG,EAAUO,IAAI,KAAK,0BAA0B,EAAE;QACrD;QACA;QACA;QACA;MAAA;IAEJ;EACF,CAAC;EAED,MAAMC,gBAAgB,GAAGA,CAAC;IACxBlC,IAAI;IACJmC,SAAS;IACTC;EAKF,CAAC,KAAK;IACJ,MAAMC,QAAQ,GAAG,sBAAsB;IACvC,MAAMC,KAAK,GAAGtC,IAAI,CAACuC,KAAK,CAACF,QAAQ,CAAC;IAElC,oBACEvK,IAAA,CAACnC,IAAI;MAAC2J,KAAK,EAAE6C,SAAU;MAAAxJ,QAAA,EACpB2J,KAAK,CAAClE,GAAG,CAAC,CAACoE,IAAI,EAAEC,KAAK,KAAK;QAC1B,IAAID,IAAI,CAACE,KAAK,CAACL,QAAQ,CAAC,EAAE;UACxB,oBACEvK,IAAA,CAACnC,IAAI;YAEH2J,KAAK,EAAE8C,SAAU;YACjBlC,OAAO,EAAEA,CAAA,KAAM5J,OAAO,CAACqM,OAAO,CAACH,IAAI,CAAE;YAAA7J,QAAA,EAEpC6J;UAAI,GAJAC,KAKD,CAAC;QAEX;QACA,oBAAO3K,IAAA,CAACnC,IAAI;UAAAgD,QAAA,EAAc6J;QAAI,GAAZC,KAAmB,CAAC;MACxC,CAAC;IAAC,CACE,CAAC;EAEX,CAAC;EAED,MAAMG,eAAe,GAAIC,cAAsB,IAAK;IAClD,MAAMC,SAAS,GAAGnJ,QAAQ,CACvBoJ,MAAM,CAAEhC,GAAG,IAAKA,GAAG,CAACM,IAAI,KAAK,OAAO,IAAIN,GAAG,CAACiC,GAAG,CAAC,CAChD5E,GAAG,CAAE2C,GAAG,KAAM;MAAEiC,GAAG,EAAEjC,GAAG,CAACiC;IAAK,CAAC,CAAC,CAAC;IAEpC,MAAMC,WAAW,GAAGH,SAAS,CAACI,SAAS,CACpCC,GAAG,IAAKA,GAAG,CAACH,GAAG,KAAKH,cACvB,CAAC;IAED,IAAII,WAAW,KAAK,CAAC,CAAC,EAAE;MACtB5H,eAAe,CAACyH,SAAS,CAAC;MAC1BvH,cAAc,CAAC0H,WAAW,CAAC;MAC3B9H,qBAAqB,CAAC,IAAI,CAAC;IAC7B;EACF,CAAC;EAED,MAAMiI,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,IAAIpI,WAAW,EAAE;IACjBP,eAAe,CAAC,IAAI,CAAC;EACvB,CAAC;EAED,MAAM4I,mBAAmB,GAAG,MAAAA,CAAA,KAAY;IACtC,IAAI,CAAC7I,YAAY,IAAIQ,WAAW,EAAE;IAClCC,cAAc,CAAC,IAAI,CAAC;IACpB,IAAI;MACF,MAAMqI,OAAO,GAAG,MAAMxM,UAAU,CAAC0D,YAAY,EAAElB,KAAK,EAAEC,SAAS,CAAC;MAChE,MAAM8H,IAAI,GAAG7G,YAAY,CAAC6G,IAAI,EAAEkC,UAAU,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,MAAM;MACvE,MAAMC,WAAkD,GAAG;QACzDnC,IAAI;QACJoC,QAAQ,EAAEjJ,YAAY,CAACkJ,IAAI,IAAI,MAAM;QACrCV,GAAG,EAAEM;MACP,CAAC;MACD,MAAMK,WAAoB,GAAG;QAC3B,GAAGH,WAAW;QACdlC,MAAM,EAAE,MAAM;QACdzD,SAAS,EAAED,IAAI,CAAC2D,GAAG,CAAC,CAAC;QACrBF;MACF,CAAC;MACDjH,SAAS,CAACmC,OAAO,EAAEI,IAAI,CAAC,aAAa,EAAE;QACrC8E,UAAU,EAAEnI,KAAK;QACjBC,SAAS,EAAEA,SAAS;QACpBe,MAAM,EAAEA,MAAM;QACd6C,OAAO,EAAEwG;MACX,CAAC,CAAC;IACJ,CAAC,CAAC,OAAO7H,KAAK,EAAE;MACdzF,KAAK,CAAC0F,KAAK,CAAC,cAAc,EAAE,4BAA4B,CAAC;MACzDJ,OAAO,CAACG,KAAK,CAAC,eAAe,EAAEA,KAAK,CAAC;IACvC,CAAC,SAAS;MACRrB,eAAe,CAAC,IAAI,CAAC;MACrBQ,cAAc,CAAC,KAAK,CAAC;IACvB;EACF,CAAC;EAED,MAAM2I,eAAe,GAAI/F,SAAiB,IAAK;IAC7C,MAAM0D,GAAG,GAAG3D,IAAI,CAAC2D,GAAG,CAAC,CAAC;IACtB,MAAMsC,WAAW,GAAG,IAAIjG,IAAI,CAACC,SAAS,CAAC,CAACiG,OAAO,CAAC,CAAC;IACjD,MAAMC,mBAAmB,GAAG,CAACxC,GAAG,GAAGsC,WAAW,IAAI,IAAI;IAEtD,IAAIE,mBAAmB,GAAG,EAAE,EAAE;MAC5B,OAAO,UAAU;IACnB;IAEA,OAAO,IAAInG,IAAI,CAACC,SAAS,CAAC,CAACmG,kBAAkB,CAAC,OAAO,EAAE;MACrDC,IAAI,EAAE,SAAS;MACfC,MAAM,EAAE,SAAS;MACjBC,MAAM,EAAE;IACV,CAAC,CAAC;EACJ,CAAC;EAED,MAAMC,aAAa,GAAGA,CAAC;IAAEC;EAAwB,CAAC,KAAK;IACrD,MAAMC,eAAe,GAAGA,CAAA,KAAM;MAC5B,IAAID,IAAI,CAACrB,GAAG,EAAE;QACZ1M,OAAO,CAACqM,OAAO,CAAC0B,IAAI,CAACrB,GAAG,CAAC,CAAChG,KAAK,CAAE0E,GAAG,IAAK;UACvC/F,OAAO,CAACC,GAAG,CAAC,qBAAqB,EAAE8F,GAAG,CAAC;UACvC;QACF,CAAC,CAAC;MACJ;IACF,CAAC;IAED,oBACE1J,KAAA,CAACtC,IAAI;MACH4J,KAAK,EAAE,CACL1E,MAAM,CAAC2J,UAAU,EACjBF,IAAI,CAAC/C,MAAM,KAAK,MAAM,GAAG1G,MAAM,CAAC4J,OAAO,GAAG5J,MAAM,CAAC6J,QAAQ,CACzD;MAAA9L,QAAA,GAED0L,IAAI,CAAC/C,MAAM,KAAK,OAAO,IAAI5G,QAAQ,EAAEE,MAAM,EAAE8J,YAAY,iBACxD5M,IAAA,CAAC3B,KAAK;QACJwO,MAAM,EAAE;UAAEC,GAAG,EAAElK,QAAQ,CAACE,MAAM,CAAC8J;QAAa,CAAE;QAC9CpF,KAAK,EAAE1E,MAAM,CAACiK;MAAO,CACtB,CACF,EACAR,IAAI,CAAC/C,MAAM,KAAK,MAAM,iBACrBxJ,IAAA,CAACnC,IAAI;QAAC2J,KAAK,EAAE1E,MAAM,CAACkK,aAAc;QAAAnM,QAAA,EAC/BiL,eAAe,CAACS,IAAI,CAACxG,SAAS;MAAC,CAC5B,CACP,eACD7F,KAAA,CAACtC,IAAI;QACH4J,KAAK,EACH+E,IAAI,CAAC/C,MAAM,KAAK,OAAO,GACnB1G,MAAM,CAACmK,qBAAqB,GAC5BnK,MAAM,CAACoK,gBACZ;QAAArM,QAAA,gBAEDX,KAAA,CAACtC,IAAI;UACH4J,KAAK,EAAE,CACL1E,MAAM,CAACqK,aAAa,EACpBZ,IAAI,CAAC/C,MAAM,KAAK,MAAM,GAAG1G,MAAM,CAACsK,UAAU,GAAGtK,MAAM,CAACuK,WAAW,CAC/D;UAAAxM,QAAA,GAED0L,IAAI,CAAChD,IAAI,KAAK,MAAM,iBACnBvJ,IAAA,CAACoK,gBAAgB;YACflC,IAAI,EAAEqE,IAAI,CAACrE,IAAI,IAAI,EAAG;YACtBmC,SAAS,EACPkC,IAAI,CAAC/C,MAAM,KAAK,MAAM,GAClB1G,MAAM,CAACwK,gBAAgB,GACvBxK,MAAM,CAACyK,aACZ;YACDjD,SAAS,EAAExH,MAAM,CAAC0K;UAAc,CACjC,CACF,EACAjB,IAAI,CAAChD,IAAI,KAAK,OAAO,iBACpBvJ,IAAA,CAACjC,gBAAgB;YAACqK,OAAO,EAAEA,CAAA,KAAM0C,eAAe,CAACyB,IAAI,CAACrB,GAAI,CAAE;YAAArK,QAAA,eAC1Db,IAAA,CAAC3B,KAAK;cACJwO,MAAM,EAAE;gBAAEC,GAAG,EAAEP,IAAI,CAACrB;cAAI,CAAE;cAC1B1D,KAAK,EAAE1E,MAAM,CAAC2K,YAAa;cAC3BC,UAAU,EAAC;YAAO,CACnB;UAAC,CACc,CACnB,EACAnB,IAAI,CAAChD,IAAI,KAAK,MAAM,iBACnBvJ,IAAA,CAACjC,gBAAgB;YAACqK,OAAO,EAAEoE,eAAgB;YAAA3L,QAAA,eACzCb,IAAA,CAACnC,IAAI;cACH2J,KAAK,EAAE,CACL1E,MAAM,CAAC6K,QAAQ,EACfpB,IAAI,CAAC/C,MAAM,KAAK,MAAM,GAClB1G,MAAM,CAACwK,gBAAgB,GACvBxK,MAAM,CAACyK,aAAa,CACxB;cAAA1M,QAAA,EAED0L,IAAI,CAACZ,QAAQ,IAAIY,IAAI,CAACrB,GAAG,EAAET,KAAK,CAAC,GAAG,CAAC,CAACmD,GAAG,CAAC,CAAC,IAAI;YAAM,CAClD;UAAC,CACS,CACnB;QAAA,CACG,CAAC,EACNrB,IAAI,CAAC/C,MAAM,KAAK,OAAO,iBACtBxJ,IAAA,CAACnC,IAAI;UAAC2J,KAAK,EAAE1E,MAAM,CAACkK,aAAc;UAAAnM,QAAA,EAC/BiL,eAAe,CAACS,IAAI,CAACxG,SAAS;QAAC,CAC5B,CACP;MAAA,CACG,CAAC;IAAA,CACH,CAAC;EAEX,CAAC;EAED,IAAI9D,OAAO,EAAE;IACX,oBACEjC,IAAA,CAACpC,IAAI;MAAC4J,KAAK,EAAE;QAAEqG,IAAI,EAAE,CAAC;QAAEC,cAAc,EAAE,QAAQ;QAAEC,UAAU,EAAE;MAAS,CAAE;MAAAlN,QAAA,eACvEb,IAAA,CAAC1B,iBAAiB;QAACgC,IAAI,EAAC,OAAO;QAACqI,KAAK,EAAE;MAAU,CAAE;IAAC,CAChD,CAAC;EAEX;EAEA,oBACEzI,KAAA,CAAChC,YAAY;IAACsJ,KAAK,EAAE1E,MAAM,CAAC2E,QAAS;IAAA5G,QAAA,gBACnCb,IAAA,CAACtB,KAAK;MAACsP,OAAO,EAAE5K,oBAAqB;MAAC6K,WAAW,EAAE,IAAK;MAAApN,QAAA,eACtDb,IAAA,CAACL,WAAW;QACVuO,SAAS,EAAE5K,YAAa;QACxBqH,KAAK,EAAEnH,WAAY;QACnB2K,QAAQ,EAAEA,CAAA,KAAM9K,qBAAqB,CAAC,KAAK,CAAE;QAC7C+K,eAAe;QACfC,eAAe,EAAEA,CAACC,YAAY,EAAEC,OAAO,kBACrCvO,IAAA,CAACpC,IAAI;UACH4J,KAAK,EAAE;YACLgH,QAAQ,EAAE,UAAU;YACpBC,GAAG,EAAE,EAAE;YACPhO,KAAK,EAAE,MAAM;YACbsN,UAAU,EAAE,QAAQ;YACpBW,MAAM,EAAE;UACV,CAAE;UAAA7N,QAAA,eAEFX,KAAA,CAACrC,IAAI;YACH2J,KAAK,EAAE;cAAEmB,KAAK,EAAE,OAAO;cAAEgG,QAAQ,EAAE,EAAE;cAAEC,UAAU,EAAE;YAAO,CAAE;YAAA/N,QAAA,GAE3DyN,YAAY,EAAC,KAAG,EAACC,OAAO;UAAA,CACrB;QAAC,CACH,CACN;QACFM,YAAY,EAAEA,CAAA,kBACZ7O,IAAA,CAACjC;QACC;QAAA;UACAyJ,KAAK,EAAE,CACL1E,MAAM,CAACgM,sBAAsB,EAC7B;YACEL,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE,IAAI;YAAE;YACdF,QAAQ,EAAE,UAAU;YAAE;YACtBO,KAAK,EAAE;UACT,CAAC;UAEH;UAAA;UACAC,OAAO,EAAE;YAAEP,GAAG,EAAE,EAAE;YAAEQ,MAAM,EAAE,EAAE;YAAEC,IAAI,EAAE,EAAE;YAAEH,KAAK,EAAE;UAAG,CAAE;UACtD3G,OAAO,EAAEA,CAAA,KAAM/E,qBAAqB,CAAC,KAAK,CAAE;UAAAxC,QAAA,eAE5Cb,IAAA,CAACnC,IAAI;YAAC2J,KAAK,EAAE1E,MAAM,CAACqM,0BAA2B;YAAAtO,QAAA,EAAC;UAAC,CAAM;QAAC,CACxC;MAClB,CACH;IAAC,CACG,CAAC,EACPc,YAAY,KAAKyN,SAAS,GACzBzN,YAAY,gBAEZzB,KAAA,CAACtC,IAAI;MAAC4J,KAAK,EAAE1E,MAAM,CAACuM,MAAO;MAAAxO,QAAA,gBACzBX,KAAA,CAACtC,IAAI;QAAC4J,KAAK,EAAE1E,MAAM,CAACwM,aAAc;QAAAzO,QAAA,GAC/B+B,QAAQ,EAAEE,MAAM,EAAE8J,YAAY,iBAC7B5M,IAAA,CAAC3B,KAAK;UACJwO,MAAM,EAAE;YAAEC,GAAG,EAAElK,QAAQ,CAACE,MAAM,CAAC8J;UAAa,CAAE;UAC9CpF,KAAK,EAAE1E,MAAM,CAACyM;QAAa,CAC5B,CACF,eACDvP,IAAA,CAACnC,IAAI;UAAC2J,KAAK,EAAE1E,MAAM,CAAC0M,WAAY;UAAA3O,QAAA,EAC7B+B,QAAQ,EAAEE,MAAM,CAAC8I,IAAI,IAAI;QAAW,CACjC,CAAC;MAAA,CACH,CAAC,eACP5L,IAAA,CAACjC,gBAAgB;QAACqK,OAAO,EAAE9G,OAAQ;QAAAT,QAAA,eACjCb,IAAA,CAACnC,IAAI;UAAC2J,KAAK,EAAE1E,MAAM,CAAC2M,eAAgB;UAAA5O,QAAA,EAAC;QAAC,CAAM;MAAC,CAC7B,CAAC;IAAA,CACf,CACP,eACDb,IAAA,CAAC7B,oBAAoB;MACnBqJ,KAAK,EAAE1E,MAAM,CAAC4M,SAAU;MACxBC,QAAQ,EAAEvR,QAAQ,CAACwR,EAAE,KAAK,KAAK,GAAG,SAAS,GAAGR,SAAU;MAAAvO,QAAA,EAEvDmC,SAAS,KAAK,UAAU,gBACvBhD,IAAA,CAAC6G,WAAW;QACVC,QAAQ,EAAEA,CAAA,KAAM7D,YAAY,CAAC,UAAU;QACvC;QACA;QAAA;QACA8D,WAAW,EAAEnE,QAAQ,EAAEE,MAAM,EAAE+M;MAAe,CAC/C,CAAC,gBAEF3P,KAAA,CAAAE,SAAA;QAAAS,QAAA,gBACEb,IAAA,CAAChC,WAAW;UACV8R,QAAQ;UACRC,QAAQ,EAAEvK,eAAgB;UAC1BwK,UAAU,EAAE1D,aAAc;UAC1B2D,mBAAmB,EAAEA,CAAC;YAAEC,OAAO,EAAE;cAAE1J;YAAM;UAAE,CAAC,kBAC1CxG,IAAA,CAACpC,IAAI;YAAC4J,KAAK,EAAE1E,MAAM,CAACqN,aAAc;YAAAtP,QAAA,eAChCb,IAAA,CAACnC,IAAI;cAAC2J,KAAK,EAAE1E,MAAM,CAACsN,iBAAkB;cAAAvP,QAAA,EAAE2F;YAAK,CAAO;UAAC,CACjD,CACN;UACF6J,YAAY,EAAG9D,IAAI,IAAKzM,UAAU,CAACyM,IAAI,CAAE;UACzC/E,KAAK,EAAE1E,MAAM,CAACwN;QAAY,CAC3B,CAAC,eACFpQ,KAAA,CAACtC,IAAI;UAAC4J,KAAK,EAAE1E,MAAM,CAACyN,cAAe;UAAA1P,QAAA,GAChCsB,SAAS,iBACRnC,IAAA,CAACpC,IAAI;YAAC4J,KAAK,EAAE1E,MAAM,CAAC0N,WAAY;YAAA3P,QAAA,eAC9Bb,IAAA,CAACnC,IAAI;cAAC2J,KAAK,EAAE1E,MAAM,CAAC2N,eAAgB;cAAA5P,QAAA,EAAEsB;YAAS,CAAO;UAAC,CACnD,CACP,EACAO,YAAY,gBACXxC,KAAA,CAACtC,IAAI;YAAC4J,KAAK,EAAE1E,MAAM,CAAC4N,sBAAuB;YAAA7P,QAAA,gBACzCX,KAAA,CAACtC,IAAI;cAAC4J,KAAK,EAAE1E,MAAM,CAAC6N,iBAAkB;cAAA9P,QAAA,gBACpCb,IAAA,CAACnC,IAAI;gBAAC2J,KAAK,EAAE;kBAAEmH,QAAQ,EAAE;gBAAG,CAAE;gBAAA9N,QAAA,EAAC;cAAE,CAAM,CAAC,eACxCb,IAAA,CAACnC,IAAI;gBAAC2J,KAAK,EAAE1E,MAAM,CAAC8N,YAAa;gBAACC,aAAa,EAAE,CAAE;gBAAAhQ,QAAA,EAChD6B,YAAY,CAACkJ;cAAI,CACd,CAAC;YAAA,CACH,CAAC,eACP5L,IAAA,CAACpC,IAAI;cAAC4J,KAAK,EAAE1E,MAAM,CAACgO,SAAU;cAAAjQ,QAAA,EAC3BqC,WAAW,gBACVlD,IAAA,CAAC1B,iBAAiB;gBAChBqK,KAAK,EAAE7F,MAAM,CAACiO,YAAY,CAACxQ;cAAgB,CAC5C,CAAC,gBAEFL,KAAA,CAAAE,SAAA;gBAAAS,QAAA,gBACEb,IAAA,CAACjC,gBAAgB;kBACfyJ,KAAK,EAAE,CAAC1E,MAAM,CAACkO,YAAY,EAAElO,MAAM,CAACiO,YAAY,CAAE;kBAClD3I,OAAO,EAAEmD,mBAAoB;kBAC7B0F,QAAQ,EAAE/N,WAAY;kBAAArC,QAAA,eAEtBb,IAAA,CAACnC,IAAI;oBAAC2J,KAAK,EAAE1E,MAAM,CAACoO,gBAAiB;oBAAArQ,QAAA,EAAC;kBAEtC,CAAM;gBAAC,CACS,CAAC,eACnBb,IAAA,CAACjC,gBAAgB;kBACfyJ,KAAK,EAAE,CAAC1E,MAAM,CAACkO,YAAY,EAAElO,MAAM,CAACqO,YAAY,CAAE;kBAClD/I,OAAO,EAAEkD,kBAAmB;kBAC5B2F,QAAQ,EAAE/N,WAAY;kBAAArC,QAAA,eAEtBb,IAAA,CAACnC,IAAI;oBAAC2J,KAAK,EAAE1E,MAAM,CAACsO,gBAAiB;oBAAAvQ,QAAA,EAAC;kBAAM,CAAM;gBAAC,CACnC,CAAC;cAAA,CACnB;YACH,CACG,CAAC;UAAA,CACH,CAAC,gBAEPX,KAAA,CAACtC,IAAI;YAAC4J,KAAK,EAAE1E,MAAM,CAACuO,oBAAqB;YAAAxQ,QAAA,gBACvCb,IAAA,CAACjC,gBAAgB;cACfqK,OAAO,EAAEyB,gBAAiB;cAC1BrC,KAAK,EAAE1E,MAAM,CAACwO,gBAAiB;cAAAzQ,QAAA,eAE/BX,KAAA,CAACtC,IAAI;gBAAC4J,KAAK,EAAE1E,MAAM,CAACyO,iBAAkB;gBAAA1Q,QAAA,gBACpCb,IAAA,CAACpC,IAAI;kBACH4J,KAAK,EAAE,CACL1E,MAAM,CAAC0O,WAAW,EAClB1O,MAAM,CAAC2O,qBAAqB;gBAC5B,CACH,CAAC,eACFzR,IAAA,CAACpC,IAAI;kBACH4J,KAAK,EAAE,CAAC1E,MAAM,CAAC0O,WAAW,EAAE1O,MAAM,CAAC4O,mBAAmB;gBAAE,CACzD,CAAC;cAAA,CACE;YAAC,CACS,CAAC,eACnB1R,IAAA,CAAClC,SAAS;cACR0J,KAAK,EAAE1E,MAAM,CAAC6O,KAAM;cACpBrK,KAAK,EAAEvF,SAAU;cACjBkG,YAAY,EAAEjG,YAAa;cAC3B+F,WAAW,EAAC,oBAAoB;cAChCC,oBAAoB,EAAC;YAAS,CAC/B,CAAC,eACFhI,IAAA,CAACjC,gBAAgB;cACfqK,OAAO,EAAEgB,cAAe;cACxB5B,KAAK,EAAE1E,MAAM,CAAC8O,UAAW;cAAA/Q,QAAA,eAEzBb,IAAA,CAACK,QAAQ;gBACPC,IAAI,EAAE,EAAG;gBACTC,eAAe,EACbqC,QAAQ,EAAEE,MAAM,EAAE+M,cAAc,IAAI,SACrC;gBACDrP,SAAS,EAAEoC,QAAQ,EAAEE,MAAM,EAAE+O,cAAc,IAAI;cAAU,CAC1D;YAAC,CACc,CAAC;UAAA,CACf,CACP;QAAA,CACG,CAAC;MAAA,CACP;IACH,CACmB,CAAC;EAAA,CACX,CAAC;AAEnB,CAAC;AAED,MAAMtN,gBAAgB,GAAGA,CAACuN,YAAiB,GAAG,CAAC,CAAC,KAAK;EACnD,MAAMC,WAAW,GAAGtT,UAAU,CAACuT,GAAG,CAAC,QAAQ,CAAC,CAACvR,KAAK;EAClD;EACA,OAAOxC,UAAU,CAACgU,MAAM,CAAC;IACvBxK,QAAQ,EAAE;MACRoG,IAAI,EAAE,CAAC;MACPtN,eAAe,EAAE;MACjB;IACF,CAAC;IACDmP,SAAS,EAAE;MAAE7B,IAAI,EAAE,CAAC;MAAEtN,eAAe,EAAE;IAAU,CAAC;IAClD2R,QAAQ,EAAE;MAAErE,IAAI,EAAE,CAAC;MAAEC,cAAc,EAAE,QAAQ;MAAEC,UAAU,EAAE;IAAS,CAAC;IACrEsB,MAAM,EAAE;MACN8C,aAAa,EAAE,KAAK;MACpBrE,cAAc,EAAE,eAAe;MAC/BC,UAAU,EAAE,QAAQ;MACpBxN,eAAe,EAAEuR,YAAY,EAAEjC,cAAc,IAAI,SAAS;MAC1DuC,eAAe,EAAE,EAAE;MACnBC,iBAAiB,EAAE,EAAE;MACrBC,UAAU,EAAElU,QAAQ,CAACwR,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG;IAC/C,CAAC;IACDN,aAAa,EAAE;MACb6C,aAAa,EAAE,KAAK;MACpBpE,UAAU,EAAE;IACd,CAAC;IACDwB,YAAY,EAAE;MACZ9O,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,EAAE;MACV6R,YAAY,EAAE,EAAE;MAChBC,WAAW,EAAE;IACf,CAAC;IACDhD,WAAW,EAAE;MACXb,QAAQ,EAAE,EAAE;MACZC,UAAU,EAAE,MAAM;MAClBjG,KAAK,EAAEmJ,YAAY,EAAED,cAAc,IAAI;IACzC,CAAC;IACDpC,eAAe,EAAE;MACfd,QAAQ,EAAE,EAAE;MACZhG,KAAK,EAAEmJ,YAAY,EAAED,cAAc,IAAI,SAAS;MAChDjD,UAAU,EAAE;IACd,CAAC;IACD0B,WAAW,EAAE;MAAEzC,IAAI,EAAE,CAAC;MAAEwE,iBAAiB,EAAE;IAAE,CAAC;IAC9C5F,UAAU,EAAE;MACV0F,aAAa,EAAE,KAAK;MACpBpE,UAAU,EAAE,YAAY;MACxB0E,cAAc,EAAE;IAClB,CAAC;IACD9F,QAAQ,EAAE;MAAEmB,cAAc,EAAE;IAAa,CAAC;IAC1CpB,OAAO,EAAE;MAAEoB,cAAc,EAAE;IAAW,CAAC;IACvCZ,gBAAgB,EAAE;MAChBwF,QAAQ,EAAEX,WAAW,GAAG,GAAG;MAC3BY,QAAQ,EAAE,MAAM;MAChBR,aAAa,EAAE,KAAK;MACpBpE,UAAU,EAAE;IACd,CAAC;IACDd,qBAAqB,EAAE;MACrByF,QAAQ,EAAEX,WAAW,GAAG,GAAG;MAC3BhE,UAAU,EAAE,UAAU;MACtBoE,aAAa,EAAE;IACjB,CAAC;IACDpF,MAAM,EAAE;MACNtM,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,EAAE;MACV6R,YAAY,EAAE,EAAE;MAChBC,WAAW,EAAE,CAAC;MACdI,SAAS,EAAE;IACb,CAAC;IACDzF,aAAa,EAAE;MACbkF,iBAAiB,EAAE,CAAC;MACpBD,eAAe,EAAE,CAAC;MAClBG,YAAY,EAAE;IAChB,CAAC;IACDlF,WAAW,EAAE;MACX9M,eAAe,EAAEuR,YAAY,CAACe,eAAe,IAAI;IACnD,CAAC;IACDzF,UAAU,EAAE;MACV7M,eAAe,EAAEuR,YAAY,CAACgB,kBAAkB,IAAI;IACtD,CAAC;IACDxF,gBAAgB,EAAE;MAChB3E,KAAK,EAAEmJ,YAAY,CAACiB,sBAAsB,IAAI;IAChD,CAAC;IACDxF,aAAa,EAAE;MACb5E,KAAK,EAAEmJ,YAAY,CAACkB,mBAAmB,IAAI;IAC7C,CAAC;IACDrF,QAAQ,EAAE;MACR+E,QAAQ,EAAEX,WAAW,GAAG,GAAG;MAC3BkB,kBAAkB,EAAE;IACtB,CAAC;IACDjG,aAAa,EAAE;MACb2B,QAAQ,EAAE,EAAE;MACZhG,KAAK,EAAE,MAAM;MACbuK,gBAAgB,EAAE,CAAC;MACnBN,SAAS,EAAE;IACb,CAAC;IACDzC,aAAa,EAAE;MACbyC,SAAS,EAAE,QAAQ;MACnBrS,eAAe,EAAE,oBAAoB;MACrCgS,YAAY,EAAE,EAAE;MAChBH,eAAe,EAAE,CAAC;MAClBC,iBAAiB,EAAE,EAAE;MACrBI,cAAc,EAAE;IAClB,CAAC;IACDrC,iBAAiB,EAAE;MACjBzH,KAAK,EAAE,oBAAoB;MAC3BgG,QAAQ,EAAE,EAAE;MACZC,UAAU,EAAE;IACd,CAAC;IACD2B,cAAc,EAAE;MACd6B,eAAe,EAAE,EAAE;MACnBC,iBAAiB,EAAE,EAAE;MACrBc,cAAc,EAAE,CAAC;MACjBC,cAAc,EAAE,SAAS;MACzB7S,eAAe,EAAE;IACnB,CAAC;IACDiQ,WAAW,EAAE;MACX;MACA;MACA;MACAhC,QAAQ,EAAE,UAAU;MACpBS,MAAM,EAAE,EAAE;MACVC,IAAI,EAAE,EAAE;MACRH,KAAK,EAAE,EAAE;MACTqD,eAAe,EAAE,CAAC;MAClBC,iBAAiB,EAAE,EAAE;MACrB9R,eAAe,EAAE,SAAS;MAC1B8S,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,SAAS;MACtBf,YAAY,EAAE,CAAC;MACf7D,MAAM,EAAE,EAAE;MAAE;MACZ6E,SAAS,EAAE,EAAE,CAAE;IACjB,CAAC;IACD9C,eAAe,EAAE;MACf9H,KAAK,EAAE,SAAS;MAChBgG,QAAQ,EAAE,EAAE;MACZ6E,SAAS,EAAE;IACb,CAAC;IACDnC,oBAAoB,EAAE;MACpBc,aAAa,EAAE,KAAK;MACpBpE,UAAU,EAAE;IACd,CAAC;IACD4D,KAAK,EAAE;MACL9D,IAAI,EAAE,CAAC;MACPnN,MAAM,EAAE,EAAE;MACVH,eAAe,EAAE,SAAS;MAC1BgS,YAAY,EAAE,IAAI;MAClBF,iBAAiB,EAAE,EAAE;MACrB1D,QAAQ,EAAE,EAAE;MACZuE,gBAAgB,EAAE,EAAE;MACpBI,WAAW,EAAE,SAAS;MACtBD,WAAW,EAAE,CAAC;MACd1K,KAAK,EAAEmJ,YAAY,CAACiB,sBAAsB,IAAI;IAChD,CAAC;IACDzB,gBAAgB,EAAE;MAAEmC,OAAO,EAAE;IAAE,CAAC;IAChC;IACA7B,UAAU,EAAE;MACV9D,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE;IACd,CAAC;IACD2F,cAAc,EAAE;MACdC,OAAO,EAAE,GAAG;MACZ7F,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE,QAAQ;MACpB6F,YAAY,EAAE,CAAC;MACftB,UAAU,EAAE;IACd,CAAC;IACD5B,sBAAsB,EAAE;MACtB3C,UAAU,EAAE;IACd,CAAC;IACD4C,iBAAiB,EAAE;MACjBwB,aAAa,EAAE,KAAK;MACpBpE,UAAU,EAAE,QAAQ;MACpBxN,eAAe,EAAE,SAAS;MAC1BgS,YAAY,EAAE,IAAI;MAClBF,iBAAiB,EAAE,EAAE;MACrBD,eAAe,EAAE,EAAE;MACnB3R,KAAK,EAAE;IACT,CAAC;IACDmQ,YAAY,EAAE;MACZ/C,IAAI,EAAE,CAAC;MACPgG,UAAU,EAAE,EAAE;MACdlF,QAAQ,EAAE,EAAE;MACZhG,KAAK,EAAE;IACT,CAAC;IACDmI,SAAS,EAAE;MACTqB,aAAa,EAAE,KAAK;MACpBrE,cAAc,EAAE,QAAQ;MACxBgG,SAAS,EAAE,EAAE;MACbrT,KAAK,EAAE;IACT,CAAC;IACDuQ,YAAY,EAAE;MACZnD,IAAI,EAAE,CAAC;MACPuE,eAAe,EAAE,EAAE;MACnBG,YAAY,EAAE,CAAC;MACfxE,UAAU,EAAE,QAAQ;MACpBmF,gBAAgB,EAAE;IACpB,CAAC;IACDnC,YAAY,EAAE;MACZxQ,eAAe,EAAEuR,YAAY,EAAEjC,cAAc,IAAI;IACnD,CAAC;IACDqB,gBAAgB,EAAE;MAChBvI,KAAK,EAAEmJ,YAAY,EAAED,cAAc,IAAI,SAAS;MAChDjD,UAAU,EAAE,MAAM;MAClBD,QAAQ,EAAE;IACZ,CAAC;IACDwC,YAAY,EAAE;MACZ5Q,eAAe,EAAE;IACnB,CAAC;IACD6Q,gBAAgB,EAAE;MAChBzI,KAAK,EAAE,MAAM;MACbiG,UAAU,EAAE,MAAM;MAClBD,QAAQ,EAAE;IACZ,CAAC;IACD4C,iBAAiB,EAAE;MACjB9Q,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,EAAE;MACVoN,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE;IACd,CAAC;IACDyD,WAAW,EAAE;MACXhD,QAAQ,EAAE,UAAU;MACpBjO,eAAe,EAAE;IACnB,CAAC;IACDkR,qBAAqB,EAAE;MACrBhR,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,CAAC;MACT6R,YAAY,EAAE;IAChB,CAAC;IACDb,mBAAmB,EAAE;MACnBjR,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,EAAE;MACV6R,YAAY,EAAE;IAChB,CAAC;IACD9E,YAAY,EAAE;MACZhN,KAAK,EAAE,GAAG;MACVC,MAAM,EAAE,GAAG;MACX6R,YAAY,EAAE;IAChB,CAAC;IACD7K,aAAa,EAAE;MACb;MACAnH,eAAe,EACbb,SAAS,CAACoS,YAAY,EAAEjC,cAAc,EAAE,KAAK,CAAC,IAC9CnQ,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC;MAC7B;MACA+T,OAAO,EAAE,EAAE;MACXM,MAAM,EAAE,EAAE;MACVxB,YAAY,EAAE;IAChB,CAAC;IACD5K,eAAe,EAAE;MACfgH,QAAQ,EAAE,EAAE;MACZhG,KAAK,EAAE,SAAS;MAChBqL,YAAY,EAAE,EAAE;MAChBzB,YAAY,EAAE;IAChB,CAAC;IACD3K,kBAAkB,EAAE;MAClBoM,YAAY,EAAE;IAChB,CAAC;IACDnM,SAAS,EAAE;MACT8G,QAAQ,EAAE,EAAE;MACZhG,KAAK,EAAE,SAAS;MAChBqL,YAAY,EAAE,CAAC;MACfpF,UAAU,EAAE;IACd,CAAC;IACD9G,SAAS,EAAE;MACTuL,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,MAAM;MACnB/S,eAAe,EAAE,MAAM;MACvBoI,KAAK,EAAE,SAAS;MAChB4J,YAAY,EAAE,CAAC;MACfkB,OAAO,EAAE,EAAE;MACX9E,QAAQ,EAAE;IACZ,CAAC;IACDxG,gBAAgB,EAAE;MAChBgK,aAAa,EAAE,KAAK;MACpBpE,UAAU,EAAE,QAAQ;MACpBmF,gBAAgB,EAAE;IACpB,CAAC;IACDxK,WAAW,EAAE;MACXmL,UAAU,EAAE,CAAC;MACblF,QAAQ,EAAE,EAAE;MACZhG,KAAK,EAAE;IACT,CAAC;IACDC,WAAW,EAAE;MACXD,KAAK,EAAE,SAAS;MAChBsK,kBAAkB,EAAE;IACtB,CAAC;IAEDgB,eAAe,EAAE;MACfxT,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,EAAE;MACVH,eAAe,EAAEuR,YAAY,EAAEjC,cAAc,IAAI;IACnD,CAAC;IACDhH,UAAU,EAAE;MACVgF,IAAI,EAAE,CAAC;MACPC,cAAc,EAAE,UAAU;MAC1B2F,OAAO,EAAE,EAAE;MACXlT,eAAe,EAAE;IACnB,CAAC;IACDuI,WAAW,EAAE;MACX2K,OAAO,EAAE,EAAE;MACXlB,YAAY,EAAE,EAAE;MAChBxE,UAAU,EAAE;IACd,CAAC;IACDhF,eAAe,EAAE;MACfJ,KAAK,EAAE,OAAO;MACdgG,QAAQ,EAAE;MACV;IACF,CAAC;IACDtG,YAAY,EAAE;MACZ5H,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,EAAE;MACV2S,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,SAAS;MACtBf,YAAY,EAAE,CAAC;MACfxE,UAAU,EAAE,QAAQ;MACpBD,cAAc,EAAE,QAAQ;MACxB0E,WAAW,EAAE;IACf,CAAC;IACD/J,SAAS,EAAE;MACTE,KAAK,EAAE,MAAM;MACbgG,QAAQ,EAAE,EAAE;MACZC,UAAU,EAAE;IACd,CAAC;IACDE,sBAAsB,EAAE;MACtBN,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,EAAE;MACPM,KAAK,EAAE,EAAE;MACTL,MAAM,EAAE,EAAE;MACV+E,OAAO,EAAE;IACX,CAAC;IACDtE,0BAA0B,EAAE;MAC1BxG,KAAK,EAAE,OAAO;MACdgG,QAAQ,EAAE,EAAE;MACZD,MAAM,EAAE,EAAE;MACVE,UAAU,EAAE;IACd,CAAC;IACDpB,aAAa,EAAE;MACb7E,KAAK,EAAE,SAAS;MAChBsK,kBAAkB,EAAE;IACtB;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","useRef","useMemo","View","Text","TextInput","TouchableOpacity","SectionList","StyleSheet","SafeAreaView","KeyboardAvoidingView","Platform","StatusBar","Image","ActivityIndicator","Alert","Linking","Dimensions","Modal","io","errorCodes","pick","saveDocuments","types","ReactNativeBlobUtil","launchCamera","launchImageLibrary","ConnectXMobileSdk","apiGet","uploadFile","BASE_URL_LIVE_CHAT","apiPost","buildConnectorBody","fileMimeType","sniffImageExt","Svg","ClipPath","Defs","G","Path","Rect","hexToRgba","ImageViewer","mergeIncomingMessage","mergeHistory","messageSig","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ATTACH_ICONS","file","camera","gallery","download","VIEWER_TOP","OS","currentHeight","AttachIcon","name","color","width","height","viewBox","fill","children","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","SendIcon","size","backgroundColor","iconColor","rx","id","transform","clipPath","fillRule","clipRule","ChatScreen","onClose","token","orgId","channelId","externalValue","customHeader","customer","messages","setMessages","inputText","setInputText","loading","setLoading","sendError","setSendError","errorTimer","socketRef","hasConnectedRef","userId","setUserId","undecodableUrls","setUndecodableUrls","selectedFile","setSelectedFile","settings","setSettings","styles","setStyles","chatPhase","setChatPhase","isUploading","setIsUploading","isImageViewerVisible","setImageViewerVisible","viewerImages","setViewerImages","viewerIndex","setViewerIndex","findCustomer","_unknownId","body","console","log","res","error","alert","initializeUserId","checkAllowed","getUnknownId","initializeChat","resSettings","getDynamicStyles","history","current","socket","transports","on","emit","socketId","then","fresh","prev","catch","e","payload","message","reason","disconnect","messageSections","length","groupedMessages","reduce","acc","dateKey","Date","timestamp","toLocaleDateString","push","Object","keys","sort","reverse","map","date","title","day","month","year","data","PreChatForm","onSubmit","headerColor","formData","setFormData","consentChecked","setConsentChecked","handleInputChange","field","value","handleStartChat","style","safeArea","formContainer","formWelcomeText","formInputContainer","formLabel","formInput","placeholder","placeholderTextColor","onChangeText","text","consentContainer","onPress","checkboxBase","accessibilityRole","accessibilityState","checked","checkmark","consentText","consentLink","formFooter","startButton","startButtonText","showSendError","msg","clearTimeout","setTimeout","handleSendText","trim","connected","type","sender","now","timeout","organizeId","err","handleSelectFile","result","allFiles","allowMultiSelection","uri","code","readFileHead","head","fs","dirs","CacheDir","slice","replace","bytes","readFile","unlink","handleImagePicked","didCancel","asset","assets","errorCode","fileName","realExt","handleOpenCamera","mediaType","saveToPhotos","handleOpenGallery","selectionLimit","MessageWithLinks","textStyle","linkStyle","urlRegex","parts","split","part","index","match","openURL","isDisplayableImage","item","url","openImageViewer","tappedImageUrl","allImages","filter","tappedIndex","findIndex","img","handleDownloadImage","find","m","decodeURIComponent","pop","config","path","fetch","sourceUris","mimeType","OPERATION_CANCELED","handleCancelUpload","handleConfirmUpload","fileUrl","startsWith","messageBody","fullMessage","formatTimestamp","messageTime","getTime","differenceInSeconds","toLocaleTimeString","hour","minute","hour12","renderMessage","handleFilePress","messageRow","userRow","agentRow","styleLogoUrl","source","avatar","timestampText","messageAgentContainer","messageContainer","messageBubble","userBubble","agentBubble","customerChatText","agentChatText","linkTextStyle","imageMessage","resizeMode","onError","fileLink","flex","justifyContent","alignItems","visible","transparent","imageUrls","onCancel","enableSwipeDown","renderIndicator","currentIndex","allSize","position","top","zIndex","fontSize","fontWeight","renderHeader","pointerEvents","imageViewerHeader","imageViewerCloseButton","hitSlop","bottom","left","right","imageViewerCloseButtonText","undefined","header","headerProfile","headerAvatar","headerTitle","closeButtonText","container","behavior","styleHeadColor","inverted","sections","renderItem","renderSectionFooter","section","datePartition","datePartitionText","keyExtractor","messageList","inputContainer","errorBanner","errorBannerText","uploadPreviewContainer","fileInfoContainer","fileNameText","numberOfLines","buttonRow","uploadButton","actionButton","disabled","uploadButtonText","cancelButton","cancelButtonText","normalInputContainer","attachmentButton","accessibilityLabel","input","sendButton","styleTextColor","settingStyle","screenWidth","get","create","centered","flexDirection","paddingVertical","paddingHorizontal","paddingTop","borderRadius","marginRight","marginVertical","maxWidth","flexWrap","alignSelf","styleAgentColor","styleCustomerColor","styleCustomerTextColor","styleAgentTextColor","textDecorationLine","marginHorizontal","borderTopWidth","borderTopColor","borderWidth","borderColor","elevation","textAlign","padding","disabledButton","opacity","paddingRight","marginLeft","marginTop","margin","marginBottom","checkboxChecked"],"sourceRoot":"../../src","sources":["ChatScreen.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/api.js
CHANGED
|
@@ -12,6 +12,32 @@ export const buildConnectorBody = opts => ({
|
|
|
12
12
|
customers: opts.customer
|
|
13
13
|
})
|
|
14
14
|
});
|
|
15
|
+
|
|
16
|
+
// ponytail: picker บาง provider คืน type เป็น null/octet-stream สำหรับ dng, heic, jfif
|
|
17
|
+
// ถ้าปล่อยไป storage จะเก็บ content-type ผิด แล้ว view/download ต่อไม่ได้
|
|
18
|
+
const MIME_BY_EXT = {
|
|
19
|
+
dng: 'image/x-adobe-dng',
|
|
20
|
+
heic: 'image/heic',
|
|
21
|
+
heif: 'image/heif',
|
|
22
|
+
jfif: 'image/jpeg'
|
|
23
|
+
};
|
|
24
|
+
export const fileMimeType = file => {
|
|
25
|
+
const ext = file.name?.split('.').pop()?.toLowerCase() ?? '';
|
|
26
|
+
const known = file.type && file.type !== 'application/octet-stream' ? file.type : null;
|
|
27
|
+
return known || MIME_BY_EXT[ext] || file.type || 'application/octet-stream';
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// ponytail: image-picker บน iOS ดูแค่ byte แรก ไฟล์ที่ไม่ใช่ png/gif เลยถูกตั้งชื่อ .jpg หมด
|
|
31
|
+
// (dng/heic ก็กลายเป็น .jpg) ตรงนี้ดู magic bytes เองว่าจริงๆ เป็นอะไร
|
|
32
|
+
// TIFF header ถือว่าเป็น dng เพราะ RAW ใน Photos ส่วนใหญ่เป็น dng
|
|
33
|
+
export const sniffImageExt = bytes => {
|
|
34
|
+
const head = String.fromCharCode(...bytes.slice(0, 12));
|
|
35
|
+
if (head.startsWith('II*\0') || head.startsWith('MM\0*')) return 'dng';
|
|
36
|
+
if (/^.{4}ftyp(heic|heix|hevc|heim|heis|mif1|msf1)/s.test(head)) {
|
|
37
|
+
return 'heic';
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
};
|
|
15
41
|
export const apiGet = async (path, token) => {
|
|
16
42
|
console.log(`GET ${BASE_URL_LIVE_CHAT}/connectx/api/${path}`);
|
|
17
43
|
const headers = {
|
|
@@ -55,7 +81,7 @@ export const uploadFile = async (file, organizeId, channelId) => {
|
|
|
55
81
|
formData.append('file', {
|
|
56
82
|
uri: file.uri,
|
|
57
83
|
name: file.name,
|
|
58
|
-
type: file
|
|
84
|
+
type: fileMimeType(file)
|
|
59
85
|
});
|
|
60
86
|
formData.append('path', `Organizes/${organizeId}/connector/liveChat/channel/${channelId}`);
|
|
61
87
|
formData.append('isPublic', 'true');
|
package/lib/module/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BASE_URL_LIVE_CHAT","BASE_URL_TRACKING","buildConnectorBody","opts","externalValue","customer","Object","keys","length","customers","apiGet","path","token","console","log","headers","response","fetch","method","ok","errorData","json","catch","Error","apiPost","body","userId","JSON","stringify","uploadFile","
|
|
1
|
+
{"version":3,"names":["BASE_URL_LIVE_CHAT","BASE_URL_TRACKING","buildConnectorBody","opts","externalValue","customer","Object","keys","length","customers","MIME_BY_EXT","dng","heic","heif","jfif","fileMimeType","file","ext","name","split","pop","toLowerCase","known","type","sniffImageExt","bytes","head","String","fromCharCode","slice","startsWith","test","apiGet","path","token","console","log","headers","response","fetch","method","ok","errorData","json","catch","Error","apiPost","body","userId","JSON","stringify","uploadFile","organizeId","channelId","APIEndpoint","formData","FormData","append","uri","result","url"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatScreen.d.ts","sourceRoot":"","sources":["../../../src/ChatScreen.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatScreen.d.ts","sourceRoot":"","sources":["../../../src/ChatScreen.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AA6HpE,eAAO,MAAM,UAAU,GAAI,8EAQxB;IACD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC,4CAgzBA,CAAC"}
|
|
@@ -6,6 +6,11 @@ export declare const buildConnectorBody: (opts: {
|
|
|
6
6
|
customers?: Record<string, any> | undefined;
|
|
7
7
|
externalValue?: string | undefined;
|
|
8
8
|
};
|
|
9
|
+
export declare const fileMimeType: (file: {
|
|
10
|
+
name?: string | null;
|
|
11
|
+
type?: string | null;
|
|
12
|
+
}) => string;
|
|
13
|
+
export declare const sniffImageExt: (bytes: number[]) => string | null;
|
|
9
14
|
export declare const apiGet: (path: string, token: string) => Promise<any>;
|
|
10
15
|
export declare const apiPost: (path: string, body: any, token: string) => Promise<any>;
|
|
11
16
|
export declare const uploadFile: (file: any, organizeId: string, channelId: string) => Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;AAIrE,eAAO,MAAM,kBAAkB,GAAI,MAAM;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;;;CAIC,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;AAIrE,eAAO,MAAM,kBAAkB,GAAI,MAAM;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;;;CAIC,CAAC;AAWH,eAAO,MAAM,YAAY,GAAI,MAAM;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,WAKA,CAAC;AAKF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,KAAG,MAAM,GAAG,IAOxD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,MAAM,MAAM,EAAE,OAAO,MAAM,iBAkBvD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,OAAO,MAAM,iBAmBnE,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,MAAM,GAAG,EACT,YAAY,MAAM,EAClB,WAAW,MAAM,iBA+BlB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "connect-x-reactnative-livechat-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0-legacy",
|
|
4
4
|
"description": "for Live Chat",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -168,9 +168,11 @@
|
|
|
168
168
|
"@react-native-vector-icons/fontawesome6": "^12.0.0",
|
|
169
169
|
"connect-x-react-native-sdk": "^1.0.7",
|
|
170
170
|
"hex-to-rgba": "^2.0.1",
|
|
171
|
+
"react-native-blob-util": "^0.24.12",
|
|
171
172
|
"react-native-device-info": "^14.0.4",
|
|
173
|
+
"react-native-image-picker": "^8.2.1",
|
|
172
174
|
"react-native-image-zoom-viewer": "^3.0.1",
|
|
173
175
|
"react-native-svg": "^15.12.0",
|
|
174
176
|
"socket.io-client": "^4.8.1"
|
|
175
177
|
}
|
|
176
|
-
}
|
|
178
|
+
}
|
package/src/ChatScreen.tsx
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
SafeAreaView,
|
|
11
11
|
KeyboardAvoidingView,
|
|
12
12
|
Platform,
|
|
13
|
+
StatusBar,
|
|
13
14
|
Image,
|
|
14
15
|
ActivityIndicator,
|
|
15
16
|
Alert,
|
|
@@ -19,10 +20,17 @@ import {
|
|
|
19
20
|
} from 'react-native';
|
|
20
21
|
import io from 'socket.io-client';
|
|
21
22
|
import {
|
|
23
|
+
errorCodes,
|
|
22
24
|
pick,
|
|
25
|
+
saveDocuments,
|
|
23
26
|
types,
|
|
24
|
-
type DocumentPickerResponse,
|
|
25
27
|
} from '@react-native-documents/picker';
|
|
28
|
+
import ReactNativeBlobUtil from 'react-native-blob-util';
|
|
29
|
+
import {
|
|
30
|
+
launchCamera,
|
|
31
|
+
launchImageLibrary,
|
|
32
|
+
type ImagePickerResponse,
|
|
33
|
+
} from 'react-native-image-picker';
|
|
26
34
|
import { ConnectXMobileSdk } from 'connect-x-react-native-sdk';
|
|
27
35
|
import {
|
|
28
36
|
apiGet,
|
|
@@ -30,6 +38,8 @@ import {
|
|
|
30
38
|
BASE_URL_LIVE_CHAT,
|
|
31
39
|
apiPost,
|
|
32
40
|
buildConnectorBody,
|
|
41
|
+
fileMimeType,
|
|
42
|
+
sniffImageExt,
|
|
33
43
|
} from './api';
|
|
34
44
|
import Svg, { ClipPath, Defs, G, Path, Rect } from 'react-native-svg';
|
|
35
45
|
import hexToRgba from 'hex-to-rgba';
|
|
@@ -52,6 +62,41 @@ interface Message {
|
|
|
52
62
|
[key: string]: any; // for other properties
|
|
53
63
|
}
|
|
54
64
|
|
|
65
|
+
type PickedFile = { uri: string; name: string; type?: string | null };
|
|
66
|
+
|
|
67
|
+
// ponytail: ไอคอน SVG ในไฟล์ แทน vector-icons เพราะไม่ต้องให้แอปที่ใช้ SDK link font เพิ่ม
|
|
68
|
+
const ATTACH_ICONS = {
|
|
69
|
+
file: 'M12 5v14M5 12h14',
|
|
70
|
+
camera:
|
|
71
|
+
'M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2zM12 17a4 4 0 1 0 0-8 4 4 0 0 0 0 8z',
|
|
72
|
+
gallery:
|
|
73
|
+
'M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zM8.5 10a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM21 15l-5-5L5 21',
|
|
74
|
+
download: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3',
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// ระยะจากขอบบนของ preview ให้พ้น status bar / notch
|
|
78
|
+
// ponytail: ค่าคงที่ ไม่ใช้ safe-area lib; iOS 60 พอสำหรับ Dynamic Island
|
|
79
|
+
const VIEWER_TOP =
|
|
80
|
+
Platform.OS === 'ios' ? 60 : (StatusBar.currentHeight ?? 0) + 16;
|
|
81
|
+
|
|
82
|
+
const AttachIcon = ({
|
|
83
|
+
name,
|
|
84
|
+
color = '#525E62',
|
|
85
|
+
}: {
|
|
86
|
+
name: keyof typeof ATTACH_ICONS;
|
|
87
|
+
color?: string;
|
|
88
|
+
}) => (
|
|
89
|
+
<Svg width={22} height={22} viewBox="0 0 24 24" fill="none">
|
|
90
|
+
<Path
|
|
91
|
+
d={ATTACH_ICONS[name]}
|
|
92
|
+
stroke={color}
|
|
93
|
+
strokeWidth={2}
|
|
94
|
+
strokeLinecap="round"
|
|
95
|
+
strokeLinejoin="round"
|
|
96
|
+
/>
|
|
97
|
+
</Svg>
|
|
98
|
+
);
|
|
99
|
+
|
|
55
100
|
const SendIcon = ({
|
|
56
101
|
size,
|
|
57
102
|
backgroundColor,
|
|
@@ -105,8 +150,11 @@ export const ChatScreen = ({
|
|
|
105
150
|
const socketRef = useRef<ReturnType<typeof io> | null>(null);
|
|
106
151
|
const hasConnectedRef = useRef(false);
|
|
107
152
|
const [userId, setUserId] = useState<string | null>(null);
|
|
108
|
-
|
|
109
|
-
|
|
153
|
+
// ponytail: url ที่ <Image> decode ไม่ผ่าน (dng/heic บน Android ฯลฯ) → ตกไปเป็นลิงก์ดาวน์โหลด
|
|
154
|
+
const [undecodableUrls, setUndecodableUrls] = useState<
|
|
155
|
+
Record<string, boolean>
|
|
156
|
+
>({});
|
|
157
|
+
const [selectedFile, setSelectedFile] = useState<PickedFile | null>(null);
|
|
110
158
|
const [settings, setSettings] = useState<any>(null);
|
|
111
159
|
const [styles, setStyles] = useState<any>({});
|
|
112
160
|
const [chatPhase, setChatPhase] = useState<'pre-chat' | 'chatting'>(
|
|
@@ -419,10 +467,19 @@ export const ChatScreen = ({
|
|
|
419
467
|
const handleSelectFile = async () => {
|
|
420
468
|
try {
|
|
421
469
|
const result = await pick({
|
|
422
|
-
|
|
470
|
+
// ponytail: allFiles เพราะ iOS ไม่รู้จักนามสกุลแปลก ๆ (.jfif) เลย grey out
|
|
471
|
+
// ถ้าปล่อยเป็น public.image; ชนิดไฟล์คัดตอนส่งด้วย mime อยู่แล้ว
|
|
472
|
+
type: [types.allFiles],
|
|
423
473
|
allowMultiSelection: false,
|
|
424
474
|
});
|
|
425
|
-
|
|
475
|
+
const file = result[0];
|
|
476
|
+
if (file) {
|
|
477
|
+
setSelectedFile({
|
|
478
|
+
uri: file.uri,
|
|
479
|
+
name: file.name || 'file',
|
|
480
|
+
type: file.type,
|
|
481
|
+
});
|
|
482
|
+
}
|
|
426
483
|
} catch (err) {
|
|
427
484
|
if ((err as any)?.code !== 'DOCUMENT_PICKER_CANCELED') {
|
|
428
485
|
// Alert.alert(
|
|
@@ -433,6 +490,53 @@ export const ChatScreen = ({
|
|
|
433
490
|
}
|
|
434
491
|
};
|
|
435
492
|
|
|
493
|
+
// อ่านแค่ 12 byte แรกของไฟล์ ไว้เช็คชนิดจริง
|
|
494
|
+
const readFileHead = async (uri: string): Promise<number[]> => {
|
|
495
|
+
try {
|
|
496
|
+
const head = `${ReactNativeBlobUtil.fs.dirs.CacheDir}/head_${Date.now()}`;
|
|
497
|
+
await ReactNativeBlobUtil.fs.slice(
|
|
498
|
+
uri.replace('file://', ''),
|
|
499
|
+
head,
|
|
500
|
+
0,
|
|
501
|
+
12
|
|
502
|
+
);
|
|
503
|
+
const bytes = await ReactNativeBlobUtil.fs.readFile(head, 'ascii');
|
|
504
|
+
ReactNativeBlobUtil.fs.unlink(head).catch(() => {});
|
|
505
|
+
return bytes;
|
|
506
|
+
} catch {
|
|
507
|
+
return [];
|
|
508
|
+
}
|
|
509
|
+
};
|
|
510
|
+
|
|
511
|
+
const handleImagePicked = async (res: ImagePickerResponse) => {
|
|
512
|
+
if (res.didCancel) return;
|
|
513
|
+
const asset = res.assets?.[0];
|
|
514
|
+
if (res.errorCode || !asset?.uri) {
|
|
515
|
+
if (res.errorCode === 'permission') {
|
|
516
|
+
Alert.alert('Permission required', 'Please allow access in Settings.');
|
|
517
|
+
}
|
|
518
|
+
return;
|
|
519
|
+
}
|
|
520
|
+
let name = asset.fileName || `image_${Date.now()}.jpg`;
|
|
521
|
+
let type = asset.type || 'image/jpeg';
|
|
522
|
+
const realExt = sniffImageExt(await readFileHead(asset.uri));
|
|
523
|
+
if (realExt) {
|
|
524
|
+
name = `${name.replace(/\.[^.]+$/, '')}.${realExt}`;
|
|
525
|
+
type = fileMimeType({ name });
|
|
526
|
+
}
|
|
527
|
+
setSelectedFile({ uri: asset.uri, name, type });
|
|
528
|
+
};
|
|
529
|
+
|
|
530
|
+
const handleOpenCamera = () =>
|
|
531
|
+
launchCamera({ mediaType: 'photo', saveToPhotos: false }).then(
|
|
532
|
+
handleImagePicked
|
|
533
|
+
);
|
|
534
|
+
|
|
535
|
+
const handleOpenGallery = () =>
|
|
536
|
+
launchImageLibrary({ mediaType: 'photo', selectionLimit: 1 }).then(
|
|
537
|
+
handleImagePicked
|
|
538
|
+
);
|
|
539
|
+
|
|
436
540
|
const MessageWithLinks = ({
|
|
437
541
|
text,
|
|
438
542
|
textStyle,
|
|
@@ -465,9 +569,12 @@ export const ChatScreen = ({
|
|
|
465
569
|
);
|
|
466
570
|
};
|
|
467
571
|
|
|
572
|
+
const isDisplayableImage = (item: Message) =>
|
|
573
|
+
item.type === 'image' && !!item.url && !undecodableUrls[item.url];
|
|
574
|
+
|
|
468
575
|
const openImageViewer = (tappedImageUrl: string) => {
|
|
469
576
|
const allImages = messages
|
|
470
|
-
.filter(
|
|
577
|
+
.filter(isDisplayableImage)
|
|
471
578
|
.map((msg) => ({ url: msg.url! }));
|
|
472
579
|
|
|
473
580
|
const tappedIndex = allImages.findIndex(
|
|
@@ -481,6 +588,30 @@ export const ChatScreen = ({
|
|
|
481
588
|
}
|
|
482
589
|
};
|
|
483
590
|
|
|
591
|
+
// โหลดรูปลง cache ก่อน แล้วเปิดหน้า "Save to Files" (iOS) / "บันทึกเป็น" (Android)
|
|
592
|
+
// เพราะ saveDocuments รับแค่ไฟล์ในเครื่อง
|
|
593
|
+
const handleDownloadImage = async (url: string) => {
|
|
594
|
+
try {
|
|
595
|
+
// ใช้ชื่อไฟล์ตอนส่ง (เช่น .dng / .jfif) ก่อน ชื่อใน url อาจถูก storage เปลี่ยนนามสกุล
|
|
596
|
+
const name =
|
|
597
|
+
messages.find((m) => m.url === url)?.fileName ||
|
|
598
|
+
decodeURIComponent(url.split('?')[0]!.split('/').pop() || 'image');
|
|
599
|
+
const res = await ReactNativeBlobUtil.config({
|
|
600
|
+
path: `${ReactNativeBlobUtil.fs.dirs.CacheDir}/${name}`,
|
|
601
|
+
}).fetch('GET', url);
|
|
602
|
+
await saveDocuments({
|
|
603
|
+
sourceUris: [`file://${res.path()}`],
|
|
604
|
+
fileName: name,
|
|
605
|
+
mimeType: fileMimeType({ name }),
|
|
606
|
+
});
|
|
607
|
+
} catch (err) {
|
|
608
|
+
if ((err as any)?.code !== errorCodes.OPERATION_CANCELED) {
|
|
609
|
+
Alert.alert('Download Error', 'Failed to save the image.');
|
|
610
|
+
console.error('Download failed', err);
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
};
|
|
614
|
+
|
|
484
615
|
const handleCancelUpload = () => {
|
|
485
616
|
if (isUploading) return;
|
|
486
617
|
setSelectedFile(null);
|
|
@@ -491,7 +622,9 @@ export const ChatScreen = ({
|
|
|
491
622
|
setIsUploading(true);
|
|
492
623
|
try {
|
|
493
624
|
const fileUrl = await uploadFile(selectedFile, orgId, channelId);
|
|
494
|
-
const type = selectedFile.
|
|
625
|
+
const type = fileMimeType(selectedFile).startsWith('image/')
|
|
626
|
+
? 'image'
|
|
627
|
+
: 'file';
|
|
495
628
|
const messageBody: Omit<Message, 'sender' | 'timestamp'> = {
|
|
496
629
|
type,
|
|
497
630
|
fileName: selectedFile.name || 'file',
|
|
@@ -586,16 +719,23 @@ export const ChatScreen = ({
|
|
|
586
719
|
linkStyle={styles.linkTextStyle}
|
|
587
720
|
/>
|
|
588
721
|
)}
|
|
589
|
-
{item
|
|
722
|
+
{isDisplayableImage(item) && (
|
|
590
723
|
<TouchableOpacity onPress={() => openImageViewer(item.url!)}>
|
|
591
724
|
<Image
|
|
592
725
|
source={{ uri: item.url }}
|
|
593
726
|
style={styles.imageMessage}
|
|
594
727
|
resizeMode="cover"
|
|
728
|
+
onError={() =>
|
|
729
|
+
setUndecodableUrls((prev) => ({
|
|
730
|
+
...prev,
|
|
731
|
+
[item.url!]: true,
|
|
732
|
+
}))
|
|
733
|
+
}
|
|
595
734
|
/>
|
|
596
735
|
</TouchableOpacity>
|
|
597
736
|
)}
|
|
598
|
-
{item.type === 'file'
|
|
737
|
+
{(item.type === 'file' ||
|
|
738
|
+
(item.type === 'image' && !isDisplayableImage(item))) && (
|
|
599
739
|
<TouchableOpacity onPress={handleFilePress}>
|
|
600
740
|
<Text
|
|
601
741
|
style={[
|
|
@@ -640,7 +780,9 @@ export const ChatScreen = ({
|
|
|
640
780
|
<View
|
|
641
781
|
style={{
|
|
642
782
|
position: 'absolute',
|
|
643
|
-
top:
|
|
783
|
+
top: VIEWER_TOP,
|
|
784
|
+
height: 42,
|
|
785
|
+
justifyContent: 'center',
|
|
644
786
|
width: '100%',
|
|
645
787
|
alignItems: 'center',
|
|
646
788
|
zIndex: 1,
|
|
@@ -653,24 +795,29 @@ export const ChatScreen = ({
|
|
|
653
795
|
</Text>
|
|
654
796
|
</View>
|
|
655
797
|
)}
|
|
656
|
-
renderHeader={() => (
|
|
657
|
-
<
|
|
658
|
-
|
|
659
|
-
style={[
|
|
660
|
-
styles.imageViewerCloseButton,
|
|
661
|
-
{
|
|
662
|
-
top: 30,
|
|
663
|
-
zIndex: 9999, // Force it to be the top-most layer
|
|
664
|
-
position: 'absolute', // Ensure it floats correctly
|
|
665
|
-
right: 20,
|
|
666
|
-
},
|
|
667
|
-
]}
|
|
668
|
-
// FIX 2: Add hitSlop so users don't have to hit the "X" pixel-perfectly
|
|
669
|
-
hitSlop={{ top: 30, bottom: 30, left: 30, right: 30 }}
|
|
670
|
-
onPress={() => setImageViewerVisible(false)}
|
|
798
|
+
renderHeader={(currentIndex) => (
|
|
799
|
+
<View
|
|
800
|
+
pointerEvents="box-none"
|
|
801
|
+
style={[styles.imageViewerHeader, { top: VIEWER_TOP }]}
|
|
671
802
|
>
|
|
672
|
-
<
|
|
673
|
-
|
|
803
|
+
<TouchableOpacity
|
|
804
|
+
style={styles.imageViewerCloseButton}
|
|
805
|
+
hitSlop={{ top: 20, bottom: 20, left: 20, right: 20 }}
|
|
806
|
+
onPress={() => {
|
|
807
|
+
const url = viewerImages[currentIndex ?? 0]?.url;
|
|
808
|
+
if (url) handleDownloadImage(url);
|
|
809
|
+
}}
|
|
810
|
+
>
|
|
811
|
+
<AttachIcon name="download" color="white" />
|
|
812
|
+
</TouchableOpacity>
|
|
813
|
+
<TouchableOpacity
|
|
814
|
+
style={styles.imageViewerCloseButton}
|
|
815
|
+
hitSlop={{ top: 20, bottom: 20, left: 20, right: 20 }}
|
|
816
|
+
onPress={() => setImageViewerVisible(false)}
|
|
817
|
+
>
|
|
818
|
+
<Text style={styles.imageViewerCloseButtonText}>✕</Text>
|
|
819
|
+
</TouchableOpacity>
|
|
820
|
+
</View>
|
|
674
821
|
)}
|
|
675
822
|
/>
|
|
676
823
|
</Modal>
|
|
@@ -765,18 +912,23 @@ export const ChatScreen = ({
|
|
|
765
912
|
<TouchableOpacity
|
|
766
913
|
onPress={handleSelectFile}
|
|
767
914
|
style={styles.attachmentButton}
|
|
915
|
+
accessibilityLabel="Attach file"
|
|
768
916
|
>
|
|
769
|
-
<
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
917
|
+
<AttachIcon name="file" />
|
|
918
|
+
</TouchableOpacity>
|
|
919
|
+
<TouchableOpacity
|
|
920
|
+
onPress={handleOpenCamera}
|
|
921
|
+
style={styles.attachmentButton}
|
|
922
|
+
accessibilityLabel="Take photo"
|
|
923
|
+
>
|
|
924
|
+
<AttachIcon name="camera" />
|
|
925
|
+
</TouchableOpacity>
|
|
926
|
+
<TouchableOpacity
|
|
927
|
+
onPress={handleOpenGallery}
|
|
928
|
+
style={styles.attachmentButton}
|
|
929
|
+
accessibilityLabel="Choose from gallery"
|
|
930
|
+
>
|
|
931
|
+
<AttachIcon name="gallery" />
|
|
780
932
|
</TouchableOpacity>
|
|
781
933
|
<TextInput
|
|
782
934
|
style={styles.input}
|
|
@@ -1018,26 +1170,6 @@ const getDynamicStyles = (settingStyle: any = {}) => {
|
|
|
1018
1170
|
fontWeight: 'bold',
|
|
1019
1171
|
fontSize: 16,
|
|
1020
1172
|
},
|
|
1021
|
-
plusIconContainer: {
|
|
1022
|
-
width: 10,
|
|
1023
|
-
height: 18,
|
|
1024
|
-
justifyContent: 'center',
|
|
1025
|
-
alignItems: 'center',
|
|
1026
|
-
},
|
|
1027
|
-
plusIconBar: {
|
|
1028
|
-
position: 'absolute',
|
|
1029
|
-
backgroundColor: '#525E62',
|
|
1030
|
-
},
|
|
1031
|
-
plusIconBarHorizontal: {
|
|
1032
|
-
width: 18,
|
|
1033
|
-
height: 2,
|
|
1034
|
-
borderRadius: 1,
|
|
1035
|
-
},
|
|
1036
|
-
plusIconBarVertical: {
|
|
1037
|
-
width: 2,
|
|
1038
|
-
height: 18,
|
|
1039
|
-
borderRadius: 1,
|
|
1040
|
-
},
|
|
1041
1173
|
imageMessage: {
|
|
1042
1174
|
width: 200,
|
|
1043
1175
|
height: 200,
|
|
@@ -1128,11 +1260,16 @@ const getDynamicStyles = (settingStyle: any = {}) => {
|
|
|
1128
1260
|
fontSize: 12,
|
|
1129
1261
|
fontWeight: 'bold',
|
|
1130
1262
|
},
|
|
1131
|
-
|
|
1263
|
+
imageViewerHeader: {
|
|
1132
1264
|
position: 'absolute',
|
|
1133
|
-
|
|
1134
|
-
right:
|
|
1135
|
-
zIndex:
|
|
1265
|
+
left: 10,
|
|
1266
|
+
right: 10,
|
|
1267
|
+
zIndex: 9999,
|
|
1268
|
+
flexDirection: 'row',
|
|
1269
|
+
justifyContent: 'space-between',
|
|
1270
|
+
alignItems: 'center',
|
|
1271
|
+
},
|
|
1272
|
+
imageViewerCloseButton: {
|
|
1136
1273
|
padding: 10,
|
|
1137
1274
|
},
|
|
1138
1275
|
imageViewerCloseButtonText: {
|
package/src/api.ts
CHANGED
|
@@ -11,6 +11,37 @@ export const buildConnectorBody = (opts: {
|
|
|
11
11
|
Object.keys(opts.customer).length > 0 && { customers: opts.customer }),
|
|
12
12
|
});
|
|
13
13
|
|
|
14
|
+
// ponytail: picker บาง provider คืน type เป็น null/octet-stream สำหรับ dng, heic, jfif
|
|
15
|
+
// ถ้าปล่อยไป storage จะเก็บ content-type ผิด แล้ว view/download ต่อไม่ได้
|
|
16
|
+
const MIME_BY_EXT: Record<string, string> = {
|
|
17
|
+
dng: 'image/x-adobe-dng',
|
|
18
|
+
heic: 'image/heic',
|
|
19
|
+
heif: 'image/heif',
|
|
20
|
+
jfif: 'image/jpeg',
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const fileMimeType = (file: {
|
|
24
|
+
name?: string | null;
|
|
25
|
+
type?: string | null;
|
|
26
|
+
}) => {
|
|
27
|
+
const ext = file.name?.split('.').pop()?.toLowerCase() ?? '';
|
|
28
|
+
const known =
|
|
29
|
+
file.type && file.type !== 'application/octet-stream' ? file.type : null;
|
|
30
|
+
return known || MIME_BY_EXT[ext] || file.type || 'application/octet-stream';
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
// ponytail: image-picker บน iOS ดูแค่ byte แรก ไฟล์ที่ไม่ใช่ png/gif เลยถูกตั้งชื่อ .jpg หมด
|
|
34
|
+
// (dng/heic ก็กลายเป็น .jpg) ตรงนี้ดู magic bytes เองว่าจริงๆ เป็นอะไร
|
|
35
|
+
// TIFF header ถือว่าเป็น dng เพราะ RAW ใน Photos ส่วนใหญ่เป็น dng
|
|
36
|
+
export const sniffImageExt = (bytes: number[]): string | null => {
|
|
37
|
+
const head = String.fromCharCode(...bytes.slice(0, 12));
|
|
38
|
+
if (head.startsWith('II*\0') || head.startsWith('MM\0*')) return 'dng';
|
|
39
|
+
if (/^.{4}ftyp(heic|heix|hevc|heim|heis|mif1|msf1)/s.test(head)) {
|
|
40
|
+
return 'heic';
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
};
|
|
44
|
+
|
|
14
45
|
export const apiGet = async (path: string, token: string) => {
|
|
15
46
|
console.log(`GET ${BASE_URL_LIVE_CHAT}/connectx/api/${path}`);
|
|
16
47
|
const headers = {
|
|
@@ -63,7 +94,7 @@ export const uploadFile = async (
|
|
|
63
94
|
formData.append('file', {
|
|
64
95
|
uri: file.uri,
|
|
65
96
|
name: file.name,
|
|
66
|
-
type: file
|
|
97
|
+
type: fileMimeType(file),
|
|
67
98
|
});
|
|
68
99
|
formData.append(
|
|
69
100
|
'path',
|