stream-chat-react-native-core 4.3.1-beta.2 → 4.4.0-beta.2
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 +1 -1
- package/lib/commonjs/components/Attachment/Card.js +25 -28
- package/lib/commonjs/components/Attachment/Card.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachment.js +19 -24
- package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +27 -25
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/Attachment/hooks/useGoToURL.js +42 -0
- package/lib/commonjs/components/Attachment/hooks/useGoToURL.js.map +1 -0
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +11 -7
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +4 -8
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +1 -3
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +20 -14
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +8 -6
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Card.js +25 -28
- package/lib/module/components/Attachment/Card.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachment.js +19 -24
- package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js +27 -25
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/Attachment/hooks/useGoToURL.js +42 -0
- package/lib/module/components/Attachment/hooks/useGoToURL.js.map +1 -0
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +11 -7
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +4 -8
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useCreateChatContext.js +1 -3
- package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +20 -14
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/MessageList/ScrollToBottomButton.js +8 -6
- package/lib/module/components/MessageList/ScrollToBottomButton.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js +2 -2
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/FileAttachment.d.ts +0 -1
- package/lib/typescript/components/Attachment/hooks/useGoToURL.d.ts +2 -0
- package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts +1 -5
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
- package/package.json +2 -2
- package/src/components/Attachment/Card.tsx +5 -13
- package/src/components/Attachment/FileAttachment.tsx +5 -13
- package/src/components/Attachment/Giphy.tsx +3 -1
- package/src/components/Attachment/__tests__/Attachment.test.js +39 -0
- package/src/components/Attachment/hooks/useGoToURL.ts +27 -0
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +23 -13
- package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +0 -1
- package/src/components/Chat/Chat.tsx +0 -4
- package/src/components/Chat/hooks/useCreateChatContext.ts +0 -2
- package/src/components/Message/MessageSimple/utils/renderText.tsx +8 -2
- package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +8 -8
- package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +2 -2
- package/src/components/MessageList/ScrollToBottomButton.tsx +2 -1
- package/src/components/MessageList/__tests__/__snapshots__/ScrollToBottomButton.test.js.snap +1 -0
- package/src/contexts/chatContext/ChatContext.tsx +1 -5
- package/src/contexts/themeContext/utils/theme.ts +1 -0
- package/src/version.json +1 -1
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js +0 -80
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +0 -1
- package/lib/module/components/Chat/hooks/useAppSettings.js +0 -80
- package/lib/module/components/Chat/hooks/useAppSettings.js.map +0 -1
- package/lib/typescript/components/Chat/hooks/__tests__/useAppSettings.test.d.ts +0 -1
- package/lib/typescript/components/Chat/hooks/useAppSettings.d.ts +0 -3
- package/src/components/Chat/hooks/__tests__/useAppSettings.test.tsx +0 -34
- package/src/components/Chat/hooks/useAppSettings.ts +0 -39
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Official React Native SDK for
|
|
1
|
+
# Official React Native SDK for Stream Chat
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
4
|
<a href="https://getstream.io/chat/react-native-chat/tutorial/"><img src="https://github.com/GetStream/stream-chat-react-native/blob/master/screenshots/readme/cover.png" alt="react native chat" width="100%" /></a>
|
|
@@ -7,12 +7,16 @@ exports.Card = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
|
|
10
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
13
|
|
|
12
14
|
var _react = _interopRequireDefault(require("react"));
|
|
13
15
|
|
|
14
16
|
var _reactNative = require("react-native");
|
|
15
17
|
|
|
18
|
+
var _useGoToURL3 = require("./hooks/useGoToURL");
|
|
19
|
+
|
|
16
20
|
var _MessageContext = require("../../contexts/messageContext/MessageContext");
|
|
17
21
|
|
|
18
22
|
var _MessagesContext = require("../../contexts/messagesContext/MessagesContext");
|
|
@@ -70,18 +74,6 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
70
74
|
}
|
|
71
75
|
});
|
|
72
76
|
|
|
73
|
-
var goToURL = function goToURL(url) {
|
|
74
|
-
if (!url) return;
|
|
75
|
-
|
|
76
|
-
_reactNative.Linking.canOpenURL(url).then(function (supported) {
|
|
77
|
-
if (supported) {
|
|
78
|
-
_reactNative.Linking.openURL(url);
|
|
79
|
-
} else {
|
|
80
|
-
console.log("Don't know how to open URI: " + url);
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
|
|
85
77
|
var CardWithContext = function CardWithContext(props) {
|
|
86
78
|
var additionalTouchableProps = props.additionalTouchableProps,
|
|
87
79
|
author_name = props.author_name,
|
|
@@ -123,8 +115,13 @@ var CardWithContext = function CardWithContext(props) {
|
|
|
123
115
|
|
|
124
116
|
var uri = image_url || thumb_url;
|
|
125
117
|
|
|
118
|
+
var _useGoToURL = (0, _useGoToURL3.useGoToURL)(og_scrape_url || uri),
|
|
119
|
+
_useGoToURL2 = (0, _slicedToArray2["default"])(_useGoToURL, 2),
|
|
120
|
+
error = _useGoToURL2[0],
|
|
121
|
+
openURL = _useGoToURL2[1];
|
|
122
|
+
|
|
126
123
|
var defaultOnPress = function defaultOnPress() {
|
|
127
|
-
return
|
|
124
|
+
return !error && openURL && openURL();
|
|
128
125
|
};
|
|
129
126
|
|
|
130
127
|
return _react["default"].createElement(_reactNative.TouchableOpacity, (0, _extends2["default"])({
|
|
@@ -161,28 +158,28 @@ var CardWithContext = function CardWithContext(props) {
|
|
|
161
158
|
__self: _this,
|
|
162
159
|
__source: {
|
|
163
160
|
fileName: _jsxFileName,
|
|
164
|
-
lineNumber:
|
|
161
|
+
lineNumber: 147,
|
|
165
162
|
columnNumber: 5
|
|
166
163
|
}
|
|
167
164
|
}), CardHeader && _react["default"].createElement(CardHeader, (0, _extends2["default"])({}, props, {
|
|
168
165
|
__self: _this,
|
|
169
166
|
__source: {
|
|
170
167
|
fileName: _jsxFileName,
|
|
171
|
-
lineNumber:
|
|
168
|
+
lineNumber: 179,
|
|
172
169
|
columnNumber: 22
|
|
173
170
|
}
|
|
174
171
|
})), CardCover && _react["default"].createElement(CardCover, (0, _extends2["default"])({}, props, {
|
|
175
172
|
__self: _this,
|
|
176
173
|
__source: {
|
|
177
174
|
fileName: _jsxFileName,
|
|
178
|
-
lineNumber:
|
|
175
|
+
lineNumber: 180,
|
|
179
176
|
columnNumber: 21
|
|
180
177
|
}
|
|
181
178
|
})), uri && !CardCover && _react["default"].createElement(_reactNative.View, {
|
|
182
179
|
__self: _this,
|
|
183
180
|
__source: {
|
|
184
181
|
fileName: _jsxFileName,
|
|
185
|
-
lineNumber:
|
|
182
|
+
lineNumber: 182,
|
|
186
183
|
columnNumber: 9
|
|
187
184
|
}
|
|
188
185
|
}, _react["default"].createElement(_reactNative.Image, {
|
|
@@ -194,7 +191,7 @@ var CardWithContext = function CardWithContext(props) {
|
|
|
194
191
|
__self: _this,
|
|
195
192
|
__source: {
|
|
196
193
|
fileName: _jsxFileName,
|
|
197
|
-
lineNumber:
|
|
194
|
+
lineNumber: 183,
|
|
198
195
|
columnNumber: 11
|
|
199
196
|
}
|
|
200
197
|
}), author_name && _react["default"].createElement(_reactNative.View, {
|
|
@@ -202,7 +199,7 @@ var CardWithContext = function CardWithContext(props) {
|
|
|
202
199
|
__self: _this,
|
|
203
200
|
__source: {
|
|
204
201
|
fileName: _jsxFileName,
|
|
205
|
-
lineNumber:
|
|
202
|
+
lineNumber: 189,
|
|
206
203
|
columnNumber: 13
|
|
207
204
|
}
|
|
208
205
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -212,7 +209,7 @@ var CardWithContext = function CardWithContext(props) {
|
|
|
212
209
|
__self: _this,
|
|
213
210
|
__source: {
|
|
214
211
|
fileName: _jsxFileName,
|
|
215
|
-
lineNumber:
|
|
212
|
+
lineNumber: 190,
|
|
216
213
|
columnNumber: 15
|
|
217
214
|
}
|
|
218
215
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -222,14 +219,14 @@ var CardWithContext = function CardWithContext(props) {
|
|
|
222
219
|
__self: _this,
|
|
223
220
|
__source: {
|
|
224
221
|
fileName: _jsxFileName,
|
|
225
|
-
lineNumber:
|
|
222
|
+
lineNumber: 198,
|
|
226
223
|
columnNumber: 17
|
|
227
224
|
}
|
|
228
225
|
}, author_name)))), CardFooter ? _react["default"].createElement(CardFooter, (0, _extends2["default"])({}, props, {
|
|
229
226
|
__self: _this,
|
|
230
227
|
__source: {
|
|
231
228
|
fileName: _jsxFileName,
|
|
232
|
-
lineNumber:
|
|
229
|
+
lineNumber: 214,
|
|
233
230
|
columnNumber: 9
|
|
234
231
|
}
|
|
235
232
|
})) : _react["default"].createElement(_reactNative.View, {
|
|
@@ -237,7 +234,7 @@ var CardWithContext = function CardWithContext(props) {
|
|
|
237
234
|
__self: _this,
|
|
238
235
|
__source: {
|
|
239
236
|
fileName: _jsxFileName,
|
|
240
|
-
lineNumber:
|
|
237
|
+
lineNumber: 216,
|
|
241
238
|
columnNumber: 9
|
|
242
239
|
}
|
|
243
240
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -249,7 +246,7 @@ var CardWithContext = function CardWithContext(props) {
|
|
|
249
246
|
__self: _this,
|
|
250
247
|
__source: {
|
|
251
248
|
fileName: _jsxFileName,
|
|
252
|
-
lineNumber:
|
|
249
|
+
lineNumber: 217,
|
|
253
250
|
columnNumber: 11
|
|
254
251
|
}
|
|
255
252
|
}, !uri && author_name && _react["default"].createElement(_reactNative.Text, {
|
|
@@ -259,7 +256,7 @@ var CardWithContext = function CardWithContext(props) {
|
|
|
259
256
|
__self: _this,
|
|
260
257
|
__source: {
|
|
261
258
|
fileName: _jsxFileName,
|
|
262
|
-
lineNumber:
|
|
259
|
+
lineNumber: 226,
|
|
263
260
|
columnNumber: 15
|
|
264
261
|
}
|
|
265
262
|
}, author_name), title && _react["default"].createElement(_reactNative.Text, {
|
|
@@ -270,7 +267,7 @@ var CardWithContext = function CardWithContext(props) {
|
|
|
270
267
|
__self: _this,
|
|
271
268
|
__source: {
|
|
272
269
|
fileName: _jsxFileName,
|
|
273
|
-
lineNumber:
|
|
270
|
+
lineNumber: 238,
|
|
274
271
|
columnNumber: 15
|
|
275
272
|
}
|
|
276
273
|
}, title), text && _react["default"].createElement(_reactNative.Text, {
|
|
@@ -281,7 +278,7 @@ var CardWithContext = function CardWithContext(props) {
|
|
|
281
278
|
__self: _this,
|
|
282
279
|
__source: {
|
|
283
280
|
fileName: _jsxFileName,
|
|
284
|
-
lineNumber:
|
|
281
|
+
lineNumber: 246,
|
|
285
282
|
columnNumber: 15
|
|
286
283
|
}
|
|
287
284
|
}, text))));
|
|
@@ -320,7 +317,7 @@ var Card = function Card(props) {
|
|
|
320
317
|
__self: _this,
|
|
321
318
|
__source: {
|
|
322
319
|
fileName: _jsxFileName,
|
|
323
|
-
lineNumber:
|
|
320
|
+
lineNumber: 287,
|
|
324
321
|
columnNumber: 5
|
|
325
322
|
}
|
|
326
323
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Card.tsx"],"names":["styles","StyleSheet","create","authorName","fontSize","fontWeight","authorNameContainer","borderTopRightRadius","paddingHorizontal","paddingTop","authorNameFooter","padding","authorNameMask","bottom","left","position","cardCover","borderRadius","height","marginHorizontal","cardFooter","flexDirection","justifyContent","container","overflow","width","description","title","goToURL","url","Linking","canOpenURL","then","supported","openURL","console","log","CardWithContext","props","additionalTouchableProps","author_name","CardCover","CardFooter","CardHeader","image_url","og_scrape_url","onLongPress","onPress","onPressIn","preventPress","stylesProp","text","thumb_url","theme","colors","accent_blue","black","blue_alice","transparent","messageSimple","card","authorNameFooterContainer","cover","footer","titleStyle","footerStyle","noURI","uri","defaultOnPress","event","emitter","defaultHandler","backgroundColor","color","borderLeftColor","MemoizedCard","React","memo","Card","message","channelId","cid","messageId","id","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n Image,\n ImageStyle,\n Linking,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n authorName: { fontSize: 14.5, fontWeight: '600' },\n authorNameContainer: {\n borderTopRightRadius: 15,\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n authorNameFooter: {\n fontSize: 14.5,\n fontWeight: '600',\n padding: 8,\n },\n authorNameMask: {\n bottom: 0,\n left: 8,\n position: 'absolute',\n },\n cardCover: {\n borderRadius: 8,\n height: 140,\n marginHorizontal: 8,\n },\n cardFooter: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n },\n container: {\n overflow: 'hidden',\n width: 256,\n },\n description: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n title: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n});\n\nconst goToURL = (url?: string) => {\n if (!url) return;\n Linking.canOpenURL(url).then((supported) => {\n if (supported) {\n Linking.openURL(url);\n } else {\n console.log(`Don't know how to open URI: ${url}`);\n }\n });\n};\n\nexport type CardPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n > & {\n channelId: string | undefined;\n messageId: string | undefined;\n styles?: Partial<{\n authorName: StyleProp<TextStyle>;\n authorNameContainer: StyleProp<ViewStyle>;\n authorNameFooter: StyleProp<TextStyle>;\n authorNameFooterContainer: StyleProp<ViewStyle>;\n authorNameMask: StyleProp<ViewStyle>;\n cardCover: StyleProp<ImageStyle>;\n cardFooter: StyleProp<ViewStyle>;\n container: StyleProp<ViewStyle>;\n description: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst CardWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n author_name,\n CardCover,\n CardFooter,\n CardHeader,\n image_url,\n og_scrape_url,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n text,\n thumb_url,\n title,\n } = props;\n\n const {\n theme: {\n colors: { accent_blue, black, blue_alice, transparent },\n messageSimple: {\n card: {\n authorName,\n authorNameContainer,\n authorNameFooter,\n authorNameFooterContainer,\n authorNameMask,\n container,\n cover,\n footer: { description, title: titleStyle, ...footerStyle },\n noURI,\n },\n },\n },\n } = useTheme();\n\n const uri = image_url || thumb_url;\n\n const defaultOnPress = () => goToURL(og_scrape_url || uri);\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'card',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n style={[styles.container, container, stylesProp.container]}\n testID='card-attachment'\n {...additionalTouchableProps}\n >\n {CardHeader && <CardHeader {...props} />}\n {CardCover && <CardCover {...props} />}\n {uri && !CardCover && (\n <View>\n <Image\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.cardCover, cover, stylesProp.cardCover]}\n />\n {author_name && (\n <View style={[styles.authorNameMask, authorNameMask, stylesProp.authorNameMask]}>\n <View\n style={[\n styles.authorNameContainer,\n { backgroundColor: blue_alice },\n authorNameContainer,\n stylesProp.authorNameContainer,\n ]}\n >\n <Text\n style={[\n styles.authorName,\n { color: accent_blue },\n authorName,\n stylesProp.authorName,\n ]}\n >\n {author_name}\n </Text>\n </View>\n </View>\n )}\n </View>\n )}\n {CardFooter ? (\n <CardFooter {...props} />\n ) : (\n <View style={[styles.cardFooter, footerStyle, stylesProp.cardFooter]}>\n <View\n style={[\n authorNameFooterContainer,\n { backgroundColor: transparent },\n !uri ? { borderLeftColor: accent_blue, ...noURI } : {},\n stylesProp.authorNameFooterContainer,\n ]}\n >\n {!uri && author_name && (\n <Text\n style={[\n styles.authorNameFooter,\n { color: accent_blue },\n authorNameFooter,\n stylesProp.authorNameFooter,\n ]}\n >\n {author_name}\n </Text>\n )}\n {title && (\n <Text\n numberOfLines={1}\n style={[styles.title, { color: black }, titleStyle, stylesProp.title]}\n >\n {title}\n </Text>\n )}\n {text && (\n <Text\n numberOfLines={3}\n style={[styles.description, { color: black }, description, stylesProp.description]}\n >\n {text}\n </Text>\n )}\n </View>\n </View>\n )}\n </TouchableOpacity>\n );\n};\n\nconst MemoizedCard = React.memo(CardWithContext, () => true) as typeof CardWithContext;\n\nexport type CardProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'onPressIn'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n >\n >;\n\n/**\n * UI component for card in attachments.\n */\nexport const Card = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardProps<StreamChatGenerics>,\n) => {\n const { message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, CardCover, CardFooter, CardHeader } =\n useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedCard\n {...{\n additionalTouchableProps,\n CardCover,\n CardFooter,\n CardHeader,\n channelId: message.cid,\n messageId: message.id,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nCard.displayName = 'Card{messageSimple{card}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["Card.tsx"],"names":["styles","StyleSheet","create","authorName","fontSize","fontWeight","authorNameContainer","borderTopRightRadius","paddingHorizontal","paddingTop","authorNameFooter","padding","authorNameMask","bottom","left","position","cardCover","borderRadius","height","marginHorizontal","cardFooter","flexDirection","justifyContent","container","overflow","width","description","title","CardWithContext","props","additionalTouchableProps","author_name","CardCover","CardFooter","CardHeader","image_url","og_scrape_url","onLongPress","onPress","onPressIn","preventPress","stylesProp","text","thumb_url","theme","colors","accent_blue","black","blue_alice","transparent","messageSimple","card","authorNameFooterContainer","cover","footer","titleStyle","footerStyle","noURI","uri","error","openURL","defaultOnPress","event","emitter","defaultHandler","backgroundColor","color","borderLeftColor","MemoizedCard","React","memo","Card","message","channelId","cid","messageId","id","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n Image,\n ImageStyle,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { useGoToURL } from './hooks/useGoToURL';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n authorName: { fontSize: 14.5, fontWeight: '600' },\n authorNameContainer: {\n borderTopRightRadius: 15,\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n authorNameFooter: {\n fontSize: 14.5,\n fontWeight: '600',\n padding: 8,\n },\n authorNameMask: {\n bottom: 0,\n left: 8,\n position: 'absolute',\n },\n cardCover: {\n borderRadius: 8,\n height: 140,\n marginHorizontal: 8,\n },\n cardFooter: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n },\n container: {\n overflow: 'hidden',\n width: 256,\n },\n description: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n title: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n});\n\nexport type CardPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n > & {\n channelId: string | undefined;\n messageId: string | undefined;\n styles?: Partial<{\n authorName: StyleProp<TextStyle>;\n authorNameContainer: StyleProp<ViewStyle>;\n authorNameFooter: StyleProp<TextStyle>;\n authorNameFooterContainer: StyleProp<ViewStyle>;\n authorNameMask: StyleProp<ViewStyle>;\n cardCover: StyleProp<ImageStyle>;\n cardFooter: StyleProp<ViewStyle>;\n container: StyleProp<ViewStyle>;\n description: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst CardWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n author_name,\n CardCover,\n CardFooter,\n CardHeader,\n image_url,\n og_scrape_url,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n text,\n thumb_url,\n title,\n } = props;\n\n const {\n theme: {\n colors: { accent_blue, black, blue_alice, transparent },\n messageSimple: {\n card: {\n authorName,\n authorNameContainer,\n authorNameFooter,\n authorNameFooterContainer,\n authorNameMask,\n container,\n cover,\n footer: { description, title: titleStyle, ...footerStyle },\n noURI,\n },\n },\n },\n } = useTheme();\n\n const uri = image_url || thumb_url;\n\n const [error, openURL] = useGoToURL(og_scrape_url || uri);\n\n const defaultOnPress = () => !error && openURL && openURL();\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'card',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n style={[styles.container, container, stylesProp.container]}\n testID='card-attachment'\n {...additionalTouchableProps}\n >\n {CardHeader && <CardHeader {...props} />}\n {CardCover && <CardCover {...props} />}\n {uri && !CardCover && (\n <View>\n <Image\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.cardCover, cover, stylesProp.cardCover]}\n />\n {author_name && (\n <View style={[styles.authorNameMask, authorNameMask, stylesProp.authorNameMask]}>\n <View\n style={[\n styles.authorNameContainer,\n { backgroundColor: blue_alice },\n authorNameContainer,\n stylesProp.authorNameContainer,\n ]}\n >\n <Text\n style={[\n styles.authorName,\n { color: accent_blue },\n authorName,\n stylesProp.authorName,\n ]}\n >\n {author_name}\n </Text>\n </View>\n </View>\n )}\n </View>\n )}\n {CardFooter ? (\n <CardFooter {...props} />\n ) : (\n <View style={[styles.cardFooter, footerStyle, stylesProp.cardFooter]}>\n <View\n style={[\n authorNameFooterContainer,\n { backgroundColor: transparent },\n !uri ? { borderLeftColor: accent_blue, ...noURI } : {},\n stylesProp.authorNameFooterContainer,\n ]}\n >\n {!uri && author_name && (\n <Text\n style={[\n styles.authorNameFooter,\n { color: accent_blue },\n authorNameFooter,\n stylesProp.authorNameFooter,\n ]}\n >\n {author_name}\n </Text>\n )}\n {title && (\n <Text\n numberOfLines={1}\n style={[styles.title, { color: black }, titleStyle, stylesProp.title]}\n >\n {title}\n </Text>\n )}\n {text && (\n <Text\n numberOfLines={3}\n style={[styles.description, { color: black }, description, stylesProp.description]}\n >\n {text}\n </Text>\n )}\n </View>\n </View>\n )}\n </TouchableOpacity>\n );\n};\n\nconst MemoizedCard = React.memo(CardWithContext, () => true) as typeof CardWithContext;\n\nexport type CardProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'onPressIn'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n >\n >;\n\n/**\n * UI component for card in attachments.\n */\nexport const Card = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardProps<StreamChatGenerics>,\n) => {\n const { message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, CardCover, CardFooter, CardHeader } =\n useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedCard\n {...{\n additionalTouchableProps,\n CardCover,\n CardFooter,\n CardHeader,\n channelId: message.cid,\n messageId: message.id,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nCard.displayName = 'Card{messageSimple{card}}';\n"]}
|
|
@@ -3,14 +3,18 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.getFileSizeDisplayText = exports.FileAttachment = void 0;
|
|
7
7
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
|
|
10
12
|
var _react = _interopRequireDefault(require("react"));
|
|
11
13
|
|
|
12
14
|
var _reactNative = require("react-native");
|
|
13
15
|
|
|
16
|
+
var _useGoToURL3 = require("./hooks/useGoToURL");
|
|
17
|
+
|
|
14
18
|
var _AttachmentActions = require("../../components/Attachment/AttachmentActions");
|
|
15
19
|
|
|
16
20
|
var _FileIcon = require("../../components/Attachment/FileIcon");
|
|
@@ -73,8 +77,13 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
|
|
|
73
77
|
fileSize = _useTheme$theme$messa.fileSize,
|
|
74
78
|
title = _useTheme$theme$messa.title;
|
|
75
79
|
|
|
80
|
+
var _useGoToURL = (0, _useGoToURL3.useGoToURL)(attachment.asset_url),
|
|
81
|
+
_useGoToURL2 = (0, _slicedToArray2["default"])(_useGoToURL, 2),
|
|
82
|
+
error = _useGoToURL2[0],
|
|
83
|
+
openURL = _useGoToURL2[1];
|
|
84
|
+
|
|
76
85
|
var defaultOnPress = function defaultOnPress() {
|
|
77
|
-
return
|
|
86
|
+
return !error && openURL && openURL();
|
|
78
87
|
};
|
|
79
88
|
|
|
80
89
|
return _react["default"].createElement(_reactNative.TouchableOpacity, (0, _extends2["default"])({
|
|
@@ -110,7 +119,7 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
|
|
|
110
119
|
__self: _this,
|
|
111
120
|
__source: {
|
|
112
121
|
fileName: _jsxFileName,
|
|
113
|
-
lineNumber:
|
|
122
|
+
lineNumber: 103,
|
|
114
123
|
columnNumber: 5
|
|
115
124
|
}
|
|
116
125
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -120,7 +129,7 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
|
|
|
120
129
|
__self: _this,
|
|
121
130
|
__source: {
|
|
122
131
|
fileName: _jsxFileName,
|
|
123
|
-
lineNumber:
|
|
132
|
+
lineNumber: 134,
|
|
124
133
|
columnNumber: 7
|
|
125
134
|
}
|
|
126
135
|
}, _react["default"].createElement(FileAttachmentIcon, {
|
|
@@ -129,7 +138,7 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
|
|
|
129
138
|
__self: _this,
|
|
130
139
|
__source: {
|
|
131
140
|
fileName: _jsxFileName,
|
|
132
|
-
lineNumber:
|
|
141
|
+
lineNumber: 135,
|
|
133
142
|
columnNumber: 9
|
|
134
143
|
}
|
|
135
144
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -137,7 +146,7 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
|
|
|
137
146
|
__self: _this,
|
|
138
147
|
__source: {
|
|
139
148
|
fileName: _jsxFileName,
|
|
140
|
-
lineNumber:
|
|
149
|
+
lineNumber: 136,
|
|
141
150
|
columnNumber: 9
|
|
142
151
|
}
|
|
143
152
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -148,7 +157,7 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
|
|
|
148
157
|
__self: _this,
|
|
149
158
|
__source: {
|
|
150
159
|
fileName: _jsxFileName,
|
|
151
|
-
lineNumber:
|
|
160
|
+
lineNumber: 137,
|
|
152
161
|
columnNumber: 11
|
|
153
162
|
}
|
|
154
163
|
}, attachment.title), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -158,14 +167,14 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
|
|
|
158
167
|
__self: _this,
|
|
159
168
|
__source: {
|
|
160
169
|
fileName: _jsxFileName,
|
|
161
|
-
lineNumber:
|
|
170
|
+
lineNumber: 140,
|
|
162
171
|
columnNumber: 11
|
|
163
172
|
}
|
|
164
173
|
}, getFileSizeDisplayText(attachment.file_size)))), (_attachment$actions = attachment.actions) != null && _attachment$actions.length ? _react["default"].createElement(AttachmentActions, (0, _extends2["default"])({}, attachment, {
|
|
165
174
|
__self: _this,
|
|
166
175
|
__source: {
|
|
167
176
|
fileName: _jsxFileName,
|
|
168
|
-
lineNumber:
|
|
177
|
+
lineNumber: 145,
|
|
169
178
|
columnNumber: 37
|
|
170
179
|
}
|
|
171
180
|
})) : null);
|
|
@@ -197,7 +206,7 @@ var FileAttachment = function FileAttachment(props) {
|
|
|
197
206
|
__self: _this,
|
|
198
207
|
__source: {
|
|
199
208
|
fileName: _jsxFileName,
|
|
200
|
-
lineNumber:
|
|
209
|
+
lineNumber: 168,
|
|
201
210
|
columnNumber: 5
|
|
202
211
|
}
|
|
203
212
|
}));
|
|
@@ -220,19 +229,5 @@ var getFileSizeDisplayText = function getFileSizeDisplayText(size) {
|
|
|
220
229
|
};
|
|
221
230
|
|
|
222
231
|
exports.getFileSizeDisplayText = getFileSizeDisplayText;
|
|
223
|
-
|
|
224
|
-
var goToURL = function goToURL(url) {
|
|
225
|
-
if (!url) return;
|
|
226
|
-
|
|
227
|
-
_reactNative.Linking.canOpenURL(url).then(function (supported) {
|
|
228
|
-
if (supported) {
|
|
229
|
-
_reactNative.Linking.openURL(url);
|
|
230
|
-
} else {
|
|
231
|
-
console.log("Don't know how to open URI: " + url);
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
};
|
|
235
|
-
|
|
236
|
-
exports.goToURL = goToURL;
|
|
237
232
|
FileAttachment.displayName = 'FileAttachment{messageSimple{file}}';
|
|
238
233
|
//# sourceMappingURL=FileAttachment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FileAttachment.tsx"],"names":["styles","StyleSheet","create","container","alignItems","borderRadius","flexDirection","padding","details","maxWidth","paddingLeft","size","fontSize","title","fontWeight","FileAttachmentWithContext","props","additionalTouchableProps","attachment","attachmentSize","AttachmentActions","FileAttachmentIcon","onLongPress","onPress","onPressIn","preventPress","stylesProp","theme","colors","black","grey","white","messageSimple","file","fileSize","defaultOnPress","goToURL","asset_url","event","emitter","defaultHandler","backgroundColor","mime_type","color","getFileSizeDisplayText","file_size","actions","length","FileAttachment","AttachmentActionsDefault","FileIconDefault","parseFloat","Math","floor","url","Linking","canOpenURL","then","supported","openURL","console","log","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n Linking,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { AttachmentActions as AttachmentActionsDefault } from '../../components/Attachment/AttachmentActions';\nimport { FileIcon as FileIconDefault } from '../../components/Attachment/FileIcon';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { vw } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n padding: 8,\n },\n details: {\n maxWidth: vw(60),\n paddingLeft: 16,\n },\n size: {\n fontSize: 12,\n },\n title: {\n fontSize: 14,\n fontWeight: '700',\n },\n});\n\nexport type FileAttachmentPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'AttachmentActions' | 'FileAttachmentIcon'\n > & {\n /** The attachment to render */\n attachment: Attachment<StreamChatGenerics>;\n attachmentSize?: number;\n styles?: Partial<{\n container: StyleProp<ViewStyle>;\n details: StyleProp<ViewStyle>;\n size: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst FileAttachmentWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n attachmentSize,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n } = props;\n\n const {\n theme: {\n colors: { black, grey, white },\n messageSimple: {\n file: { container, details, fileSize, title },\n },\n },\n } = useTheme();\n\n const defaultOnPress = () => goToURL(attachment.asset_url);\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n testID='file-attachment'\n {...additionalTouchableProps}\n >\n <View style={[styles.container, { backgroundColor: white }, container, stylesProp.container]}>\n <FileAttachmentIcon mimeType={attachment.mime_type} size={attachmentSize} />\n <View style={[styles.details, details, stylesProp.details]}>\n <Text numberOfLines={2} style={[styles.title, { color: black }, title, stylesProp.title]}>\n {attachment.title}\n </Text>\n <Text style={[styles.size, { color: grey }, fileSize, stylesProp.size]}>\n {getFileSizeDisplayText(attachment.file_size)}\n </Text>\n </View>\n </View>\n {attachment.actions?.length ? <AttachmentActions {...attachment} /> : null}\n </TouchableOpacity>\n );\n};\n\nexport type FileAttachmentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>> &\n Pick<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>;\n\nexport const FileAttachment = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentProps<StreamChatGenerics>,\n) => {\n const { onLongPress, onPress, onPressIn, preventPress } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps,\n AttachmentActions = AttachmentActionsDefault,\n FileAttachmentIcon = FileIconDefault,\n } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <FileAttachmentWithContext\n {...{\n additionalTouchableProps,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nexport const getFileSizeDisplayText = (size?: number | string) => {\n if (!size) return;\n if (typeof size === 'string') {\n size = parseFloat(size);\n }\n\n if (size < 1000 * 1000) {\n return `${Math.floor(Math.floor(size / 10) / 100)} KB`;\n }\n\n return `${Math.floor(Math.floor(size / 10000) / 100)} MB`;\n};\n\nexport const goToURL = (url?: string) => {\n if (!url) return;\n Linking.canOpenURL(url).then((supported) => {\n if (supported) {\n Linking.openURL(url);\n } else {\n console.log(`Don't know how to open URI: ${url}`);\n }\n });\n};\n\nFileAttachment.displayName = 'FileAttachment{messageSimple{file}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["FileAttachment.tsx"],"names":["styles","StyleSheet","create","container","alignItems","borderRadius","flexDirection","padding","details","maxWidth","paddingLeft","size","fontSize","title","fontWeight","FileAttachmentWithContext","props","additionalTouchableProps","attachment","attachmentSize","AttachmentActions","FileAttachmentIcon","onLongPress","onPress","onPressIn","preventPress","stylesProp","theme","colors","black","grey","white","messageSimple","file","fileSize","asset_url","error","openURL","defaultOnPress","event","emitter","defaultHandler","backgroundColor","mime_type","color","getFileSizeDisplayText","file_size","actions","length","FileAttachment","AttachmentActionsDefault","FileIconDefault","parseFloat","Math","floor","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { useGoToURL } from './hooks/useGoToURL';\n\nimport { AttachmentActions as AttachmentActionsDefault } from '../../components/Attachment/AttachmentActions';\nimport { FileIcon as FileIconDefault } from '../../components/Attachment/FileIcon';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { vw } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n padding: 8,\n },\n details: {\n maxWidth: vw(60),\n paddingLeft: 16,\n },\n size: {\n fontSize: 12,\n },\n title: {\n fontSize: 14,\n fontWeight: '700',\n },\n});\n\nexport type FileAttachmentPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'AttachmentActions' | 'FileAttachmentIcon'\n > & {\n /** The attachment to render */\n attachment: Attachment<StreamChatGenerics>;\n attachmentSize?: number;\n styles?: Partial<{\n container: StyleProp<ViewStyle>;\n details: StyleProp<ViewStyle>;\n size: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst FileAttachmentWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n attachmentSize,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n } = props;\n\n const {\n theme: {\n colors: { black, grey, white },\n messageSimple: {\n file: { container, details, fileSize, title },\n },\n },\n } = useTheme();\n\n const [error, openURL] = useGoToURL(attachment.asset_url);\n\n const defaultOnPress = () => !error && openURL && openURL();\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n testID='file-attachment'\n {...additionalTouchableProps}\n >\n <View style={[styles.container, { backgroundColor: white }, container, stylesProp.container]}>\n <FileAttachmentIcon mimeType={attachment.mime_type} size={attachmentSize} />\n <View style={[styles.details, details, stylesProp.details]}>\n <Text numberOfLines={2} style={[styles.title, { color: black }, title, stylesProp.title]}>\n {attachment.title}\n </Text>\n <Text style={[styles.size, { color: grey }, fileSize, stylesProp.size]}>\n {getFileSizeDisplayText(attachment.file_size)}\n </Text>\n </View>\n </View>\n {attachment.actions?.length ? <AttachmentActions {...attachment} /> : null}\n </TouchableOpacity>\n );\n};\n\nexport type FileAttachmentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>> &\n Pick<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>;\n\nexport const FileAttachment = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentProps<StreamChatGenerics>,\n) => {\n const { onLongPress, onPress, onPressIn, preventPress } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps,\n AttachmentActions = AttachmentActionsDefault,\n FileAttachmentIcon = FileIconDefault,\n } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <FileAttachmentWithContext\n {...{\n additionalTouchableProps,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nexport const getFileSizeDisplayText = (size?: number | string) => {\n if (!size) return;\n if (typeof size === 'string') {\n size = parseFloat(size);\n }\n\n if (size < 1000 * 1000) {\n return `${Math.floor(Math.floor(size / 10) / 100)} KB`;\n }\n\n return `${Math.floor(Math.floor(size / 10000) / 100)} MB`;\n};\n\nFileAttachment.displayName = 'FileAttachment{messageSimple{file}}';\n"]}
|
|
@@ -69,7 +69,8 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
69
69
|
fontWeight: '600'
|
|
70
70
|
},
|
|
71
71
|
giphyHeaderTitle: {
|
|
72
|
-
fontSize: 14
|
|
72
|
+
fontSize: 14,
|
|
73
|
+
marginLeft: 8
|
|
73
74
|
},
|
|
74
75
|
giphyMask: {
|
|
75
76
|
bottom: 8,
|
|
@@ -89,7 +90,8 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
89
90
|
width: '60%'
|
|
90
91
|
},
|
|
91
92
|
selectionContainer: {
|
|
92
|
-
|
|
93
|
+
borderBottomRightRadius: 0,
|
|
94
|
+
borderRadius: 16,
|
|
93
95
|
borderWidth: 1,
|
|
94
96
|
overflow: 'hidden',
|
|
95
97
|
width: 272
|
|
@@ -193,7 +195,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
193
195
|
__self: _this,
|
|
194
196
|
__source: {
|
|
195
197
|
fileName: _jsxFileName,
|
|
196
|
-
lineNumber:
|
|
198
|
+
lineNumber: 200,
|
|
197
199
|
columnNumber: 5
|
|
198
200
|
}
|
|
199
201
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -201,14 +203,14 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
201
203
|
__self: _this,
|
|
202
204
|
__source: {
|
|
203
205
|
fileName: _jsxFileName,
|
|
204
|
-
lineNumber:
|
|
206
|
+
lineNumber: 208,
|
|
205
207
|
columnNumber: 7
|
|
206
208
|
}
|
|
207
209
|
}, _react["default"].createElement(_icons.GiphyIcon, {
|
|
208
210
|
__self: _this,
|
|
209
211
|
__source: {
|
|
210
212
|
fileName: _jsxFileName,
|
|
211
|
-
lineNumber:
|
|
213
|
+
lineNumber: 209,
|
|
212
214
|
columnNumber: 9
|
|
213
215
|
}
|
|
214
216
|
}), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -216,7 +218,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
216
218
|
__self: _this,
|
|
217
219
|
__source: {
|
|
218
220
|
fileName: _jsxFileName,
|
|
219
|
-
lineNumber:
|
|
221
|
+
lineNumber: 210,
|
|
220
222
|
columnNumber: 9
|
|
221
223
|
}
|
|
222
224
|
}, "Giphy"), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -226,7 +228,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
226
228
|
__self: _this,
|
|
227
229
|
__source: {
|
|
228
230
|
fileName: _jsxFileName,
|
|
229
|
-
lineNumber:
|
|
231
|
+
lineNumber: 211,
|
|
230
232
|
columnNumber: 9
|
|
231
233
|
}
|
|
232
234
|
}, "/giphy " + title)), _react["default"].createElement(_reactNative.View, {
|
|
@@ -234,7 +236,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
234
236
|
__self: _this,
|
|
235
237
|
__source: {
|
|
236
238
|
fileName: _jsxFileName,
|
|
237
|
-
lineNumber:
|
|
239
|
+
lineNumber: 215,
|
|
238
240
|
columnNumber: 7
|
|
239
241
|
}
|
|
240
242
|
}, _react["default"].createElement(_reactNative.Image, {
|
|
@@ -246,14 +248,14 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
246
248
|
__self: _this,
|
|
247
249
|
__source: {
|
|
248
250
|
fileName: _jsxFileName,
|
|
249
|
-
lineNumber:
|
|
251
|
+
lineNumber: 216,
|
|
250
252
|
columnNumber: 9
|
|
251
253
|
}
|
|
252
254
|
})), _react["default"].createElement(_reactNative.View, {
|
|
253
255
|
__self: _this,
|
|
254
256
|
__source: {
|
|
255
257
|
fileName: _jsxFileName,
|
|
256
|
-
lineNumber:
|
|
258
|
+
lineNumber: 222,
|
|
257
259
|
columnNumber: 7
|
|
258
260
|
}
|
|
259
261
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -261,7 +263,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
261
263
|
__self: _this,
|
|
262
264
|
__source: {
|
|
263
265
|
fileName: _jsxFileName,
|
|
264
|
-
lineNumber:
|
|
266
|
+
lineNumber: 223,
|
|
265
267
|
columnNumber: 9
|
|
266
268
|
}
|
|
267
269
|
}, _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -278,7 +280,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
278
280
|
__self: _this,
|
|
279
281
|
__source: {
|
|
280
282
|
fileName: _jsxFileName,
|
|
281
|
-
lineNumber:
|
|
283
|
+
lineNumber: 224,
|
|
282
284
|
columnNumber: 11
|
|
283
285
|
}
|
|
284
286
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -288,7 +290,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
288
290
|
__self: _this,
|
|
289
291
|
__source: {
|
|
290
292
|
fileName: _jsxFileName,
|
|
291
|
-
lineNumber:
|
|
293
|
+
lineNumber: 237,
|
|
292
294
|
columnNumber: 13
|
|
293
295
|
}
|
|
294
296
|
}, actions == null ? void 0 : actions[2].text)), _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -305,7 +307,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
305
307
|
__self: _this,
|
|
306
308
|
__source: {
|
|
307
309
|
fileName: _jsxFileName,
|
|
308
|
-
lineNumber:
|
|
310
|
+
lineNumber: 239,
|
|
309
311
|
columnNumber: 11
|
|
310
312
|
}
|
|
311
313
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -315,7 +317,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
315
317
|
__self: _this,
|
|
316
318
|
__source: {
|
|
317
319
|
fileName: _jsxFileName,
|
|
318
|
-
lineNumber:
|
|
320
|
+
lineNumber: 252,
|
|
319
321
|
columnNumber: 13
|
|
320
322
|
}
|
|
321
323
|
}, actions == null ? void 0 : actions[1].text)), _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -331,7 +333,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
331
333
|
__self: _this,
|
|
332
334
|
__source: {
|
|
333
335
|
fileName: _jsxFileName,
|
|
334
|
-
lineNumber:
|
|
336
|
+
lineNumber: 254,
|
|
335
337
|
columnNumber: 11
|
|
336
338
|
}
|
|
337
339
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -341,7 +343,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
341
343
|
__self: _this,
|
|
342
344
|
__source: {
|
|
343
345
|
fileName: _jsxFileName,
|
|
344
|
-
lineNumber:
|
|
346
|
+
lineNumber: 263,
|
|
345
347
|
columnNumber: 13
|
|
346
348
|
}
|
|
347
349
|
}, actions == null ? void 0 : actions[0].text))))) : _react["default"].createElement(_reactNative.TouchableOpacity, (0, _extends2["default"])({
|
|
@@ -376,7 +378,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
376
378
|
__self: _this,
|
|
377
379
|
__source: {
|
|
378
380
|
fileName: _jsxFileName,
|
|
379
|
-
lineNumber:
|
|
381
|
+
lineNumber: 269,
|
|
380
382
|
columnNumber: 5
|
|
381
383
|
}
|
|
382
384
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -386,7 +388,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
386
388
|
__self: _this,
|
|
387
389
|
__source: {
|
|
388
390
|
fileName: _jsxFileName,
|
|
389
|
-
lineNumber:
|
|
391
|
+
lineNumber: 299,
|
|
390
392
|
columnNumber: 7
|
|
391
393
|
}
|
|
392
394
|
}, _react["default"].createElement(_reactNative.Image, {
|
|
@@ -399,7 +401,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
399
401
|
__self: _this,
|
|
400
402
|
__source: {
|
|
401
403
|
fileName: _jsxFileName,
|
|
402
|
-
lineNumber:
|
|
404
|
+
lineNumber: 306,
|
|
403
405
|
columnNumber: 9
|
|
404
406
|
}
|
|
405
407
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -407,7 +409,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
407
409
|
__self: _this,
|
|
408
410
|
__source: {
|
|
409
411
|
fileName: _jsxFileName,
|
|
410
|
-
lineNumber:
|
|
412
|
+
lineNumber: 312,
|
|
411
413
|
columnNumber: 9
|
|
412
414
|
}
|
|
413
415
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -417,7 +419,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
417
419
|
__self: _this,
|
|
418
420
|
__source: {
|
|
419
421
|
fileName: _jsxFileName,
|
|
420
|
-
lineNumber:
|
|
422
|
+
lineNumber: 313,
|
|
421
423
|
columnNumber: 11
|
|
422
424
|
}
|
|
423
425
|
}, _react["default"].createElement(_Lightning.Lightning, {
|
|
@@ -427,7 +429,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
427
429
|
__self: _this,
|
|
428
430
|
__source: {
|
|
429
431
|
fileName: _jsxFileName,
|
|
430
|
-
lineNumber:
|
|
432
|
+
lineNumber: 320,
|
|
431
433
|
columnNumber: 13
|
|
432
434
|
}
|
|
433
435
|
}), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -437,7 +439,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
437
439
|
__self: _this,
|
|
438
440
|
__source: {
|
|
439
441
|
fileName: _jsxFileName,
|
|
440
|
-
lineNumber:
|
|
442
|
+
lineNumber: 321,
|
|
441
443
|
columnNumber: 13
|
|
442
444
|
}
|
|
443
445
|
}, type == null ? void 0 : type.toUpperCase())))));
|
|
@@ -509,7 +511,7 @@ var Giphy = function Giphy(props) {
|
|
|
509
511
|
__self: _this,
|
|
510
512
|
__source: {
|
|
511
513
|
fileName: _jsxFileName,
|
|
512
|
-
lineNumber:
|
|
514
|
+
lineNumber: 391,
|
|
513
515
|
columnNumber: 5
|
|
514
516
|
}
|
|
515
517
|
}));
|