stream-chat-react-native-core 5.22.0-beta.5 → 5.22.0-beta.7
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/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +23 -16
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/commonjs/i18n/en.json +3 -0
- package/lib/commonjs/i18n/es.json +4 -1
- package/lib/commonjs/i18n/fr.json +25 -22
- package/lib/commonjs/i18n/he.json +4 -1
- package/lib/commonjs/i18n/hi.json +25 -22
- package/lib/commonjs/i18n/it.json +25 -22
- package/lib/commonjs/i18n/ja.json +4 -1
- package/lib/commonjs/i18n/ko.json +4 -1
- package/lib/commonjs/i18n/nl.json +25 -22
- package/lib/commonjs/i18n/ru.json +25 -22
- package/lib/commonjs/i18n/tr.json +25 -22
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +23 -16
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/module/i18n/en.json +3 -0
- package/lib/module/i18n/es.json +4 -1
- package/lib/module/i18n/fr.json +25 -22
- package/lib/module/i18n/he.json +4 -1
- package/lib/module/i18n/hi.json +25 -22
- package/lib/module/i18n/it.json +25 -22
- package/lib/module/i18n/ja.json +4 -1
- package/lib/module/i18n/ko.json +4 -1
- package/lib/module/i18n/nl.json +25 -22
- package/lib/module/i18n/ru.json +25 -22
- package/lib/module/i18n/tr.json +25 -22
- package/lib/module/native.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/MessageInput/UploadProgressIndicator.d.ts +5 -2
- package/lib/typescript/i18n/en.json +3 -0
- package/lib/typescript/i18n/es.json +4 -1
- package/lib/typescript/i18n/fr.json +25 -22
- package/lib/typescript/i18n/he.json +4 -1
- package/lib/typescript/i18n/hi.json +25 -22
- package/lib/typescript/i18n/it.json +25 -22
- package/lib/typescript/i18n/ja.json +4 -1
- package/lib/typescript/i18n/ko.json +4 -1
- package/lib/typescript/i18n/nl.json +25 -22
- package/lib/typescript/i18n/ru.json +25 -22
- package/lib/typescript/i18n/tr.json +25 -22
- package/lib/typescript/native.d.ts +2 -0
- package/lib/typescript/utils/Streami18n.d.ts +3 -5
- package/package.json +1 -1
- package/src/components/AttachmentPicker/components/AttachmentSelectionBar.tsx +13 -1
- package/src/components/Message/MessageSimple/utils/renderText.tsx +10 -1
- package/src/components/MessageInput/UploadProgressIndicator.tsx +2 -2
- package/src/i18n/en.json +3 -0
- package/src/i18n/es.json +4 -1
- package/src/i18n/fr.json +25 -22
- package/src/i18n/he.json +4 -1
- package/src/i18n/hi.json +25 -22
- package/src/i18n/it.json +25 -22
- package/src/i18n/ja.json +4 -1
- package/src/i18n/ko.json +4 -1
- package/src/i18n/nl.json +25 -22
- package/src/i18n/ru.json +25 -22
- package/src/i18n/tr.json +25 -22
- package/src/native.ts +5 -1
- package/src/version.json +1 -1
|
@@ -11,6 +11,7 @@ var _reactNative = require("react-native");
|
|
|
11
11
|
var _AttachmentPickerContext = require("../../../contexts/attachmentPickerContext/AttachmentPickerContext");
|
|
12
12
|
var _MessageInputContext = require("../../../contexts/messageInputContext/MessageInputContext");
|
|
13
13
|
var _ThemeContext = require("../../../contexts/themeContext/ThemeContext");
|
|
14
|
+
var _TranslationContext = require("../../../contexts/translationContext/TranslationContext");
|
|
14
15
|
var _native = require("../../../native");
|
|
15
16
|
var _this = this,
|
|
16
17
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/AttachmentPicker/components/AttachmentSelectionBar.tsx";
|
|
@@ -34,6 +35,8 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
34
35
|
selectedPicker = _useAttachmentPickerC.selectedPicker,
|
|
35
36
|
setSelectedImages = _useAttachmentPickerC.setSelectedImages,
|
|
36
37
|
setSelectedPicker = _useAttachmentPickerC.setSelectedPicker;
|
|
38
|
+
var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
|
|
39
|
+
t = _useTranslationContex.t;
|
|
37
40
|
var _useMessageInputConte = (0, _MessageInputContext.useMessageInputContext)(),
|
|
38
41
|
compressImageQuality = _useMessageInputConte.compressImageQuality,
|
|
39
42
|
hasFilePicker = _useMessageInputConte.hasFilePicker,
|
|
@@ -70,12 +73,24 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
70
73
|
});
|
|
71
74
|
case 4:
|
|
72
75
|
photo = _context.sent;
|
|
76
|
+
if (photo.askToOpenSettings) {
|
|
77
|
+
_reactNative.Alert.alert(t('Allow camera access in device settings'), t('Device camera is used to take photos or videos.'), [{
|
|
78
|
+
style: 'cancel',
|
|
79
|
+
text: t('Cancel')
|
|
80
|
+
}, {
|
|
81
|
+
onPress: function onPress() {
|
|
82
|
+
return _reactNative.Linking.openSettings();
|
|
83
|
+
},
|
|
84
|
+
style: 'default',
|
|
85
|
+
text: t('Open Settings')
|
|
86
|
+
}]);
|
|
87
|
+
}
|
|
73
88
|
if (!photo.cancelled) {
|
|
74
89
|
setSelectedImages(function (images) {
|
|
75
90
|
return [].concat((0, _toConsumableArray2["default"])(images), [photo]);
|
|
76
91
|
});
|
|
77
92
|
}
|
|
78
|
-
case
|
|
93
|
+
case 7:
|
|
79
94
|
case "end":
|
|
80
95
|
return _context.stop();
|
|
81
96
|
}
|
|
@@ -92,7 +107,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
92
107
|
__self: _this,
|
|
93
108
|
__source: {
|
|
94
109
|
fileName: _jsxFileName,
|
|
95
|
-
lineNumber:
|
|
110
|
+
lineNumber: 78,
|
|
96
111
|
columnNumber: 5
|
|
97
112
|
}
|
|
98
113
|
}, _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -107,7 +122,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
107
122
|
__self: _this,
|
|
108
123
|
__source: {
|
|
109
124
|
fileName: _jsxFileName,
|
|
110
|
-
lineNumber:
|
|
125
|
+
lineNumber: 79,
|
|
111
126
|
columnNumber: 7
|
|
112
127
|
}
|
|
113
128
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -115,7 +130,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
115
130
|
__self: _this,
|
|
116
131
|
__source: {
|
|
117
132
|
fileName: _jsxFileName,
|
|
118
|
-
lineNumber:
|
|
133
|
+
lineNumber: 84,
|
|
119
134
|
columnNumber: 9
|
|
120
135
|
}
|
|
121
136
|
}, _react["default"].createElement(ImageSelectorIcon, {
|
|
@@ -124,7 +139,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
124
139
|
__self: _this,
|
|
125
140
|
__source: {
|
|
126
141
|
fileName: _jsxFileName,
|
|
127
|
-
lineNumber:
|
|
142
|
+
lineNumber: 85,
|
|
128
143
|
columnNumber: 11
|
|
129
144
|
}
|
|
130
145
|
}))), hasFilePicker && _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -137,7 +152,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
137
152
|
__self: _this,
|
|
138
153
|
__source: {
|
|
139
154
|
fileName: _jsxFileName,
|
|
140
|
-
lineNumber:
|
|
155
|
+
lineNumber: 92,
|
|
141
156
|
columnNumber: 9
|
|
142
157
|
}
|
|
143
158
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -145,7 +160,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
145
160
|
__self: _this,
|
|
146
161
|
__source: {
|
|
147
162
|
fileName: _jsxFileName,
|
|
148
|
-
lineNumber:
|
|
163
|
+
lineNumber: 97,
|
|
149
164
|
columnNumber: 11
|
|
150
165
|
}
|
|
151
166
|
}, _react["default"].createElement(FileSelectorIcon, {
|
|
@@ -154,7 +169,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
154
169
|
__self: _this,
|
|
155
170
|
__source: {
|
|
156
171
|
fileName: _jsxFileName,
|
|
157
|
-
lineNumber:
|
|
172
|
+
lineNumber: 98,
|
|
158
173
|
columnNumber: 13
|
|
159
174
|
}
|
|
160
175
|
}))), _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -167,7 +182,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
167
182
|
__self: _this,
|
|
168
183
|
__source: {
|
|
169
184
|
fileName: _jsxFileName,
|
|
170
|
-
lineNumber:
|
|
185
|
+
lineNumber: 105,
|
|
171
186
|
columnNumber: 7
|
|
172
187
|
}
|
|
173
188
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -175,7 +190,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
175
190
|
__self: _this,
|
|
176
191
|
__source: {
|
|
177
192
|
fileName: _jsxFileName,
|
|
178
|
-
lineNumber:
|
|
193
|
+
lineNumber: 110,
|
|
179
194
|
columnNumber: 9
|
|
180
195
|
}
|
|
181
196
|
}, _react["default"].createElement(CameraSelectorIcon, {
|
|
@@ -184,7 +199,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
|
|
|
184
199
|
__self: _this,
|
|
185
200
|
__source: {
|
|
186
201
|
fileName: _jsxFileName,
|
|
187
|
-
lineNumber:
|
|
202
|
+
lineNumber: 111,
|
|
188
203
|
columnNumber: 11
|
|
189
204
|
}
|
|
190
205
|
}))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_AttachmentPickerContext","_MessageInputContext","_ThemeContext","_native","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","flexDirection","paddingHorizontal","icon","marginHorizontal","AttachmentSelectionBar","_useAttachmentPickerC","useAttachmentPickerContext","attachmentSelectionBarHeight","CameraSelectorIcon","closePicker","FileSelectorIcon","ImageSelectorIcon","selectedPicker","setSelectedImages","setSelectedPicker","_useMessageInputConte","useMessageInputContext","compressImageQuality","hasFilePicker","imageUploads","pickFile","_useTheme","useTheme","_useTheme$theme$attac","theme","attachmentSelectionBar","setPicker","selection","undefined","openFilePicker","takeAndUploadImage","_ref","_asyncToGenerator2","_regenerator","mark","_callee","photo","wrap","_callee$","_context","prev","next","takePhoto","sent","cancelled","images","concat","_toConsumableArray2","stop","apply","arguments","createElement","View","style","height","__self","__source","fileName","lineNumber","columnNumber","TouchableOpacity","hitSlop","bottom","top","onPress","testID","numberOfImageUploads","length","exports"],"sources":["AttachmentSelectionBar.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, TouchableOpacity, View } from 'react-native';\n\nimport { useAttachmentPickerContext } from '../../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useMessageInputContext } from '../../../contexts/messageInputContext/MessageInputContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\n\nimport { takePhoto } from '../../../native';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: 6,\n },\n icon: {\n marginHorizontal: 12,\n },\n});\n\nexport const AttachmentSelectionBar: React.FC = () => {\n const {\n attachmentSelectionBarHeight,\n CameraSelectorIcon,\n closePicker,\n FileSelectorIcon,\n ImageSelectorIcon,\n selectedPicker,\n setSelectedImages,\n setSelectedPicker,\n } = useAttachmentPickerContext();\n\n const { compressImageQuality, hasFilePicker, imageUploads, pickFile } = useMessageInputContext();\n\n const {\n theme: {\n attachmentSelectionBar: { container, icon },\n },\n } = useTheme();\n\n const setPicker = (selection: 'images') => {\n if (selectedPicker === selection) {\n setSelectedPicker(undefined);\n closePicker();\n } else {\n setSelectedPicker(selection);\n }\n };\n\n const openFilePicker = () => {\n setSelectedPicker(undefined);\n closePicker();\n pickFile();\n };\n\n const takeAndUploadImage = async () => {\n setSelectedPicker(undefined);\n closePicker();\n const photo = await takePhoto({ compressImageQuality });\n if (!photo.cancelled) {\n setSelectedImages((images) => [...images, photo]);\n }\n };\n\n return (\n <View style={[styles.container, container, { height: attachmentSelectionBarHeight ?? 52 }]}>\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={() => setPicker('images')}\n testID='upload-photo-touchable'\n >\n <View style={[styles.icon, icon]}>\n <ImageSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n {hasFilePicker && (\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={openFilePicker}\n testID='upload-file-touchable'\n >\n <View style={[styles.icon, icon]}>\n <FileSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n )}\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={takeAndUploadImage}\n testID='take-photo-touchable'\n >\n <View style={[styles.icon, icon]}>\n <CameraSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n </View>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_AttachmentPickerContext","_MessageInputContext","_ThemeContext","_TranslationContext","_native","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","flexDirection","paddingHorizontal","icon","marginHorizontal","AttachmentSelectionBar","_useAttachmentPickerC","useAttachmentPickerContext","attachmentSelectionBarHeight","CameraSelectorIcon","closePicker","FileSelectorIcon","ImageSelectorIcon","selectedPicker","setSelectedImages","setSelectedPicker","_useTranslationContex","useTranslationContext","t","_useMessageInputConte","useMessageInputContext","compressImageQuality","hasFilePicker","imageUploads","pickFile","_useTheme","useTheme","_useTheme$theme$attac","theme","attachmentSelectionBar","setPicker","selection","undefined","openFilePicker","takeAndUploadImage","_ref","_asyncToGenerator2","_regenerator","mark","_callee","photo","wrap","_callee$","_context","prev","next","takePhoto","sent","askToOpenSettings","Alert","alert","style","text","onPress","Linking","openSettings","cancelled","images","concat","_toConsumableArray2","stop","apply","arguments","createElement","View","height","__self","__source","fileName","lineNumber","columnNumber","TouchableOpacity","hitSlop","bottom","top","testID","numberOfImageUploads","length","exports"],"sources":["AttachmentSelectionBar.tsx"],"sourcesContent":["import React from 'react';\nimport { Alert, Linking, StyleSheet, TouchableOpacity, View } from 'react-native';\n\nimport { useAttachmentPickerContext } from '../../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useMessageInputContext } from '../../../contexts/messageInputContext/MessageInputContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';\n\nimport { takePhoto } from '../../../native';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: 6,\n },\n icon: {\n marginHorizontal: 12,\n },\n});\n\nexport const AttachmentSelectionBar: React.FC = () => {\n const {\n attachmentSelectionBarHeight,\n CameraSelectorIcon,\n closePicker,\n FileSelectorIcon,\n ImageSelectorIcon,\n selectedPicker,\n setSelectedImages,\n setSelectedPicker,\n } = useAttachmentPickerContext();\n const { t } = useTranslationContext();\n\n const { compressImageQuality, hasFilePicker, imageUploads, pickFile } = useMessageInputContext();\n\n const {\n theme: {\n attachmentSelectionBar: { container, icon },\n },\n } = useTheme();\n\n const setPicker = (selection: 'images') => {\n if (selectedPicker === selection) {\n setSelectedPicker(undefined);\n closePicker();\n } else {\n setSelectedPicker(selection);\n }\n };\n\n const openFilePicker = () => {\n setSelectedPicker(undefined);\n closePicker();\n pickFile();\n };\n\n const takeAndUploadImage = async () => {\n setSelectedPicker(undefined);\n closePicker();\n const photo = await takePhoto({ compressImageQuality });\n if (photo.askToOpenSettings) {\n Alert.alert(\n t('Allow camera access in device settings'),\n t('Device camera is used to take photos or videos.'),\n [\n { style: 'cancel', text: t('Cancel') },\n { onPress: () => Linking.openSettings(), style: 'default', text: t('Open Settings') },\n ],\n );\n }\n if (!photo.cancelled) {\n setSelectedImages((images) => [...images, photo]);\n }\n };\n\n return (\n <View style={[styles.container, container, { height: attachmentSelectionBarHeight ?? 52 }]}>\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={() => setPicker('images')}\n testID='upload-photo-touchable'\n >\n <View style={[styles.icon, icon]}>\n <ImageSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n {hasFilePicker && (\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={openFilePicker}\n testID='upload-file-touchable'\n >\n <View style={[styles.icon, icon]}>\n <FileSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n )}\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={takeAndUploadImage}\n testID='take-photo-touchable'\n >\n <View style={[styles.icon, icon]}>\n <CameraSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n </View>\n );\n};\n"],"mappings":"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"}
|
|
@@ -90,9 +90,16 @@ var renderText = function renderText(params) {
|
|
|
90
90
|
return canOpenUrl && _reactNative.Linking.openURL(url);
|
|
91
91
|
});
|
|
92
92
|
};
|
|
93
|
+
var previousLink;
|
|
93
94
|
var linkReact = function linkReact(node, output, _ref) {
|
|
94
95
|
var state = (0, _extends2["default"])({}, ((0, _objectDestructuringEmpty2["default"])(_ref), _ref));
|
|
95
|
-
var url
|
|
96
|
+
var url;
|
|
97
|
+
if (state != null && state.withinLink && previousLink) {
|
|
98
|
+
url = previousLink;
|
|
99
|
+
} else {
|
|
100
|
+
url = node.target;
|
|
101
|
+
previousLink = node.target;
|
|
102
|
+
}
|
|
96
103
|
var onPress = function onPress(event) {
|
|
97
104
|
if (!preventPress && onPressParam) {
|
|
98
105
|
onPressParam({
|
|
@@ -127,7 +134,7 @@ var renderText = function renderText(params) {
|
|
|
127
134
|
__self: _this,
|
|
128
135
|
__source: {
|
|
129
136
|
fileName: _jsxFileName,
|
|
130
|
-
lineNumber:
|
|
137
|
+
lineNumber: 179,
|
|
131
138
|
columnNumber: 7
|
|
132
139
|
}
|
|
133
140
|
}, output(node.content, (0, _extends2["default"])({}, state, {
|
|
@@ -145,7 +152,7 @@ var renderText = function renderText(params) {
|
|
|
145
152
|
__self: _this,
|
|
146
153
|
__source: {
|
|
147
154
|
fileName: _jsxFileName,
|
|
148
|
-
lineNumber:
|
|
155
|
+
lineNumber: 197,
|
|
149
156
|
columnNumber: 11
|
|
150
157
|
}
|
|
151
158
|
}, output(node.content, state));
|
|
@@ -159,7 +166,7 @@ var renderText = function renderText(params) {
|
|
|
159
166
|
__self: _this,
|
|
160
167
|
__source: {
|
|
161
168
|
fileName: _jsxFileName,
|
|
162
|
-
lineNumber:
|
|
169
|
+
lineNumber: 207,
|
|
163
170
|
columnNumber: 7
|
|
164
171
|
}
|
|
165
172
|
}, output(node.content, state));
|
|
@@ -211,7 +218,7 @@ var renderText = function renderText(params) {
|
|
|
211
218
|
__self: _this,
|
|
212
219
|
__source: {
|
|
213
220
|
fileName: _jsxFileName,
|
|
214
|
-
lineNumber:
|
|
221
|
+
lineNumber: 262,
|
|
215
222
|
columnNumber: 7
|
|
216
223
|
}
|
|
217
224
|
}, Array.isArray(node.content) ? node.content.reduce(function (acc, current) {
|
|
@@ -228,7 +235,7 @@ var renderText = function renderText(params) {
|
|
|
228
235
|
__self: _this,
|
|
229
236
|
__source: {
|
|
230
237
|
fileName: _jsxFileName,
|
|
231
|
-
lineNumber:
|
|
238
|
+
lineNumber: 271,
|
|
232
239
|
columnNumber: 5
|
|
233
240
|
}
|
|
234
241
|
});
|
|
@@ -272,7 +279,7 @@ var renderText = function renderText(params) {
|
|
|
272
279
|
__self: _this,
|
|
273
280
|
__source: {
|
|
274
281
|
fileName: _jsxFileName,
|
|
275
|
-
lineNumber:
|
|
282
|
+
lineNumber: 303,
|
|
276
283
|
columnNumber: 5
|
|
277
284
|
}
|
|
278
285
|
}, markdownText);
|
|
@@ -291,7 +298,7 @@ var ListOutput = function ListOutput(_ref4) {
|
|
|
291
298
|
__self: _this,
|
|
292
299
|
__source: {
|
|
293
300
|
fileName: _jsxFileName,
|
|
294
|
-
lineNumber:
|
|
301
|
+
lineNumber: 338,
|
|
295
302
|
columnNumber: 5
|
|
296
303
|
}
|
|
297
304
|
}, node.items.map(function (item, index) {
|
|
@@ -305,7 +312,7 @@ var ListOutput = function ListOutput(_ref4) {
|
|
|
305
312
|
__self: _this,
|
|
306
313
|
__source: {
|
|
307
314
|
fileName: _jsxFileName,
|
|
308
|
-
lineNumber:
|
|
315
|
+
lineNumber: 344,
|
|
309
316
|
columnNumber: 13
|
|
310
317
|
}
|
|
311
318
|
}, _react["default"].createElement(Bullet, {
|
|
@@ -314,7 +321,7 @@ var ListOutput = function ListOutput(_ref4) {
|
|
|
314
321
|
__self: _this,
|
|
315
322
|
__source: {
|
|
316
323
|
fileName: _jsxFileName,
|
|
317
|
-
lineNumber:
|
|
324
|
+
lineNumber: 345,
|
|
318
325
|
columnNumber: 15
|
|
319
326
|
}
|
|
320
327
|
}));
|
|
@@ -331,7 +338,7 @@ var ListOutput = function ListOutput(_ref4) {
|
|
|
331
338
|
__self: _this,
|
|
332
339
|
__source: {
|
|
333
340
|
fileName: _jsxFileName,
|
|
334
|
-
lineNumber:
|
|
341
|
+
lineNumber: 358,
|
|
335
342
|
columnNumber: 11
|
|
336
343
|
}
|
|
337
344
|
}, _react["default"].createElement(Bullet, {
|
|
@@ -340,7 +347,7 @@ var ListOutput = function ListOutput(_ref4) {
|
|
|
340
347
|
__self: _this,
|
|
341
348
|
__source: {
|
|
342
349
|
fileName: _jsxFileName,
|
|
343
|
-
lineNumber:
|
|
350
|
+
lineNumber: 359,
|
|
344
351
|
columnNumber: 13
|
|
345
352
|
}
|
|
346
353
|
}), _react["default"].createElement(ListItem, {
|
|
@@ -349,7 +356,7 @@ var ListOutput = function ListOutput(_ref4) {
|
|
|
349
356
|
__self: _this,
|
|
350
357
|
__source: {
|
|
351
358
|
fileName: _jsxFileName,
|
|
352
|
-
lineNumber:
|
|
359
|
+
lineNumber: 363,
|
|
353
360
|
columnNumber: 13
|
|
354
361
|
}
|
|
355
362
|
}, output(item, state)));
|
|
@@ -365,7 +372,7 @@ var Bullet = function Bullet(_ref5) {
|
|
|
365
372
|
__self: _this,
|
|
366
373
|
__source: {
|
|
367
374
|
fileName: _jsxFileName,
|
|
368
|
-
lineNumber:
|
|
375
|
+
lineNumber: 378,
|
|
369
376
|
columnNumber: 3
|
|
370
377
|
}
|
|
371
378
|
}, index ? index + ". " : "\u2022 ");
|
|
@@ -378,7 +385,7 @@ var ListRow = function ListRow(_ref6) {
|
|
|
378
385
|
__self: _this,
|
|
379
386
|
__source: {
|
|
380
387
|
fileName: _jsxFileName,
|
|
381
|
-
lineNumber:
|
|
388
|
+
lineNumber: 384,
|
|
382
389
|
columnNumber: 3
|
|
383
390
|
}
|
|
384
391
|
}, children);
|
|
@@ -391,7 +398,7 @@ var ListItem = function ListItem(_ref7) {
|
|
|
391
398
|
__self: _this,
|
|
392
399
|
__source: {
|
|
393
400
|
fileName: _jsxFileName,
|
|
394
|
-
lineNumber:
|
|
401
|
+
lineNumber: 388,
|
|
395
402
|
columnNumber: 3
|
|
396
403
|
}
|
|
397
404
|
}, children);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeMarkdownPackage","_simpleMarkdown","_generateMarkdownText","_this","_jsxFileName","defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","mentionsParseFunction","capture","parse","state","content","parseInline","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","markdownText","generateMarkdownText","styles","_extends2","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","text","black","url","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","linkReact","node","output","_ref","_objectDestructuringEmpty2","target","event","additionalInfo","defaultHandler","emitter","createElement","Text","key","style","suppressHighlighting","__self","__source","fileName","lineNumber","columnNumber","withinLink","paragraphTextReact","_ref2","undefined","numberOfLines","mentioned_users","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","length","replace","match","regEx","mentionsMatchFunction","source","exec","mentionsReact","_ref3","_node$content$","_node$content$$conten","substring","user","find","current","listReact","ListOutput","customRules","image","link","react","reflink","sublist","order","defaultRules","JSON","stringify","rules","exports","_ref4","isSublist","withinList","parentTypes","View","items","map","item","index","_item$","indexAfterStart","start","ListRow","testID","Bullet","ordered","listItemBullet","type","isSublistWithinText","includes","ListItem","_ref5","_ref6","children","_ref7"],"sources":["renderText.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { GestureResponderEvent, Linking, Text, TextProps, View, ViewProps } from 'react-native';\n\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\n\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n ReactOutput,\n SingleASTNode,\n State,\n} from 'simple-markdown';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { generateMarkdownText } from './generateMarkdownText';\n\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst mentionsParseFunction: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<StreamChatGenerics>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n params: RenderTextParams<StreamChatGenerics>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n\n const markdownText = generateMarkdownText<StreamChatGenerics>(message);\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) => {\n const pattern = new RegExp(/^\\S+:\\/\\//);\n if (!pattern.test(url)) {\n url = 'http://' + url;\n }\n\n return onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n };\n\n const linkReact: ReactNodeOutput = (node, output, { ...state }) => {\n const url = node.target;\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: { url },\n defaultHandler: () => {\n onLink(url);\n },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n additionalInfo: { url },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphTextReact: ReactNodeOutput = (node, output, { ...state }) => {\n if (messageTextNumberOfLines !== undefined) {\n // If we want to truncate the message text, lets only truncate the first paragraph\n // and simply not render rest of the paragraphs.\n if (state.key === '0' || state.key === 0) {\n return (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n } else {\n return null;\n }\n }\n\n return (\n <Text key={state.key} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n };\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users } = message;\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n function (match) {\n return '\\\\' + match;\n },\n )}`;\n }\n\n return acc;\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const mentionsMatchFunction: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n /**removes the @ prefix of username */\n const userName = node.content[0]?.content?.substring(1);\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: {\n user: mentioned_users?.find(\n (user: UserResponse<StreamChatGenerics>) => userName === user.name,\n ),\n },\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content)\n ? node.content.reduce((acc, current) => acc + current.content, '') || ''\n : output(node.content, state)}\n </Text>\n );\n };\n\n const listReact: ReactNodeOutput = (node, output, state) => (\n <ListOutput\n key={`list-${state.key}`}\n node={node}\n output={output}\n state={state}\n styles={styles}\n />\n );\n\n const customRules = {\n // do not render images, we will scrape them out of the message and show on attachment card component\n image: { match: () => null },\n link: { react: linkReact },\n list: { react: listReact },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphTextReact } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: listReact },\n ...(mentionedUsers\n ? {\n mentions: {\n match: mentionsMatchFunction,\n order: defaultRules.text.order - 0.5,\n parse: mentionsParseFunction,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {markdownText}\n </Markdown>\n );\n};\n\nexport interface ListOutputProps {\n node: SingleASTNode;\n output: ReactOutput;\n state: State;\n styles?: Partial<MarkdownStyle>;\n}\n\n/**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n */\nexport const ListOutput = ({ node, output, state, styles }: ListOutputProps) => {\n let isSublist = state.withinList;\n const parentTypes = ['text', 'paragraph', 'strong'];\n\n return (\n <View key={state.key} style={isSublist ? styles?.sublist : styles?.list}>\n {node.items.map((item: SingleASTNode, index: number) => {\n const indexAfterStart = node.start + index;\n\n if (item === null) {\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n </ListRow>\n );\n }\n\n isSublist = item.length > 1 && item[1].type === 'list';\n const isSublistWithinText = parentTypes.includes((item[0] ?? {}).type) && isSublist;\n const style = isSublistWithinText ? { marginBottom: 0 } : {};\n\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n <ListItem key={1} style={[styles?.listItemText, style]}>\n {output(item, state)}\n </ListItem>\n </ListRow>\n );\n })}\n </View>\n );\n};\n\ninterface BulletProps extends TextProps {\n index?: number;\n}\n\nconst Bullet = ({ index, style }: BulletProps) => (\n <Text key={0} style={style}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = ({ children, style }: PropsWithChildren<ViewProps>) => (\n <Text style={style}>{children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeMarkdownPackage","_simpleMarkdown","_generateMarkdownText","_this","_jsxFileName","defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","mentionsParseFunction","capture","parse","state","content","parseInline","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","markdownText","generateMarkdownText","styles","_extends2","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","text","black","url","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","previousLink","linkReact","node","output","_ref","_objectDestructuringEmpty2","withinLink","target","event","additionalInfo","defaultHandler","emitter","createElement","Text","key","style","suppressHighlighting","__self","__source","fileName","lineNumber","columnNumber","paragraphTextReact","_ref2","undefined","numberOfLines","mentioned_users","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","length","replace","match","regEx","mentionsMatchFunction","source","exec","mentionsReact","_ref3","_node$content$","_node$content$$conten","substring","user","find","current","listReact","ListOutput","customRules","image","link","react","reflink","sublist","order","defaultRules","JSON","stringify","rules","exports","_ref4","isSublist","withinList","parentTypes","View","items","map","item","index","_item$","indexAfterStart","start","ListRow","testID","Bullet","ordered","listItemBullet","type","isSublistWithinText","includes","ListItem","_ref5","_ref6","children","_ref7"],"sources":["renderText.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { GestureResponderEvent, Linking, Text, TextProps, View, ViewProps } from 'react-native';\n\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\n\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n ReactOutput,\n SingleASTNode,\n State,\n} from 'simple-markdown';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { generateMarkdownText } from './generateMarkdownText';\n\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst mentionsParseFunction: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<StreamChatGenerics>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n params: RenderTextParams<StreamChatGenerics>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n\n const markdownText = generateMarkdownText<StreamChatGenerics>(message);\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) => {\n const pattern = new RegExp(/^\\S+:\\/\\//);\n if (!pattern.test(url)) {\n url = 'http://' + url;\n }\n\n return onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n };\n\n let previousLink: string | undefined;\n const linkReact: ReactNodeOutput = (node, output, { ...state }) => {\n let url: string;\n // Some long URLs with `&` separated parameters are trimmed and the url only until first param is taken.\n // This is done because of internal link been taken from the original URL in react-native-markdown-package. So, we check for `withinLink` and take the previous full URL.\n if (state?.withinLink && previousLink) {\n url = previousLink;\n } else {\n url = node.target;\n previousLink = node.target;\n }\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: { url },\n defaultHandler: () => {\n onLink(url);\n },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n additionalInfo: { url },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphTextReact: ReactNodeOutput = (node, output, { ...state }) => {\n if (messageTextNumberOfLines !== undefined) {\n // If we want to truncate the message text, lets only truncate the first paragraph\n // and simply not render rest of the paragraphs.\n if (state.key === '0' || state.key === 0) {\n return (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n } else {\n return null;\n }\n }\n\n return (\n <Text key={state.key} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n };\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users } = message;\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n function (match) {\n return '\\\\' + match;\n },\n )}`;\n }\n\n return acc;\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const mentionsMatchFunction: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n /**removes the @ prefix of username */\n const userName = node.content[0]?.content?.substring(1);\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: {\n user: mentioned_users?.find(\n (user: UserResponse<StreamChatGenerics>) => userName === user.name,\n ),\n },\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content)\n ? node.content.reduce((acc, current) => acc + current.content, '') || ''\n : output(node.content, state)}\n </Text>\n );\n };\n\n const listReact: ReactNodeOutput = (node, output, state) => (\n <ListOutput\n key={`list-${state.key}`}\n node={node}\n output={output}\n state={state}\n styles={styles}\n />\n );\n\n const customRules = {\n // do not render images, we will scrape them out of the message and show on attachment card component\n image: { match: () => null },\n link: { react: linkReact },\n list: { react: listReact },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphTextReact } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: listReact },\n ...(mentionedUsers\n ? {\n mentions: {\n match: mentionsMatchFunction,\n order: defaultRules.text.order - 0.5,\n parse: mentionsParseFunction,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {markdownText}\n </Markdown>\n );\n};\n\nexport interface ListOutputProps {\n node: SingleASTNode;\n output: ReactOutput;\n state: State;\n styles?: Partial<MarkdownStyle>;\n}\n\n/**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n */\nexport const ListOutput = ({ node, output, state, styles }: ListOutputProps) => {\n let isSublist = state.withinList;\n const parentTypes = ['text', 'paragraph', 'strong'];\n\n return (\n <View key={state.key} style={isSublist ? styles?.sublist : styles?.list}>\n {node.items.map((item: SingleASTNode, index: number) => {\n const indexAfterStart = node.start + index;\n\n if (item === null) {\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n </ListRow>\n );\n }\n\n isSublist = item.length > 1 && item[1].type === 'list';\n const isSublistWithinText = parentTypes.includes((item[0] ?? {}).type) && isSublist;\n const style = isSublistWithinText ? { marginBottom: 0 } : {};\n\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n <ListItem key={1} style={[styles?.listItemText, style]}>\n {output(item, state)}\n </ListItem>\n </ListRow>\n );\n })}\n </View>\n );\n};\n\ninterface BulletProps extends TextProps {\n index?: number;\n}\n\nconst Bullet = ({ index, style }: BulletProps) => (\n <Text key={0} style={style}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = ({ children, style }: PropsWithChildren<ViewProps>) => (\n <Text style={style}>{children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_icons","_utils","_this","_jsxFileName","REFRESH_ICON_SIZE","UploadProgressIndicator","props","action","children","style","type","_useTheme","useTheme","_useTheme$theme","theme","overlayColor","colors","overlay","container","messageInput","uploadProgressIndicator","ProgressIndicatorTypes","INACTIVE","createElement","View","styles","overflowHidden","testID","__self","__source","fileName","lineNumber","columnNumber","NOT_SUPPORTED","backgroundColor","IN_PROGRESS","InProgressIndicator","RETRY","RetryIndicator","exports","_useTheme2","white_smoke","activityIndicatorContainer","ActivityIndicator","color","_ref","_useTheme3","TouchableOpacity","onPress","retryButtonContainer","Refresh","height","pathFill","width","StyleSheet","create","alignItems","bottom","justifyContent","left","position","right","top","overflow","opacity","displayName"],"sources":["UploadProgressIndicator.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ActivityIndicator,\n GestureResponderEvent,\n StyleProp,\n StyleSheet,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Refresh } from '../../icons';\nimport { ProgressIndicatorTypes } from '../../utils/utils';\n\nconst REFRESH_ICON_SIZE = 18;\n\nexport type UploadProgressIndicatorProps = {\n /** Action triggered when clicked indicator */\n action?: (event: GestureResponderEvent) => void;\n /** style */\n style?: StyleProp<ViewStyle>;\n /** Type of active indicator */\n type?: 'in_progress' | 'retry' | 'not_supported' | 'inactive' | null;\n};\n\nexport const UploadProgressIndicator:
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ThemeContext","_icons","_utils","_this","_jsxFileName","REFRESH_ICON_SIZE","UploadProgressIndicator","props","action","children","style","type","_useTheme","useTheme","_useTheme$theme","theme","overlayColor","colors","overlay","container","messageInput","uploadProgressIndicator","ProgressIndicatorTypes","INACTIVE","createElement","View","styles","overflowHidden","testID","__self","__source","fileName","lineNumber","columnNumber","NOT_SUPPORTED","backgroundColor","IN_PROGRESS","InProgressIndicator","RETRY","RetryIndicator","exports","_useTheme2","white_smoke","activityIndicatorContainer","ActivityIndicator","color","_ref","_useTheme3","TouchableOpacity","onPress","retryButtonContainer","Refresh","height","pathFill","width","StyleSheet","create","alignItems","bottom","justifyContent","left","position","right","top","overflow","opacity","displayName"],"sources":["UploadProgressIndicator.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport {\n ActivityIndicator,\n GestureResponderEvent,\n StyleProp,\n StyleSheet,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Refresh } from '../../icons';\nimport { ProgressIndicatorTypes } from '../../utils/utils';\n\nconst REFRESH_ICON_SIZE = 18;\n\nexport type UploadProgressIndicatorProps = {\n /** Action triggered when clicked indicator */\n action?: (event: GestureResponderEvent) => void;\n /** style */\n style?: StyleProp<ViewStyle>;\n /** Type of active indicator */\n type?: 'in_progress' | 'retry' | 'not_supported' | 'inactive' | null;\n};\n\nexport const UploadProgressIndicator = (props: PropsWithChildren<UploadProgressIndicatorProps>) => {\n const { action, children, style, type } = props;\n\n const {\n theme: {\n colors: { overlay: overlayColor },\n messageInput: {\n uploadProgressIndicator: { container },\n },\n },\n } = useTheme();\n\n return type === ProgressIndicatorTypes.INACTIVE ? (\n <View style={[styles.overflowHidden, style]} testID='inactive-upload-progress-indicator'>\n {children}\n </View>\n ) : (\n <View style={[styles.overflowHidden, style]} testID='active-upload-progress-indicator'>\n {children}\n <View\n style={[\n type === ProgressIndicatorTypes.NOT_SUPPORTED ? styles.overflowHidden : styles.container,\n { backgroundColor: overlayColor },\n container,\n ]}\n testID='not-supported-upload-progress-indicator'\n >\n {type === ProgressIndicatorTypes.IN_PROGRESS && <InProgressIndicator />}\n {type === ProgressIndicatorTypes.RETRY && <RetryIndicator action={action} />}\n </View>\n </View>\n );\n};\n\nconst InProgressIndicator = () => {\n const {\n theme: {\n colors: { white_smoke },\n },\n } = useTheme();\n\n return (\n <View style={styles.activityIndicatorContainer}>\n <ActivityIndicator color={white_smoke} testID='upload-progress-indicator' />\n </View>\n );\n};\n\nconst RetryIndicator = ({ action }: Pick<UploadProgressIndicatorProps, 'action'>) => {\n const {\n theme: {\n colors: { white_smoke },\n },\n } = useTheme();\n\n return (\n <TouchableOpacity onPress={action} style={styles.retryButtonContainer}>\n <Refresh\n height={REFRESH_ICON_SIZE}\n pathFill={white_smoke}\n testID='retry-upload-progress-indicator'\n width={REFRESH_ICON_SIZE}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n activityIndicatorContainer: {\n alignItems: 'center',\n bottom: 0,\n justifyContent: 'center',\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n container: {\n alignItems: 'center',\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%',\n },\n overflowHidden: {\n overflow: 'hidden',\n },\n overlay: {\n alignItems: 'center',\n height: '100%',\n justifyContent: 'center',\n opacity: 0,\n position: 'absolute',\n width: '100%',\n },\n retryButtonContainer: {\n alignItems: 'center',\n bottom: 0,\n justifyContent: 'center',\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n});\n\nUploadProgressIndicator.displayName =\n 'UploadProgressIndicator{messageInput{uploadProgressIndicator}}';\n"],"mappings":"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"}
|
package/lib/module/i18n/en.json
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"1 Reply": "1 Reply",
|
|
3
3
|
"1 Thread Reply": "1 Thread Reply",
|
|
4
4
|
"Allow access to your Gallery": "Allow access to your Gallery",
|
|
5
|
+
"Allow camera access in device settings": "Allow camera access in device settings",
|
|
5
6
|
"Also send to channel": "Also send to channel",
|
|
6
7
|
"Are you sure you want to permanently delete this message?": "Are you sure you want to permanently delete this message?",
|
|
7
8
|
"Block User": "Block User",
|
|
@@ -10,6 +11,7 @@
|
|
|
10
11
|
"Copy Message": "Copy Message",
|
|
11
12
|
"Delete": "Delete",
|
|
12
13
|
"Delete Message": "Delete Message",
|
|
14
|
+
"Device camera is used to take photos or videos.": "Device camera is used to take photos or videos.",
|
|
13
15
|
"Do you want to send a copy of this message to a moderator for further investigation?": "Do you want to send a copy of this message to a moderator for further investigation?",
|
|
14
16
|
"Edit Message": "Edit Message",
|
|
15
17
|
"Editing Message": "Editing Message",
|
|
@@ -39,6 +41,7 @@
|
|
|
39
41
|
"Nothing yet...": "Nothing yet...",
|
|
40
42
|
"Ok": "Ok",
|
|
41
43
|
"Only visible to you": "Only visible to you",
|
|
44
|
+
"Open Settings": "Open Settings",
|
|
42
45
|
"Photo": "Photo",
|
|
43
46
|
"Photos and Videos": "Photos and Videos",
|
|
44
47
|
"Pin to Conversation": "Pin to Conversation",
|
package/lib/module/i18n/es.json
CHANGED
|
@@ -70,5 +70,8 @@
|
|
|
70
70
|
"🏙 Attachment...": "🏙 Adjunto...",
|
|
71
71
|
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "El archivo supera el tamaño máximo permitido. Por favor, selecciona un archivo menor a {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.",
|
|
72
72
|
"Let's start chatting!": "¡Empecemos a charlar!",
|
|
73
|
-
"How about sending your first message to a friend?": "¿Qué tal enviar tu primer mensaje a un amigo?"
|
|
73
|
+
"How about sending your first message to a friend?": "¿Qué tal enviar tu primer mensaje a un amigo?",
|
|
74
|
+
"Allow camera access in device settings": "Permitir el acceso a la cámara en la configuración del dispositivo",
|
|
75
|
+
"Device camera is used to take photos or videos.": "La cámara del dispositivo se utiliza para tomar fotografías o vídeos.",
|
|
76
|
+
"Open Settings": "Configuración abierta"
|
|
74
77
|
}
|
package/lib/module/i18n/fr.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"1 Reply": "
|
|
3
|
-
"1 Thread Reply": "
|
|
4
|
-
"Allow access to your Gallery": "
|
|
2
|
+
"1 Reply": "",
|
|
3
|
+
"1 Thread Reply": "",
|
|
4
|
+
"Allow access to your Gallery": "",
|
|
5
|
+
"Allow camera access in device settings": "",
|
|
5
6
|
"Also send to channel": "",
|
|
6
7
|
"Are you sure you want to permanently delete this message?": "",
|
|
7
8
|
"Block User": "",
|
|
@@ -10,64 +11,66 @@
|
|
|
10
11
|
"Copy Message": "",
|
|
11
12
|
"Delete": "",
|
|
12
13
|
"Delete Message": "",
|
|
14
|
+
"Device camera is used to take photos or videos.": "",
|
|
13
15
|
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
14
16
|
"Edit Message": "",
|
|
15
|
-
"Editing Message": "
|
|
17
|
+
"Editing Message": "",
|
|
16
18
|
"Emoji matching": "",
|
|
17
19
|
"Empty message...": "",
|
|
18
20
|
"Error loading": "",
|
|
19
21
|
"Error loading channel list...": "",
|
|
20
22
|
"Error loading messages for this channel...": "",
|
|
21
23
|
"Error while loading, please reload/refresh": "",
|
|
22
|
-
"File type not supported": "",
|
|
24
|
+
"File type not supported": "Le type de fichier n'est pas pris en charge",
|
|
23
25
|
"Flag": "",
|
|
24
26
|
"Flag Message": "",
|
|
25
27
|
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
26
28
|
"How about sending your first message to a friend?": "",
|
|
27
29
|
"Instant Commands": "",
|
|
28
30
|
"Let's start chatting!": "",
|
|
29
|
-
"Links are disabled": "
|
|
30
|
-
"Loading channels...": "",
|
|
31
|
-
"Loading messages...": "",
|
|
32
|
-
"Loading...": "",
|
|
33
|
-
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "
|
|
31
|
+
"Links are disabled": "",
|
|
32
|
+
"Loading channels...": "Chargement des canaux...",
|
|
33
|
+
"Loading messages...": "Chargement des messages...",
|
|
34
|
+
"Loading...": "Chargement...",
|
|
35
|
+
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
34
36
|
"Message Reactions": "",
|
|
35
37
|
"Message deleted": "",
|
|
36
38
|
"Message flagged": "",
|
|
37
39
|
"Mute User": "",
|
|
38
|
-
"Not supported": "",
|
|
40
|
+
"Not supported": "Non pris en charge",
|
|
39
41
|
"Nothing yet...": "",
|
|
40
42
|
"Ok": "",
|
|
41
43
|
"Only visible to you": "Seulement visible par vous",
|
|
44
|
+
"Open Settings": "",
|
|
42
45
|
"Photo": "Photo",
|
|
43
|
-
"Photos and Videos": "
|
|
46
|
+
"Photos and Videos": "",
|
|
44
47
|
"Pin to Conversation": "",
|
|
45
|
-
"Pinned by": "
|
|
46
|
-
"Please enable access to your photos and videos so you can share them.": "
|
|
48
|
+
"Pinned by": "",
|
|
49
|
+
"Please enable access to your photos and videos so you can share them.": "",
|
|
47
50
|
"Please select a channel first": "Veuillez d'abord selectionnez un canal",
|
|
48
51
|
"Reconnecting...": "",
|
|
49
52
|
"Reply": "",
|
|
50
53
|
"Reply to Message": "",
|
|
51
54
|
"Resend": "",
|
|
52
55
|
"Search GIFs": "",
|
|
53
|
-
"Select More Photos": "
|
|
56
|
+
"Select More Photos": "",
|
|
54
57
|
"Send a message": "",
|
|
55
|
-
"Sending links is not allowed in this conversation": "
|
|
58
|
+
"Sending links is not allowed in this conversation": "",
|
|
56
59
|
"Slow mode ON": "",
|
|
57
60
|
"The message has been reported to a moderator.": "",
|
|
58
61
|
"Thread Reply": "",
|
|
59
62
|
"Unblock User": "",
|
|
60
|
-
"Unknown User": "
|
|
63
|
+
"Unknown User": "",
|
|
61
64
|
"Unmute User": "",
|
|
62
65
|
"Unpin from Conversation": "",
|
|
63
66
|
"Unread Messages": "",
|
|
64
67
|
"Video": "Vidéo",
|
|
65
68
|
"You": "",
|
|
66
69
|
"You can't send messages in this channel": "You can't send messages in this channel",
|
|
67
|
-
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
68
|
-
"{{ index }} of {{ photoLength }}": "
|
|
69
|
-
"{{ replyCount }} Replies": "
|
|
70
|
-
"{{ replyCount }} Thread Replies": "
|
|
71
|
-
"{{ user }} is typing": "",
|
|
70
|
+
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} et {{ nonSelfUserLength }} autres sont en train d'écrire",
|
|
71
|
+
"{{ index }} of {{ photoLength }}": "",
|
|
72
|
+
"{{ replyCount }} Replies": "",
|
|
73
|
+
"{{ replyCount }} Thread Replies": "",
|
|
74
|
+
"{{ user }} is typing": "{{ user }} est en train d'écrire",
|
|
72
75
|
"🏙 Attachment...": ""
|
|
73
76
|
}
|