@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.
- package/CHANGELOG.md +17 -0
- package/ChatPlatformSdk.podspec +20 -0
- package/README.md +315 -0
- package/android/build.gradle +54 -0
- package/android/src/main/AndroidManifest.xml +18 -0
- package/android/src/main/java/com/chatplatform/sdk/ChatSdkDownloaderModule.kt +240 -0
- package/android/src/main/java/com/chatplatform/sdk/ChatSdkFilePickerModule.kt +165 -0
- package/android/src/main/java/com/chatplatform/sdk/ChatSdkPackage.kt +15 -0
- package/android/src/main/res/xml/chat_sdk_file_paths.xml +7 -0
- package/ios/ChatSdkDownloader.m +10 -0
- package/ios/ChatSdkDownloader.swift +141 -0
- package/ios/ChatSdkFilePicker.m +9 -0
- package/ios/ChatSdkFilePicker.swift +161 -0
- package/lib/commonjs/ChatSDK.js +193 -0
- package/lib/commonjs/ChatSDK.js.map +1 -0
- package/lib/commonjs/api.js +195 -0
- package/lib/commonjs/api.js.map +1 -0
- package/lib/commonjs/attachmentUtils.js +39 -0
- package/lib/commonjs/attachmentUtils.js.map +1 -0
- package/lib/commonjs/components/AttachmentGallery.js +367 -0
- package/lib/commonjs/components/AttachmentGallery.js.map +1 -0
- package/lib/commonjs/components/ChatScreen.js +286 -0
- package/lib/commonjs/components/ChatScreen.js.map +1 -0
- package/lib/commonjs/components/MessageBubble.js +227 -0
- package/lib/commonjs/components/MessageBubble.js.map +1 -0
- package/lib/commonjs/components/MessageInput.js +273 -0
- package/lib/commonjs/components/MessageInput.js.map +1 -0
- package/lib/commonjs/components/SurveyOverlay.js +499 -0
- package/lib/commonjs/components/SurveyOverlay.js.map +1 -0
- package/lib/commonjs/downloaders/defaultAttachmentDownloader.js +28 -0
- package/lib/commonjs/downloaders/defaultAttachmentDownloader.js.map +1 -0
- package/lib/commonjs/filePicker.js +25 -0
- package/lib/commonjs/filePicker.js.map +1 -0
- package/lib/commonjs/index.js +27 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/native/NativeChatSdkDownloader.js +28 -0
- package/lib/commonjs/native/NativeChatSdkDownloader.js.map +1 -0
- package/lib/commonjs/native/NativeChatSdkFilePicker.js +17 -0
- package/lib/commonjs/native/NativeChatSdkFilePicker.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/realtime.js +242 -0
- package/lib/commonjs/realtime.js.map +1 -0
- package/lib/commonjs/safeArea.js +18 -0
- package/lib/commonjs/safeArea.js.map +1 -0
- package/lib/commonjs/session.js +159 -0
- package/lib/commonjs/session.js.map +1 -0
- package/lib/commonjs/surveyCache.js +30 -0
- package/lib/commonjs/surveyCache.js.map +1 -0
- package/lib/commonjs/theme.js +29 -0
- package/lib/commonjs/theme.js.map +1 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/useChat.js +145 -0
- package/lib/commonjs/useChat.js.map +1 -0
- package/lib/module/ChatSDK.js +189 -0
- package/lib/module/ChatSDK.js.map +1 -0
- package/lib/module/api.js +190 -0
- package/lib/module/api.js.map +1 -0
- package/lib/module/attachmentUtils.js +33 -0
- package/lib/module/attachmentUtils.js.map +1 -0
- package/lib/module/components/AttachmentGallery.js +362 -0
- package/lib/module/components/AttachmentGallery.js.map +1 -0
- package/lib/module/components/ChatScreen.js +281 -0
- package/lib/module/components/ChatScreen.js.map +1 -0
- package/lib/module/components/MessageBubble.js +222 -0
- package/lib/module/components/MessageBubble.js.map +1 -0
- package/lib/module/components/MessageInput.js +268 -0
- package/lib/module/components/MessageInput.js.map +1 -0
- package/lib/module/components/SurveyOverlay.js +494 -0
- package/lib/module/components/SurveyOverlay.js.map +1 -0
- package/lib/module/downloaders/defaultAttachmentDownloader.js +22 -0
- package/lib/module/downloaders/defaultAttachmentDownloader.js.map +1 -0
- package/lib/module/filePicker.js +20 -0
- package/lib/module/filePicker.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/native/NativeChatSdkDownloader.js +23 -0
- package/lib/module/native/NativeChatSdkDownloader.js.map +1 -0
- package/lib/module/native/NativeChatSdkFilePicker.js +13 -0
- package/lib/module/native/NativeChatSdkFilePicker.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/realtime.js +236 -0
- package/lib/module/realtime.js.map +1 -0
- package/lib/module/safeArea.js +14 -0
- package/lib/module/safeArea.js.map +1 -0
- package/lib/module/session.js +154 -0
- package/lib/module/session.js.map +1 -0
- package/lib/module/surveyCache.js +23 -0
- package/lib/module/surveyCache.js.map +1 -0
- package/lib/module/theme.js +25 -0
- package/lib/module/theme.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/useChat.js +141 -0
- package/lib/module/useChat.js.map +1 -0
- package/lib/typescript/commonjs/ChatSDK.d.ts +49 -0
- package/lib/typescript/commonjs/ChatSDK.d.ts.map +1 -0
- package/lib/typescript/commonjs/api.d.ts +31 -0
- package/lib/typescript/commonjs/api.d.ts.map +1 -0
- package/lib/typescript/commonjs/attachmentUtils.d.ts +12 -0
- package/lib/typescript/commonjs/attachmentUtils.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/AttachmentGallery.d.ts +16 -0
- package/lib/typescript/commonjs/components/AttachmentGallery.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/ChatScreen.d.ts +16 -0
- package/lib/typescript/commonjs/components/ChatScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/MessageBubble.d.ts +12 -0
- package/lib/typescript/commonjs/components/MessageBubble.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/MessageInput.d.ts +14 -0
- package/lib/typescript/commonjs/components/MessageInput.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/SurveyOverlay.d.ts +13 -0
- package/lib/typescript/commonjs/components/SurveyOverlay.d.ts.map +1 -0
- package/lib/typescript/commonjs/downloaders/defaultAttachmentDownloader.d.ts +3 -0
- package/lib/typescript/commonjs/downloaders/defaultAttachmentDownloader.d.ts.map +1 -0
- package/lib/typescript/commonjs/filePicker.d.ts +4 -0
- package/lib/typescript/commonjs/filePicker.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +7 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/native/NativeChatSdkDownloader.d.ts +24 -0
- package/lib/typescript/commonjs/native/NativeChatSdkDownloader.d.ts.map +1 -0
- package/lib/typescript/commonjs/native/NativeChatSdkFilePicker.d.ts +17 -0
- package/lib/typescript/commonjs/native/NativeChatSdkFilePicker.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/realtime.d.ts +42 -0
- package/lib/typescript/commonjs/realtime.d.ts.map +1 -0
- package/lib/typescript/commonjs/safeArea.d.ts +4 -0
- package/lib/typescript/commonjs/safeArea.d.ts.map +1 -0
- package/lib/typescript/commonjs/session.d.ts +45 -0
- package/lib/typescript/commonjs/session.d.ts.map +1 -0
- package/lib/typescript/commonjs/surveyCache.d.ts +5 -0
- package/lib/typescript/commonjs/surveyCache.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme.d.ts +21 -0
- package/lib/typescript/commonjs/theme.d.ts.map +1 -0
- package/lib/typescript/commonjs/types.d.ts +156 -0
- package/lib/typescript/commonjs/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/useChat.d.ts +16 -0
- package/lib/typescript/commonjs/useChat.d.ts.map +1 -0
- package/lib/typescript/module/ChatSDK.d.ts +49 -0
- package/lib/typescript/module/ChatSDK.d.ts.map +1 -0
- package/lib/typescript/module/api.d.ts +31 -0
- package/lib/typescript/module/api.d.ts.map +1 -0
- package/lib/typescript/module/attachmentUtils.d.ts +12 -0
- package/lib/typescript/module/attachmentUtils.d.ts.map +1 -0
- package/lib/typescript/module/components/AttachmentGallery.d.ts +16 -0
- package/lib/typescript/module/components/AttachmentGallery.d.ts.map +1 -0
- package/lib/typescript/module/components/ChatScreen.d.ts +16 -0
- package/lib/typescript/module/components/ChatScreen.d.ts.map +1 -0
- package/lib/typescript/module/components/MessageBubble.d.ts +12 -0
- package/lib/typescript/module/components/MessageBubble.d.ts.map +1 -0
- package/lib/typescript/module/components/MessageInput.d.ts +14 -0
- package/lib/typescript/module/components/MessageInput.d.ts.map +1 -0
- package/lib/typescript/module/components/SurveyOverlay.d.ts +13 -0
- package/lib/typescript/module/components/SurveyOverlay.d.ts.map +1 -0
- package/lib/typescript/module/downloaders/defaultAttachmentDownloader.d.ts +3 -0
- package/lib/typescript/module/downloaders/defaultAttachmentDownloader.d.ts.map +1 -0
- package/lib/typescript/module/filePicker.d.ts +4 -0
- package/lib/typescript/module/filePicker.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +7 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/native/NativeChatSdkDownloader.d.ts +24 -0
- package/lib/typescript/module/native/NativeChatSdkDownloader.d.ts.map +1 -0
- package/lib/typescript/module/native/NativeChatSdkFilePicker.d.ts +17 -0
- package/lib/typescript/module/native/NativeChatSdkFilePicker.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/realtime.d.ts +42 -0
- package/lib/typescript/module/realtime.d.ts.map +1 -0
- package/lib/typescript/module/safeArea.d.ts +4 -0
- package/lib/typescript/module/safeArea.d.ts.map +1 -0
- package/lib/typescript/module/session.d.ts +45 -0
- package/lib/typescript/module/session.d.ts.map +1 -0
- package/lib/typescript/module/surveyCache.d.ts +5 -0
- package/lib/typescript/module/surveyCache.d.ts.map +1 -0
- package/lib/typescript/module/theme.d.ts +21 -0
- package/lib/typescript/module/theme.d.ts.map +1 -0
- package/lib/typescript/module/types.d.ts +156 -0
- package/lib/typescript/module/types.d.ts.map +1 -0
- package/lib/typescript/module/useChat.d.ts +16 -0
- package/lib/typescript/module/useChat.d.ts.map +1 -0
- package/package.json +75 -0
- package/react-native.config.js +10 -0
- package/src/ChatSDK.ts +237 -0
- package/src/api.ts +228 -0
- package/src/attachmentUtils.ts +49 -0
- package/src/components/AttachmentGallery.tsx +363 -0
- package/src/components/ChatScreen.tsx +267 -0
- package/src/components/MessageBubble.tsx +208 -0
- package/src/components/MessageInput.tsx +280 -0
- package/src/components/SurveyOverlay.tsx +469 -0
- package/src/downloaders/defaultAttachmentDownloader.ts +27 -0
- package/src/filePicker.ts +22 -0
- package/src/index.ts +30 -0
- package/src/native/NativeChatSdkDownloader.ts +49 -0
- package/src/native/NativeChatSdkFilePicker.ts +30 -0
- package/src/realtime.ts +278 -0
- package/src/safeArea.ts +8 -0
- package/src/session.ts +196 -0
- package/src/surveyCache.ts +24 -0
- package/src/theme.ts +49 -0
- package/src/types.ts +199 -0
- package/src/useChat.ts +190 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { Dimensions, Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
|
|
5
|
+
import { attachmentDisplayName } from "../attachmentUtils.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
export function MessageBubble({
|
|
8
|
+
message,
|
|
9
|
+
theme,
|
|
10
|
+
onButtonPress,
|
|
11
|
+
onAttachmentPress
|
|
12
|
+
}) {
|
|
13
|
+
if (message.type === 'system' || message.type === 'event') {
|
|
14
|
+
return /*#__PURE__*/_jsx(View, {
|
|
15
|
+
style: styles.systemRow,
|
|
16
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
17
|
+
style: [styles.systemText, {
|
|
18
|
+
color: theme.systemText
|
|
19
|
+
}],
|
|
20
|
+
children: message.text
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
const isOutbound = message.type === 'contact';
|
|
25
|
+
return /*#__PURE__*/_jsx(View, {
|
|
26
|
+
style: [styles.row, isOutbound ? styles.rowRight : styles.rowLeft],
|
|
27
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
28
|
+
style: [styles.bubble, isOutbound ? [styles.outbound, {
|
|
29
|
+
backgroundColor: theme.outboundBg
|
|
30
|
+
}] : [styles.inbound, {
|
|
31
|
+
backgroundColor: theme.inboundBg
|
|
32
|
+
}]],
|
|
33
|
+
children: [!isOutbound && message.sender?.name ? /*#__PURE__*/_jsx(Text, {
|
|
34
|
+
style: [styles.senderName, {
|
|
35
|
+
color: theme.primaryColor
|
|
36
|
+
}],
|
|
37
|
+
children: message.sender.name
|
|
38
|
+
}) : null, message.attachments && message.attachments.length > 0 && /*#__PURE__*/_jsx(View, {
|
|
39
|
+
style: styles.attachments,
|
|
40
|
+
children: message.attachments.map((att, i) => /*#__PURE__*/_jsx(AttachmentView, {
|
|
41
|
+
attachment: att,
|
|
42
|
+
isOutbound: isOutbound,
|
|
43
|
+
theme: theme,
|
|
44
|
+
onPress: att.id > 0 ? () => onAttachmentPress?.(att) : undefined
|
|
45
|
+
}, att.id !== 0 ? att.id : `temp-${i}`))
|
|
46
|
+
}), message.text ? /*#__PURE__*/_jsx(Text, {
|
|
47
|
+
style: [styles.text, {
|
|
48
|
+
color: isOutbound ? theme.outboundText : theme.inboundText
|
|
49
|
+
}],
|
|
50
|
+
children: message.text
|
|
51
|
+
}) : null, message.buttons && message.buttons.length > 0 && /*#__PURE__*/_jsx(View, {
|
|
52
|
+
style: styles.buttons,
|
|
53
|
+
children: message.buttons.map((btn, i) => /*#__PURE__*/_jsx(BotButton, {
|
|
54
|
+
button: btn,
|
|
55
|
+
theme: theme,
|
|
56
|
+
onPress: () => onButtonPress?.(btn.callback_data, message.serverMessageId ?? 0)
|
|
57
|
+
}, i))
|
|
58
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
59
|
+
style: [styles.time, {
|
|
60
|
+
color: isOutbound ? 'rgba(255,255,255,0.65)' : theme.systemText
|
|
61
|
+
}],
|
|
62
|
+
children: message.time
|
|
63
|
+
})]
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function formatBytes(bytes) {
|
|
68
|
+
if (bytes <= 0) return '';
|
|
69
|
+
if (bytes < 1024) return `${bytes} Б`;
|
|
70
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(0)} КБ`;
|
|
71
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} МБ`;
|
|
72
|
+
}
|
|
73
|
+
function AttachmentView({
|
|
74
|
+
attachment,
|
|
75
|
+
isOutbound,
|
|
76
|
+
theme,
|
|
77
|
+
onPress
|
|
78
|
+
}) {
|
|
79
|
+
if (attachment.type === 'image') {
|
|
80
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
81
|
+
onPress: onPress,
|
|
82
|
+
disabled: !onPress,
|
|
83
|
+
activeOpacity: 0.85,
|
|
84
|
+
children: /*#__PURE__*/_jsx(Image, {
|
|
85
|
+
source: {
|
|
86
|
+
uri: attachment.url
|
|
87
|
+
},
|
|
88
|
+
style: styles.image,
|
|
89
|
+
resizeMode: "cover"
|
|
90
|
+
})
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
const nameColor = isOutbound ? theme.outboundText : theme.inboundText;
|
|
94
|
+
const sizeColor = isOutbound ? 'rgba(255,255,255,0.65)' : theme.systemText;
|
|
95
|
+
const displayName = attachmentDisplayName(attachment);
|
|
96
|
+
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
97
|
+
style: styles.fileBlock,
|
|
98
|
+
onPress: onPress,
|
|
99
|
+
disabled: !onPress,
|
|
100
|
+
activeOpacity: 0.75,
|
|
101
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
102
|
+
style: [styles.fileName, {
|
|
103
|
+
color: nameColor
|
|
104
|
+
}],
|
|
105
|
+
numberOfLines: 2,
|
|
106
|
+
children: displayName
|
|
107
|
+
}), attachment.size > 0 && /*#__PURE__*/_jsx(Text, {
|
|
108
|
+
style: [styles.fileSize, {
|
|
109
|
+
color: sizeColor
|
|
110
|
+
}],
|
|
111
|
+
children: formatBytes(attachment.size)
|
|
112
|
+
})]
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
function BotButton({
|
|
116
|
+
button,
|
|
117
|
+
theme,
|
|
118
|
+
onPress
|
|
119
|
+
}) {
|
|
120
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
121
|
+
style: [styles.botButton, {
|
|
122
|
+
borderColor: theme.primaryColor
|
|
123
|
+
}],
|
|
124
|
+
onPress: onPress,
|
|
125
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
126
|
+
style: [styles.botButtonText, {
|
|
127
|
+
color: theme.primaryColor
|
|
128
|
+
}],
|
|
129
|
+
children: button.text
|
|
130
|
+
})
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
const BUBBLE_MAX_WIDTH = Dimensions.get('window').width * 0.78;
|
|
134
|
+
const styles = StyleSheet.create({
|
|
135
|
+
row: {
|
|
136
|
+
flexDirection: 'row',
|
|
137
|
+
marginVertical: 3,
|
|
138
|
+
paddingHorizontal: 16
|
|
139
|
+
},
|
|
140
|
+
rowRight: {
|
|
141
|
+
justifyContent: 'flex-end'
|
|
142
|
+
},
|
|
143
|
+
rowLeft: {
|
|
144
|
+
justifyContent: 'flex-start'
|
|
145
|
+
},
|
|
146
|
+
bubble: {
|
|
147
|
+
maxWidth: BUBBLE_MAX_WIDTH,
|
|
148
|
+
minWidth: 56,
|
|
149
|
+
borderRadius: 16,
|
|
150
|
+
paddingHorizontal: 14,
|
|
151
|
+
paddingTop: 10,
|
|
152
|
+
paddingBottom: 8
|
|
153
|
+
},
|
|
154
|
+
outbound: {
|
|
155
|
+
borderBottomRightRadius: 4
|
|
156
|
+
},
|
|
157
|
+
inbound: {
|
|
158
|
+
borderBottomLeftRadius: 4
|
|
159
|
+
},
|
|
160
|
+
senderName: {
|
|
161
|
+
fontSize: 12,
|
|
162
|
+
fontWeight: '600',
|
|
163
|
+
marginBottom: 4
|
|
164
|
+
},
|
|
165
|
+
text: {
|
|
166
|
+
fontSize: 15,
|
|
167
|
+
lineHeight: 21
|
|
168
|
+
},
|
|
169
|
+
time: {
|
|
170
|
+
fontSize: 11,
|
|
171
|
+
lineHeight: 14,
|
|
172
|
+
alignSelf: 'flex-end',
|
|
173
|
+
marginTop: 6
|
|
174
|
+
},
|
|
175
|
+
systemRow: {
|
|
176
|
+
alignItems: 'center',
|
|
177
|
+
marginVertical: 8,
|
|
178
|
+
paddingHorizontal: 16
|
|
179
|
+
},
|
|
180
|
+
systemText: {
|
|
181
|
+
fontSize: 12,
|
|
182
|
+
textAlign: 'center'
|
|
183
|
+
},
|
|
184
|
+
attachments: {
|
|
185
|
+
gap: 6,
|
|
186
|
+
marginBottom: 4
|
|
187
|
+
},
|
|
188
|
+
image: {
|
|
189
|
+
width: 200,
|
|
190
|
+
height: 150,
|
|
191
|
+
borderRadius: 8
|
|
192
|
+
},
|
|
193
|
+
fileBlock: {
|
|
194
|
+
gap: 2,
|
|
195
|
+
minWidth: 120
|
|
196
|
+
},
|
|
197
|
+
fileName: {
|
|
198
|
+
fontSize: 14,
|
|
199
|
+
fontWeight: '500',
|
|
200
|
+
lineHeight: 19
|
|
201
|
+
},
|
|
202
|
+
fileSize: {
|
|
203
|
+
fontSize: 11,
|
|
204
|
+
lineHeight: 15
|
|
205
|
+
},
|
|
206
|
+
buttons: {
|
|
207
|
+
gap: 6,
|
|
208
|
+
marginTop: 8
|
|
209
|
+
},
|
|
210
|
+
botButton: {
|
|
211
|
+
borderWidth: 1.5,
|
|
212
|
+
borderRadius: 8,
|
|
213
|
+
paddingVertical: 8,
|
|
214
|
+
paddingHorizontal: 12,
|
|
215
|
+
alignItems: 'center'
|
|
216
|
+
},
|
|
217
|
+
botButtonText: {
|
|
218
|
+
fontSize: 14,
|
|
219
|
+
fontWeight: '500'
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
//# sourceMappingURL=MessageBubble.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Dimensions","Image","StyleSheet","Text","TouchableOpacity","View","attachmentDisplayName","jsx","_jsx","jsxs","_jsxs","MessageBubble","message","theme","onButtonPress","onAttachmentPress","type","style","styles","systemRow","children","systemText","color","text","isOutbound","row","rowRight","rowLeft","bubble","outbound","backgroundColor","outboundBg","inbound","inboundBg","sender","name","senderName","primaryColor","attachments","length","map","att","i","AttachmentView","attachment","onPress","id","undefined","outboundText","inboundText","buttons","btn","BotButton","button","callback_data","serverMessageId","time","formatBytes","bytes","toFixed","disabled","activeOpacity","source","uri","url","image","resizeMode","nameColor","sizeColor","displayName","fileBlock","fileName","numberOfLines","size","fileSize","botButton","borderColor","botButtonText","BUBBLE_MAX_WIDTH","get","width","create","flexDirection","marginVertical","paddingHorizontal","justifyContent","maxWidth","minWidth","borderRadius","paddingTop","paddingBottom","borderBottomRightRadius","borderBottomLeftRadius","fontSize","fontWeight","marginBottom","lineHeight","alignSelf","marginTop","alignItems","textAlign","gap","height","borderWidth","paddingVertical"],"sourceRoot":"..\\..\\..\\src","sources":["components/MessageBubble.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useRef, useState } from 'react';
|
|
4
|
+
import { ActivityIndicator, Image, Platform, SafeAreaView, ScrollView, StyleSheet, Text, TextInput, TouchableOpacity, View } from 'react-native';
|
|
5
|
+
import { INPUT_BOTTOM_PADDING } from "../safeArea.js";
|
|
6
|
+
import { pickFiles as defaultPickFiles } from "../filePicker.js";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
function docIcon(mime) {
|
|
9
|
+
if (mime === 'application/pdf') return '📄';
|
|
10
|
+
if (mime.includes('word') || mime.includes('document')) return '📝';
|
|
11
|
+
if (mime.includes('sheet') || mime.includes('excel')) return '📊';
|
|
12
|
+
if (mime.startsWith('audio/')) return '🎵';
|
|
13
|
+
if (mime.startsWith('video/')) return '🎬';
|
|
14
|
+
return '📎';
|
|
15
|
+
}
|
|
16
|
+
export function MessageInput({
|
|
17
|
+
theme,
|
|
18
|
+
isSending,
|
|
19
|
+
onSend,
|
|
20
|
+
onPickFiles,
|
|
21
|
+
strings
|
|
22
|
+
}) {
|
|
23
|
+
const [text, setText] = useState('');
|
|
24
|
+
const [files, setFiles] = useState([]);
|
|
25
|
+
const [picking, setPicking] = useState(false);
|
|
26
|
+
const inputRef = useRef(null);
|
|
27
|
+
const canSend = (text.trim().length > 0 || files.length > 0) && !isSending;
|
|
28
|
+
const placeholder = strings?.inputPlaceholder ?? 'Сообщение…';
|
|
29
|
+
const picker = onPickFiles ?? defaultPickFiles;
|
|
30
|
+
const handlePickFiles = async () => {
|
|
31
|
+
if (picking) return;
|
|
32
|
+
setPicking(true);
|
|
33
|
+
try {
|
|
34
|
+
const picked = await picker();
|
|
35
|
+
if (picked && picked.length > 0) {
|
|
36
|
+
setFiles(prev => [...prev, ...picked]);
|
|
37
|
+
}
|
|
38
|
+
} finally {
|
|
39
|
+
setPicking(false);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const removeFile = index => {
|
|
43
|
+
setFiles(prev => prev.filter((_, i) => i !== index));
|
|
44
|
+
};
|
|
45
|
+
const handleSend = () => {
|
|
46
|
+
if (!canSend) return;
|
|
47
|
+
const trimmed = text.trim();
|
|
48
|
+
onSend(trimmed, files);
|
|
49
|
+
setText('');
|
|
50
|
+
setFiles([]);
|
|
51
|
+
};
|
|
52
|
+
const inputBar = /*#__PURE__*/_jsxs(View, {
|
|
53
|
+
style: [styles.container, {
|
|
54
|
+
backgroundColor: theme.background,
|
|
55
|
+
borderTopColor: theme.inputBorder,
|
|
56
|
+
paddingBottom: INPUT_BOTTOM_PADDING
|
|
57
|
+
}],
|
|
58
|
+
children: [files.length > 0 && /*#__PURE__*/_jsx(ScrollView, {
|
|
59
|
+
horizontal: true,
|
|
60
|
+
showsHorizontalScrollIndicator: false,
|
|
61
|
+
style: styles.filesStrip,
|
|
62
|
+
contentContainerStyle: styles.filesStripContent,
|
|
63
|
+
children: files.map((file, i) => /*#__PURE__*/_jsxs(View, {
|
|
64
|
+
style: styles.filePreview,
|
|
65
|
+
children: [file.type.startsWith('image/') ? /*#__PURE__*/_jsx(Image, {
|
|
66
|
+
source: {
|
|
67
|
+
uri: file.uri
|
|
68
|
+
},
|
|
69
|
+
style: styles.previewImage
|
|
70
|
+
}) : /*#__PURE__*/_jsxs(View, {
|
|
71
|
+
style: [styles.previewDoc, {
|
|
72
|
+
backgroundColor: theme.inputBg,
|
|
73
|
+
borderColor: theme.inputBorder
|
|
74
|
+
}],
|
|
75
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
76
|
+
style: styles.previewDocIcon,
|
|
77
|
+
children: docIcon(file.type)
|
|
78
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
79
|
+
style: [styles.previewDocName, {
|
|
80
|
+
color: theme.inputText
|
|
81
|
+
}],
|
|
82
|
+
numberOfLines: 2,
|
|
83
|
+
children: file.name
|
|
84
|
+
})]
|
|
85
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
86
|
+
style: styles.removeBtn,
|
|
87
|
+
onPress: () => removeFile(i),
|
|
88
|
+
hitSlop: 6,
|
|
89
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
90
|
+
style: styles.removeBtnText,
|
|
91
|
+
children: "\u2715"
|
|
92
|
+
})
|
|
93
|
+
})]
|
|
94
|
+
}, i))
|
|
95
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
96
|
+
style: styles.inputRow,
|
|
97
|
+
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
98
|
+
style: [styles.attachBtn, {
|
|
99
|
+
backgroundColor: theme.inputBg,
|
|
100
|
+
borderColor: theme.inputBorder
|
|
101
|
+
}],
|
|
102
|
+
onPress: handlePickFiles,
|
|
103
|
+
disabled: picking || isSending,
|
|
104
|
+
activeOpacity: 0.7,
|
|
105
|
+
children: picking ? /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
106
|
+
color: theme.systemText,
|
|
107
|
+
size: "small"
|
|
108
|
+
}) : /*#__PURE__*/_jsx(Text, {
|
|
109
|
+
style: [styles.attachIcon, {
|
|
110
|
+
color: theme.primaryColor
|
|
111
|
+
}],
|
|
112
|
+
children: "\u2295"
|
|
113
|
+
})
|
|
114
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
115
|
+
style: [styles.inputWrap, {
|
|
116
|
+
backgroundColor: theme.inputBg,
|
|
117
|
+
borderColor: theme.inputBorder
|
|
118
|
+
}],
|
|
119
|
+
children: /*#__PURE__*/_jsx(TextInput, {
|
|
120
|
+
ref: inputRef,
|
|
121
|
+
style: [styles.input, {
|
|
122
|
+
color: theme.inputText
|
|
123
|
+
}],
|
|
124
|
+
placeholder: placeholder,
|
|
125
|
+
placeholderTextColor: theme.systemText,
|
|
126
|
+
multiline: true,
|
|
127
|
+
maxLength: 4000,
|
|
128
|
+
value: text,
|
|
129
|
+
onChangeText: setText,
|
|
130
|
+
onSubmitEditing: handleSend,
|
|
131
|
+
returnKeyType: "send",
|
|
132
|
+
blurOnSubmit: false
|
|
133
|
+
})
|
|
134
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
135
|
+
style: [styles.sendBtn, {
|
|
136
|
+
backgroundColor: canSend ? theme.sendButtonBg : theme.inputBorder
|
|
137
|
+
}],
|
|
138
|
+
onPress: handleSend,
|
|
139
|
+
disabled: !canSend,
|
|
140
|
+
activeOpacity: 0.7,
|
|
141
|
+
children: isSending ? /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
142
|
+
color: "#fff",
|
|
143
|
+
size: "small"
|
|
144
|
+
}) : /*#__PURE__*/_jsx(Text, {
|
|
145
|
+
style: styles.sendIcon,
|
|
146
|
+
children: "\u2191"
|
|
147
|
+
})
|
|
148
|
+
})]
|
|
149
|
+
})]
|
|
150
|
+
});
|
|
151
|
+
if (Platform.OS === 'ios') {
|
|
152
|
+
return /*#__PURE__*/_jsx(SafeAreaView, {
|
|
153
|
+
style: {
|
|
154
|
+
backgroundColor: theme.background
|
|
155
|
+
},
|
|
156
|
+
children: inputBar
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
return inputBar;
|
|
160
|
+
}
|
|
161
|
+
const styles = StyleSheet.create({
|
|
162
|
+
container: {
|
|
163
|
+
borderTopWidth: StyleSheet.hairlineWidth
|
|
164
|
+
},
|
|
165
|
+
filesStrip: {
|
|
166
|
+
maxHeight: 110,
|
|
167
|
+
borderBottomWidth: StyleSheet.hairlineWidth,
|
|
168
|
+
borderBottomColor: 'rgba(0,0,0,0.07)'
|
|
169
|
+
},
|
|
170
|
+
filesStripContent: {
|
|
171
|
+
paddingHorizontal: 12,
|
|
172
|
+
paddingVertical: 10,
|
|
173
|
+
gap: 10
|
|
174
|
+
},
|
|
175
|
+
filePreview: {
|
|
176
|
+
position: 'relative'
|
|
177
|
+
},
|
|
178
|
+
previewImage: {
|
|
179
|
+
width: 80,
|
|
180
|
+
height: 80,
|
|
181
|
+
borderRadius: 8
|
|
182
|
+
},
|
|
183
|
+
previewDoc: {
|
|
184
|
+
width: 80,
|
|
185
|
+
height: 80,
|
|
186
|
+
borderRadius: 8,
|
|
187
|
+
borderWidth: 1,
|
|
188
|
+
alignItems: 'center',
|
|
189
|
+
justifyContent: 'center',
|
|
190
|
+
padding: 6,
|
|
191
|
+
gap: 4
|
|
192
|
+
},
|
|
193
|
+
previewDocIcon: {
|
|
194
|
+
fontSize: 24
|
|
195
|
+
},
|
|
196
|
+
previewDocName: {
|
|
197
|
+
fontSize: 9,
|
|
198
|
+
textAlign: 'center',
|
|
199
|
+
lineHeight: 12
|
|
200
|
+
},
|
|
201
|
+
removeBtn: {
|
|
202
|
+
position: 'absolute',
|
|
203
|
+
top: -6,
|
|
204
|
+
right: -6,
|
|
205
|
+
width: 20,
|
|
206
|
+
height: 20,
|
|
207
|
+
borderRadius: 10,
|
|
208
|
+
backgroundColor: '#333',
|
|
209
|
+
alignItems: 'center',
|
|
210
|
+
justifyContent: 'center'
|
|
211
|
+
},
|
|
212
|
+
removeBtnText: {
|
|
213
|
+
color: '#fff',
|
|
214
|
+
fontSize: 9,
|
|
215
|
+
lineHeight: 10,
|
|
216
|
+
fontWeight: 'bold'
|
|
217
|
+
},
|
|
218
|
+
inputRow: {
|
|
219
|
+
flexDirection: 'row',
|
|
220
|
+
alignItems: 'flex-end',
|
|
221
|
+
paddingHorizontal: 12,
|
|
222
|
+
paddingTop: 10,
|
|
223
|
+
paddingBottom: 0,
|
|
224
|
+
gap: 8
|
|
225
|
+
},
|
|
226
|
+
attachBtn: {
|
|
227
|
+
width: 40,
|
|
228
|
+
height: 40,
|
|
229
|
+
borderRadius: 20,
|
|
230
|
+
borderWidth: 1,
|
|
231
|
+
alignItems: 'center',
|
|
232
|
+
justifyContent: 'center',
|
|
233
|
+
flexShrink: 0
|
|
234
|
+
},
|
|
235
|
+
attachIcon: {
|
|
236
|
+
fontSize: 22,
|
|
237
|
+
lineHeight: 24
|
|
238
|
+
},
|
|
239
|
+
inputWrap: {
|
|
240
|
+
flex: 1,
|
|
241
|
+
borderWidth: 1,
|
|
242
|
+
borderRadius: 20,
|
|
243
|
+
paddingHorizontal: 14,
|
|
244
|
+
paddingVertical: 8,
|
|
245
|
+
minHeight: 40,
|
|
246
|
+
maxHeight: 120
|
|
247
|
+
},
|
|
248
|
+
input: {
|
|
249
|
+
fontSize: 15,
|
|
250
|
+
lineHeight: 20,
|
|
251
|
+
padding: 0
|
|
252
|
+
},
|
|
253
|
+
sendBtn: {
|
|
254
|
+
width: 40,
|
|
255
|
+
height: 40,
|
|
256
|
+
borderRadius: 20,
|
|
257
|
+
alignItems: 'center',
|
|
258
|
+
justifyContent: 'center',
|
|
259
|
+
flexShrink: 0
|
|
260
|
+
},
|
|
261
|
+
sendIcon: {
|
|
262
|
+
color: '#fff',
|
|
263
|
+
fontSize: 18,
|
|
264
|
+
fontWeight: 'bold',
|
|
265
|
+
lineHeight: 20
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
//# sourceMappingURL=MessageInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","ActivityIndicator","Image","Platform","SafeAreaView","ScrollView","StyleSheet","Text","TextInput","TouchableOpacity","View","INPUT_BOTTOM_PADDING","pickFiles","defaultPickFiles","jsx","_jsx","jsxs","_jsxs","docIcon","mime","includes","startsWith","MessageInput","theme","isSending","onSend","onPickFiles","strings","text","setText","files","setFiles","picking","setPicking","inputRef","canSend","trim","length","placeholder","inputPlaceholder","picker","handlePickFiles","picked","prev","removeFile","index","filter","_","i","handleSend","trimmed","inputBar","style","styles","container","backgroundColor","background","borderTopColor","inputBorder","paddingBottom","children","horizontal","showsHorizontalScrollIndicator","filesStrip","contentContainerStyle","filesStripContent","map","file","filePreview","type","source","uri","previewImage","previewDoc","inputBg","borderColor","previewDocIcon","previewDocName","color","inputText","numberOfLines","name","removeBtn","onPress","hitSlop","removeBtnText","inputRow","attachBtn","disabled","activeOpacity","systemText","size","attachIcon","primaryColor","inputWrap","ref","input","placeholderTextColor","multiline","maxLength","value","onChangeText","onSubmitEditing","returnKeyType","blurOnSubmit","sendBtn","sendButtonBg","sendIcon","OS","create","borderTopWidth","hairlineWidth","maxHeight","borderBottomWidth","borderBottomColor","paddingHorizontal","paddingVertical","gap","position","width","height","borderRadius","borderWidth","alignItems","justifyContent","padding","fontSize","textAlign","lineHeight","top","right","fontWeight","flexDirection","paddingTop","flexShrink","flex","minHeight"],"sourceRoot":"..\\..\\..\\src","sources":["components/MessageInput.tsx"],"mappings":"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","ignoreList":[]}
|