stream-chat-react-native-core 5.18.0-beta.3 → 5.18.0-beta.5
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/ChannelPreview/hooks/useLatestMessagePreview.js +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +51 -28
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js +1 -1
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactions.js +51 -28
- package/lib/module/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/package.json +1 -1
- package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +4 -1
- package/src/components/Message/MessageSimple/utils/renderText.tsx +1 -1
- package/src/components/MessageOverlay/OverlayReactions.tsx +48 -27
- package/src/version.json +1 -1
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.OverlayReactions = void 0;
|
|
7
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
7
8
|
var _react = _interopRequireDefault(require("react"));
|
|
8
9
|
var _reactNative = require("react-native");
|
|
9
10
|
var _reactNativeGestureHandler = require("react-native-gesture-handler");
|
|
@@ -64,6 +65,10 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
64
65
|
fontSize: 16,
|
|
65
66
|
fontWeight: '700',
|
|
66
67
|
paddingTop: 16
|
|
68
|
+
},
|
|
69
|
+
unseenItemContainer: {
|
|
70
|
+
opacity: 0,
|
|
71
|
+
position: 'absolute'
|
|
67
72
|
}
|
|
68
73
|
});
|
|
69
74
|
var reactionData = [{
|
|
@@ -98,7 +103,7 @@ var ReactionIcon = function ReactionIcon(_ref) {
|
|
|
98
103
|
__self: _this,
|
|
99
104
|
__source: {
|
|
100
105
|
fileName: _jsxFileName,
|
|
101
|
-
lineNumber:
|
|
106
|
+
lineNumber: 127,
|
|
102
107
|
columnNumber: 10
|
|
103
108
|
}
|
|
104
109
|
});
|
|
@@ -113,6 +118,10 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
113
118
|
OverlayReactionsAvatar = props.OverlayReactionsAvatar;
|
|
114
119
|
var layoutHeight = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
115
120
|
var layoutWidth = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
121
|
+
var _React$useState = _react["default"].useState(0),
|
|
122
|
+
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
123
|
+
itemHeight = _React$useState2[0],
|
|
124
|
+
setItemHeight = _React$useState2[1];
|
|
116
125
|
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
117
126
|
_useTheme$theme = _useTheme.theme,
|
|
118
127
|
_useTheme$theme$color = _useTheme$theme.colors,
|
|
@@ -133,7 +142,6 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
133
142
|
reactionBubbleBackground = _useTheme$theme$overl2.reactionBubbleBackground,
|
|
134
143
|
titleStyle = _useTheme$theme$overl2.title;
|
|
135
144
|
var width = (0, _reactNative.useWindowDimensions)().width;
|
|
136
|
-
var height = (0, _reactNative.useWindowDimensions)().height;
|
|
137
145
|
var supportedReactionTypes = supportedReactions.map(function (supportedReaction) {
|
|
138
146
|
return supportedReaction.type;
|
|
139
147
|
});
|
|
@@ -141,7 +149,6 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
141
149
|
return supportedReactionTypes.includes(reaction.type);
|
|
142
150
|
});
|
|
143
151
|
var numColumns = Math.floor((width - overlayPadding * 2 - ((Number(flatListContainer.paddingHorizontal || 0) || styles.flatListContainer.paddingHorizontal) + (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) * 2) / (avatarSize + (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding) * 2));
|
|
144
|
-
var maxHeight = Math.floor(height - overlayPadding * 2 - ((Number(flatListContainer.paddingVertical || 0) || styles.flatListContainer.paddingVertical) + (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) * 2);
|
|
145
152
|
var renderItem = function renderItem(_ref2) {
|
|
146
153
|
var item = _ref2.item;
|
|
147
154
|
var _item$alignment = item.alignment,
|
|
@@ -157,7 +164,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
157
164
|
__self: _this,
|
|
158
165
|
__source: {
|
|
159
166
|
fileName: _jsxFileName,
|
|
160
|
-
lineNumber:
|
|
167
|
+
lineNumber: 204,
|
|
161
168
|
columnNumber: 7
|
|
162
169
|
}
|
|
163
170
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -165,7 +172,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
165
172
|
__self: _this,
|
|
166
173
|
__source: {
|
|
167
174
|
fileName: _jsxFileName,
|
|
168
|
-
lineNumber:
|
|
175
|
+
lineNumber: 205,
|
|
169
176
|
columnNumber: 9
|
|
170
177
|
}
|
|
171
178
|
}, _react["default"].createElement(OverlayReactionsAvatar, {
|
|
@@ -174,7 +181,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
174
181
|
__self: _this,
|
|
175
182
|
__source: {
|
|
176
183
|
fileName: _jsxFileName,
|
|
177
|
-
lineNumber:
|
|
184
|
+
lineNumber: 206,
|
|
178
185
|
columnNumber: 11
|
|
179
186
|
}
|
|
180
187
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -182,14 +189,14 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
182
189
|
__self: _this,
|
|
183
190
|
__source: {
|
|
184
191
|
fileName: _jsxFileName,
|
|
185
|
-
lineNumber:
|
|
192
|
+
lineNumber: 207,
|
|
186
193
|
columnNumber: 11
|
|
187
194
|
}
|
|
188
195
|
}, _react["default"].createElement(_reactNativeSvg["default"], {
|
|
189
196
|
__self: _this,
|
|
190
197
|
__source: {
|
|
191
198
|
fileName: _jsxFileName,
|
|
192
|
-
lineNumber:
|
|
199
|
+
lineNumber: 208,
|
|
193
200
|
columnNumber: 13
|
|
194
201
|
}
|
|
195
202
|
}, _react["default"].createElement(_reactNativeSvg.Circle, {
|
|
@@ -202,7 +209,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
202
209
|
__self: _this,
|
|
203
210
|
__source: {
|
|
204
211
|
fileName: _jsxFileName,
|
|
205
|
-
lineNumber:
|
|
212
|
+
lineNumber: 209,
|
|
206
213
|
columnNumber: 15
|
|
207
214
|
}
|
|
208
215
|
}), _react["default"].createElement(_reactNativeSvg.Circle, {
|
|
@@ -215,7 +222,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
215
222
|
__self: _this,
|
|
216
223
|
__source: {
|
|
217
224
|
fileName: _jsxFileName,
|
|
218
|
-
lineNumber:
|
|
225
|
+
lineNumber: 217,
|
|
219
226
|
columnNumber: 15
|
|
220
227
|
}
|
|
221
228
|
})), _react["default"].createElement(_reactNative.View, {
|
|
@@ -229,7 +236,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
229
236
|
__self: _this,
|
|
230
237
|
__source: {
|
|
231
238
|
fileName: _jsxFileName,
|
|
232
|
-
lineNumber:
|
|
239
|
+
lineNumber: 226,
|
|
233
240
|
columnNumber: 13
|
|
234
241
|
}
|
|
235
242
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -237,14 +244,14 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
237
244
|
__self: _this,
|
|
238
245
|
__source: {
|
|
239
246
|
fileName: _jsxFileName,
|
|
240
|
-
lineNumber:
|
|
247
|
+
lineNumber: 239,
|
|
241
248
|
columnNumber: 13
|
|
242
249
|
}
|
|
243
250
|
}, _react["default"].createElement(_reactNativeSvg["default"], {
|
|
244
251
|
__self: _this,
|
|
245
252
|
__source: {
|
|
246
253
|
fileName: _jsxFileName,
|
|
247
|
-
lineNumber:
|
|
254
|
+
lineNumber: 240,
|
|
248
255
|
columnNumber: 15
|
|
249
256
|
}
|
|
250
257
|
}, _react["default"].createElement(_reactNativeSvg.Circle, {
|
|
@@ -255,7 +262,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
255
262
|
__self: _this,
|
|
256
263
|
__source: {
|
|
257
264
|
fileName: _jsxFileName,
|
|
258
|
-
lineNumber:
|
|
265
|
+
lineNumber: 241,
|
|
259
266
|
columnNumber: 17
|
|
260
267
|
}
|
|
261
268
|
}))), _react["default"].createElement(_reactNative.View, {
|
|
@@ -269,7 +276,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
269
276
|
__self: _this,
|
|
270
277
|
__source: {
|
|
271
278
|
fileName: _jsxFileName,
|
|
272
|
-
lineNumber:
|
|
279
|
+
lineNumber: 249,
|
|
273
280
|
columnNumber: 13
|
|
274
281
|
}
|
|
275
282
|
}, _react["default"].createElement(ReactionIcon, {
|
|
@@ -280,7 +287,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
280
287
|
__self: _this,
|
|
281
288
|
__source: {
|
|
282
289
|
fileName: _jsxFileName,
|
|
283
|
-
lineNumber:
|
|
290
|
+
lineNumber: 266,
|
|
284
291
|
columnNumber: 15
|
|
285
292
|
}
|
|
286
293
|
})))), _react["default"].createElement(_reactNative.View, {
|
|
@@ -288,7 +295,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
288
295
|
__self: _this,
|
|
289
296
|
__source: {
|
|
290
297
|
fileName: _jsxFileName,
|
|
291
|
-
lineNumber:
|
|
298
|
+
lineNumber: 275,
|
|
292
299
|
columnNumber: 9
|
|
293
300
|
}
|
|
294
301
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -298,7 +305,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
298
305
|
__self: _this,
|
|
299
306
|
__source: {
|
|
300
307
|
fileName: _jsxFileName,
|
|
301
|
-
lineNumber:
|
|
308
|
+
lineNumber: 276,
|
|
302
309
|
columnNumber: 11
|
|
303
310
|
}
|
|
304
311
|
}, name)));
|
|
@@ -314,20 +321,21 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
314
321
|
}]
|
|
315
322
|
};
|
|
316
323
|
}, [overlayAlignment]);
|
|
317
|
-
return _react["default"].createElement(_reactNativeReanimated["default"].View, {
|
|
324
|
+
return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNativeReanimated["default"].View, {
|
|
318
325
|
onLayout: function onLayout(_ref3) {
|
|
319
326
|
var layout = _ref3.nativeEvent.layout;
|
|
320
327
|
layoutWidth.value = layout.width;
|
|
321
328
|
layoutHeight.value = layout.height;
|
|
322
329
|
},
|
|
323
330
|
style: [styles.container, {
|
|
324
|
-
backgroundColor: white
|
|
331
|
+
backgroundColor: white,
|
|
332
|
+
opacity: itemHeight ? 1 : 0
|
|
325
333
|
}, container, showScreenStyle],
|
|
326
334
|
__self: _this,
|
|
327
335
|
__source: {
|
|
328
336
|
fileName: _jsxFileName,
|
|
329
|
-
lineNumber:
|
|
330
|
-
columnNumber:
|
|
337
|
+
lineNumber: 305,
|
|
338
|
+
columnNumber: 7
|
|
331
339
|
}
|
|
332
340
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
333
341
|
style: [styles.title, {
|
|
@@ -336,12 +344,13 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
336
344
|
__self: _this,
|
|
337
345
|
__source: {
|
|
338
346
|
fileName: _jsxFileName,
|
|
339
|
-
lineNumber:
|
|
340
|
-
columnNumber:
|
|
347
|
+
lineNumber: 317,
|
|
348
|
+
columnNumber: 9
|
|
341
349
|
}
|
|
342
350
|
}, title), _react["default"].createElement(_reactNativeGestureHandler.FlatList, {
|
|
343
351
|
contentContainerStyle: styles.flatListContentContainer,
|
|
344
352
|
data: filteredReactions,
|
|
353
|
+
key: numColumns,
|
|
345
354
|
keyExtractor: function keyExtractor(_ref4, index) {
|
|
346
355
|
var name = _ref4.name;
|
|
347
356
|
return name + "_" + index;
|
|
@@ -349,15 +358,29 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
349
358
|
numColumns: numColumns,
|
|
350
359
|
renderItem: renderItem,
|
|
351
360
|
style: [styles.flatListContainer, flatListContainer, {
|
|
352
|
-
maxHeight:
|
|
361
|
+
maxHeight: itemHeight + (filteredReactions.length / numColumns > 1 ? itemHeight / 8 : 0)
|
|
353
362
|
}],
|
|
354
363
|
__self: _this,
|
|
355
364
|
__source: {
|
|
356
365
|
fileName: _jsxFileName,
|
|
357
|
-
lineNumber:
|
|
358
|
-
columnNumber:
|
|
366
|
+
lineNumber: 318,
|
|
367
|
+
columnNumber: 9
|
|
368
|
+
}
|
|
369
|
+
}), _react["default"].createElement(_reactNative.View, {
|
|
370
|
+
onLayout: function onLayout(_ref5) {
|
|
371
|
+
var layout = _ref5.nativeEvent.layout;
|
|
372
|
+
setItemHeight(layout.height);
|
|
373
|
+
},
|
|
374
|
+
style: [styles.unseenItemContainer, styles.flatListContentContainer],
|
|
375
|
+
__self: _this,
|
|
376
|
+
__source: {
|
|
377
|
+
fileName: _jsxFileName,
|
|
378
|
+
lineNumber: 336,
|
|
379
|
+
columnNumber: 9
|
|
359
380
|
}
|
|
360
|
-
}
|
|
381
|
+
}, renderItem({
|
|
382
|
+
item: filteredReactions[0]
|
|
383
|
+
}))));
|
|
361
384
|
};
|
|
362
385
|
exports.OverlayReactions = OverlayReactions;
|
|
363
386
|
OverlayReactions.displayName = 'OverlayReactions{overlay{reactions}}';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_reactNativeSvg","_ThemeContext","_icons","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","avatarContainer","padding","avatarInnerContainer","alignSelf","avatarName","flex","fontSize","fontWeight","paddingTop","textAlign","avatarNameContainer","alignItems","flexDirection","flexGrow","container","borderRadius","marginTop","width","flatListContainer","paddingHorizontal","paddingVertical","flatListContentContainer","paddingBottom","reactionBubble","justifyContent","position","reactionBubbleBackground","height","title","reactionData","Icon","LoveReaction","type","ThumbsUpReaction","ThumbsDownReaction","LOLReaction","WutReaction","ReactionIcon","_ref","_supportedReactions$f","pathFill","size","supportedReactions","find","reaction","Unknown","createElement","__self","__source","fileName","lineNumber","columnNumber","OverlayReactions","props","overlayAlignment","alignment","reactions","_props$supportedReact","showScreen","OverlayReactionsAvatar","layoutHeight","useSharedValue","layoutWidth","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","black","grey_gainsboro","white","_useTheme$theme$overl","overlay","overlayPadding","_useTheme$theme$overl2","avatarSize","radius","titleStyle","useWindowDimensions","supportedReactionTypes","map","supportedReaction","filteredReactions","filter","includes","numColumns","Math","floor","Number","maxHeight","renderItem","_ref2","item","_item$alignment","name","x","y","left","top","View","style","absoluteFill","Circle","cx","cy","fill","r","stroke","strokeWidth","backgroundColor","borderColor","borderWidth","Text","color","showScreenStyle","useAnimatedStyle","transform","translateY","interpolate","value","translateX","scale","onLayout","_ref3","layout","nativeEvent","FlatList","contentContainerStyle","data","keyExtractor","_ref4","index","exports","displayName"],"sources":["OverlayReactions.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, useWindowDimensions, View, ViewStyle } from 'react-native';\nimport { FlatList } from 'react-native-gesture-handler';\nimport Animated, { interpolate, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';\nimport Svg, { Circle } from 'react-native-svg';\n\nimport type { Alignment } from '../../contexts/messageContext/MessageContext';\nimport type { MessageOverlayContextValue } from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n LOLReaction,\n LoveReaction,\n ThumbsDownReaction,\n ThumbsUpReaction,\n Unknown,\n WutReaction,\n} from '../../icons';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { ReactionData } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n avatarContainer: {\n padding: 8,\n },\n avatarInnerContainer: {\n alignSelf: 'center',\n },\n avatarName: {\n flex: 1,\n fontSize: 12,\n fontWeight: '700',\n paddingTop: 6,\n textAlign: 'center',\n },\n avatarNameContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n flexGrow: 1,\n },\n container: {\n alignItems: 'center',\n borderRadius: 16,\n marginTop: 8,\n width: '100%',\n },\n flatListContainer: {\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n flatListContentContainer: {\n alignItems: 'center',\n paddingBottom: 12,\n },\n reactionBubble: {\n alignItems: 'center',\n borderRadius: 24,\n justifyContent: 'center',\n position: 'absolute',\n },\n reactionBubbleBackground: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n width: 24,\n },\n title: {\n fontSize: 16,\n fontWeight: '700',\n paddingTop: 16,\n },\n});\n\nconst reactionData: ReactionData[] = [\n {\n Icon: LoveReaction,\n type: 'love',\n },\n {\n Icon: ThumbsUpReaction,\n type: 'like',\n },\n {\n Icon: ThumbsDownReaction,\n type: 'sad',\n },\n {\n Icon: LOLReaction,\n type: 'haha',\n },\n {\n Icon: WutReaction,\n type: 'wow',\n },\n];\n\nexport type Reaction = {\n alignment: Alignment;\n id: string;\n name: string;\n type: string;\n image?: string;\n};\n\nexport type OverlayReactionsProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageOverlayContextValue<StreamChatGenerics>, 'OverlayReactionsAvatar'> & {\n reactions: Reaction[];\n showScreen: Animated.SharedValue<number>;\n title: string;\n alignment?: Alignment;\n supportedReactions?: ReactionData[];\n};\n\nconst ReactionIcon: React.FC<\n Pick<Reaction, 'type'> & {\n pathFill: string;\n size: number;\n supportedReactions: ReactionData[];\n }\n> = ({ pathFill, size, supportedReactions, type }) => {\n const Icon = supportedReactions.find((reaction) => reaction.type === type)?.Icon || Unknown;\n return <Icon height={size} pathFill={pathFill} width={size} />;\n};\n\n/**\n * OverlayReactions - A high level component which implements all the logic required for message overlay reactions\n */\nexport const OverlayReactions: React.FC<OverlayReactionsProps> = (props) => {\n const {\n alignment: overlayAlignment,\n reactions,\n supportedReactions = reactionData,\n showScreen,\n title,\n OverlayReactionsAvatar,\n } = props;\n const layoutHeight = useSharedValue(0);\n const layoutWidth = useSharedValue(0);\n\n const {\n theme: {\n colors: { accent_blue, black, grey_gainsboro, white },\n overlay: {\n padding: overlayPadding,\n reactions: {\n avatarContainer,\n avatarName,\n avatarSize,\n container,\n flatListContainer,\n radius,\n reactionBubble,\n reactionBubbleBackground,\n title: titleStyle,\n },\n },\n },\n } = useTheme();\n\n const width = useWindowDimensions().width;\n const height = useWindowDimensions().height;\n\n const supportedReactionTypes = supportedReactions.map(\n (supportedReaction) => supportedReaction.type,\n );\n\n const filteredReactions = reactions.filter((reaction) =>\n supportedReactionTypes.includes(reaction.type),\n );\n\n const numColumns = Math.floor(\n (width -\n overlayPadding * 2 -\n ((Number(flatListContainer.paddingHorizontal || 0) ||\n styles.flatListContainer.paddingHorizontal) +\n (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *\n 2) /\n (avatarSize + (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding) * 2),\n );\n\n const maxHeight = Math.floor(\n height -\n overlayPadding * 2 -\n ((Number(flatListContainer.paddingVertical || 0) ||\n styles.flatListContainer.paddingVertical) +\n (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *\n 2,\n );\n\n const renderItem = ({ item }: { item: Reaction }) => {\n const { alignment = 'left', name, type } = item;\n const x = avatarSize / 2 - (avatarSize / (radius * 4)) * (alignment === 'left' ? 1 : -1);\n const y = avatarSize - radius;\n\n const left =\n alignment === 'left'\n ? x -\n (Number(reactionBubbleBackground.width || 0) || styles.reactionBubbleBackground.width) +\n radius\n : x - radius;\n const top =\n y -\n radius -\n (Number(reactionBubbleBackground.height || 0) || styles.reactionBubbleBackground.height);\n\n return (\n <View style={[styles.avatarContainer, avatarContainer]}>\n <View style={styles.avatarInnerContainer}>\n <OverlayReactionsAvatar reaction={item} size={avatarSize} />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n <Circle\n cx={x}\n cy={y}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n </Svg>\n <View\n style={[\n styles.reactionBubbleBackground,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n borderColor: alignment === 'left' ? white : grey_gainsboro,\n borderWidth: radius / 2,\n left,\n top,\n },\n reactionBubbleBackground,\n ]}\n />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2 - radius / 2}\n />\n </Svg>\n </View>\n <View\n style={[\n styles.reactionBubble,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n height:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n left,\n top,\n width:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n },\n reactionBubble,\n ]}\n >\n <ReactionIcon\n pathFill={accent_blue}\n size={(reactionBubble.borderRadius || styles.reactionBubble.borderRadius) / 2}\n supportedReactions={supportedReactions}\n type={type}\n />\n </View>\n </View>\n </View>\n <View style={styles.avatarNameContainer}>\n <Text style={[styles.avatarName, { color: black }, avatarName]}>{name}</Text>\n </View>\n </View>\n );\n };\n\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: interpolate(showScreen.value, [0, 1], [-layoutHeight.value / 2, 0]),\n },\n {\n translateX: interpolate(\n showScreen.value,\n [0, 1],\n [overlayAlignment === 'left' ? -layoutWidth.value / 2 : layoutWidth.value / 2, 0],\n ),\n },\n {\n scale: showScreen.value,\n },\n ],\n }),\n [overlayAlignment],\n );\n\n return (\n <Animated.View\n onLayout={({ nativeEvent: { layout } }) => {\n layoutWidth.value = layout.width;\n layoutHeight.value = layout.height;\n }}\n style={[styles.container, { backgroundColor: white }, container, showScreenStyle]}\n >\n <Text style={[styles.title, { color: black }, titleStyle]}>{title}</Text>\n <FlatList\n contentContainerStyle={styles.flatListContentContainer}\n data={filteredReactions}\n keyExtractor={({ name }, index) => `${name}_${index}`}\n numColumns={numColumns}\n renderItem={renderItem}\n style={[styles.flatListContainer, flatListContainer, { maxHeight: maxHeight / numColumns }]}\n />\n </Animated.View>\n );\n};\n\nOverlayReactions.displayName = 'OverlayReactions{overlay{reactions}}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_reactNativeSvg","_ThemeContext","_icons","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","avatarContainer","padding","avatarInnerContainer","alignSelf","avatarName","flex","fontSize","fontWeight","paddingTop","textAlign","avatarNameContainer","alignItems","flexDirection","flexGrow","container","borderRadius","marginTop","width","flatListContainer","paddingHorizontal","paddingVertical","flatListContentContainer","paddingBottom","reactionBubble","justifyContent","position","reactionBubbleBackground","height","title","unseenItemContainer","opacity","reactionData","Icon","LoveReaction","type","ThumbsUpReaction","ThumbsDownReaction","LOLReaction","WutReaction","ReactionIcon","_ref","_supportedReactions$f","pathFill","size","supportedReactions","find","reaction","Unknown","createElement","__self","__source","fileName","lineNumber","columnNumber","OverlayReactions","props","overlayAlignment","alignment","reactions","_props$supportedReact","showScreen","OverlayReactionsAvatar","layoutHeight","useSharedValue","layoutWidth","_React$useState","React","useState","_React$useState2","_slicedToArray2","itemHeight","setItemHeight","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","black","grey_gainsboro","white","_useTheme$theme$overl","overlay","overlayPadding","_useTheme$theme$overl2","avatarSize","radius","titleStyle","useWindowDimensions","supportedReactionTypes","map","supportedReaction","filteredReactions","filter","includes","numColumns","Math","floor","Number","renderItem","_ref2","item","_item$alignment","name","x","y","left","top","View","style","absoluteFill","Circle","cx","cy","fill","r","stroke","strokeWidth","backgroundColor","borderColor","borderWidth","Text","color","showScreenStyle","useAnimatedStyle","transform","translateY","interpolate","value","translateX","scale","Fragment","onLayout","_ref3","layout","nativeEvent","FlatList","contentContainerStyle","data","keyExtractor","_ref4","index","maxHeight","length","_ref5","exports","displayName"],"sources":["OverlayReactions.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, useWindowDimensions, View, ViewStyle } from 'react-native';\nimport { FlatList } from 'react-native-gesture-handler';\nimport Animated, { interpolate, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';\nimport Svg, { Circle } from 'react-native-svg';\n\nimport type { Alignment } from '../../contexts/messageContext/MessageContext';\nimport type { MessageOverlayContextValue } from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n LOLReaction,\n LoveReaction,\n ThumbsDownReaction,\n ThumbsUpReaction,\n Unknown,\n WutReaction,\n} from '../../icons';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { ReactionData } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n avatarContainer: {\n padding: 8,\n },\n avatarInnerContainer: {\n alignSelf: 'center',\n },\n avatarName: {\n flex: 1,\n fontSize: 12,\n fontWeight: '700',\n paddingTop: 6,\n textAlign: 'center',\n },\n avatarNameContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n flexGrow: 1,\n },\n container: {\n alignItems: 'center',\n borderRadius: 16,\n marginTop: 8,\n width: '100%',\n },\n flatListContainer: {\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n flatListContentContainer: {\n alignItems: 'center',\n paddingBottom: 12,\n },\n reactionBubble: {\n alignItems: 'center',\n borderRadius: 24,\n justifyContent: 'center',\n position: 'absolute',\n },\n reactionBubbleBackground: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n width: 24,\n },\n title: {\n fontSize: 16,\n fontWeight: '700',\n paddingTop: 16,\n },\n unseenItemContainer: {\n opacity: 0,\n position: 'absolute',\n },\n});\n\nconst reactionData: ReactionData[] = [\n {\n Icon: LoveReaction,\n type: 'love',\n },\n {\n Icon: ThumbsUpReaction,\n type: 'like',\n },\n {\n Icon: ThumbsDownReaction,\n type: 'sad',\n },\n {\n Icon: LOLReaction,\n type: 'haha',\n },\n {\n Icon: WutReaction,\n type: 'wow',\n },\n];\n\nexport type Reaction = {\n alignment: Alignment;\n id: string;\n name: string;\n type: string;\n image?: string;\n};\n\nexport type OverlayReactionsProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageOverlayContextValue<StreamChatGenerics>, 'OverlayReactionsAvatar'> & {\n reactions: Reaction[];\n showScreen: Animated.SharedValue<number>;\n title: string;\n alignment?: Alignment;\n supportedReactions?: ReactionData[];\n};\n\nconst ReactionIcon: React.FC<\n Pick<Reaction, 'type'> & {\n pathFill: string;\n size: number;\n supportedReactions: ReactionData[];\n }\n> = ({ pathFill, size, supportedReactions, type }) => {\n const Icon = supportedReactions.find((reaction) => reaction.type === type)?.Icon || Unknown;\n return <Icon height={size} pathFill={pathFill} width={size} />;\n};\n\n/**\n * OverlayReactions - A high level component which implements all the logic required for message overlay reactions\n */\nexport const OverlayReactions: React.FC<OverlayReactionsProps> = (props) => {\n const {\n alignment: overlayAlignment,\n reactions,\n supportedReactions = reactionData,\n showScreen,\n title,\n OverlayReactionsAvatar,\n } = props;\n const layoutHeight = useSharedValue(0);\n const layoutWidth = useSharedValue(0);\n\n const [itemHeight, setItemHeight] = React.useState(0);\n\n const {\n theme: {\n colors: { accent_blue, black, grey_gainsboro, white },\n overlay: {\n padding: overlayPadding,\n reactions: {\n avatarContainer,\n avatarName,\n avatarSize,\n container,\n flatListContainer,\n radius,\n reactionBubble,\n reactionBubbleBackground,\n title: titleStyle,\n },\n },\n },\n } = useTheme();\n\n const width = useWindowDimensions().width;\n\n const supportedReactionTypes = supportedReactions.map(\n (supportedReaction) => supportedReaction.type,\n );\n\n const filteredReactions = reactions.filter((reaction) =>\n supportedReactionTypes.includes(reaction.type),\n );\n\n const numColumns = Math.floor(\n (width -\n overlayPadding * 2 -\n ((Number(flatListContainer.paddingHorizontal || 0) ||\n styles.flatListContainer.paddingHorizontal) +\n (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *\n 2) /\n (avatarSize + (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding) * 2),\n );\n\n const renderItem = ({ item }: { item: Reaction }) => {\n const { alignment = 'left', name, type } = item;\n const x = avatarSize / 2 - (avatarSize / (radius * 4)) * (alignment === 'left' ? 1 : -1);\n const y = avatarSize - radius;\n\n const left =\n alignment === 'left'\n ? x -\n (Number(reactionBubbleBackground.width || 0) || styles.reactionBubbleBackground.width) +\n radius\n : x - radius;\n const top =\n y -\n radius -\n (Number(reactionBubbleBackground.height || 0) || styles.reactionBubbleBackground.height);\n\n return (\n <View style={[styles.avatarContainer, avatarContainer]}>\n <View style={styles.avatarInnerContainer}>\n <OverlayReactionsAvatar reaction={item} size={avatarSize} />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n <Circle\n cx={x}\n cy={y}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n </Svg>\n <View\n style={[\n styles.reactionBubbleBackground,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n borderColor: alignment === 'left' ? white : grey_gainsboro,\n borderWidth: radius / 2,\n left,\n top,\n },\n reactionBubbleBackground,\n ]}\n />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2 - radius / 2}\n />\n </Svg>\n </View>\n <View\n style={[\n styles.reactionBubble,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n height:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n left,\n top,\n width:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n },\n reactionBubble,\n ]}\n >\n <ReactionIcon\n pathFill={accent_blue}\n size={(reactionBubble.borderRadius || styles.reactionBubble.borderRadius) / 2}\n supportedReactions={supportedReactions}\n type={type}\n />\n </View>\n </View>\n </View>\n <View style={styles.avatarNameContainer}>\n <Text style={[styles.avatarName, { color: black }, avatarName]}>{name}</Text>\n </View>\n </View>\n );\n };\n\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: interpolate(showScreen.value, [0, 1], [-layoutHeight.value / 2, 0]),\n },\n {\n translateX: interpolate(\n showScreen.value,\n [0, 1],\n [overlayAlignment === 'left' ? -layoutWidth.value / 2 : layoutWidth.value / 2, 0],\n ),\n },\n {\n scale: showScreen.value,\n },\n ],\n }),\n [overlayAlignment],\n );\n\n return (\n <>\n <Animated.View\n onLayout={({ nativeEvent: { layout } }) => {\n layoutWidth.value = layout.width;\n layoutHeight.value = layout.height;\n }}\n style={[\n styles.container,\n { backgroundColor: white, opacity: itemHeight ? 1 : 0 },\n container,\n showScreenStyle,\n ]}\n >\n <Text style={[styles.title, { color: black }, titleStyle]}>{title}</Text>\n <FlatList\n contentContainerStyle={styles.flatListContentContainer}\n data={filteredReactions}\n key={numColumns}\n keyExtractor={({ name }, index) => `${name}_${index}`}\n numColumns={numColumns}\n renderItem={renderItem}\n style={[\n styles.flatListContainer,\n flatListContainer,\n {\n // we show the item height plus a little extra to tease for scrolling if there are more than one row\n maxHeight:\n itemHeight + (filteredReactions.length / numColumns > 1 ? itemHeight / 8 : 0),\n },\n ]}\n />\n {/* The below view is unseen by the user, we use it to compute the height that the item must be */}\n <View\n onLayout={({ nativeEvent: { layout } }) => {\n setItemHeight(layout.height);\n }}\n style={[styles.unseenItemContainer, styles.flatListContentContainer]}\n >\n {renderItem({ item: filteredReactions[0] })}\n </View>\n </Animated.View>\n </>\n );\n};\n\nOverlayReactions.displayName = 'OverlayReactions{overlay{reactions}}';\n"],"mappings":"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"}
|
package/lib/module/version.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stream-chat-react-native-core",
|
|
3
3
|
"description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
|
|
4
|
-
"version": "5.18.0-beta.
|
|
4
|
+
"version": "5.18.0-beta.5",
|
|
5
5
|
"author": {
|
|
6
6
|
"company": "Stream.io Inc",
|
|
7
7
|
"name": "Stream.io Inc"
|
|
@@ -69,6 +69,10 @@ const styles = StyleSheet.create({
|
|
|
69
69
|
fontWeight: '700',
|
|
70
70
|
paddingTop: 16,
|
|
71
71
|
},
|
|
72
|
+
unseenItemContainer: {
|
|
73
|
+
opacity: 0,
|
|
74
|
+
position: 'absolute',
|
|
75
|
+
},
|
|
72
76
|
});
|
|
73
77
|
|
|
74
78
|
const reactionData: ReactionData[] = [
|
|
@@ -138,6 +142,8 @@ export const OverlayReactions: React.FC<OverlayReactionsProps> = (props) => {
|
|
|
138
142
|
const layoutHeight = useSharedValue(0);
|
|
139
143
|
const layoutWidth = useSharedValue(0);
|
|
140
144
|
|
|
145
|
+
const [itemHeight, setItemHeight] = React.useState(0);
|
|
146
|
+
|
|
141
147
|
const {
|
|
142
148
|
theme: {
|
|
143
149
|
colors: { accent_blue, black, grey_gainsboro, white },
|
|
@@ -159,7 +165,6 @@ export const OverlayReactions: React.FC<OverlayReactionsProps> = (props) => {
|
|
|
159
165
|
} = useTheme();
|
|
160
166
|
|
|
161
167
|
const width = useWindowDimensions().width;
|
|
162
|
-
const height = useWindowDimensions().height;
|
|
163
168
|
|
|
164
169
|
const supportedReactionTypes = supportedReactions.map(
|
|
165
170
|
(supportedReaction) => supportedReaction.type,
|
|
@@ -179,15 +184,6 @@ export const OverlayReactions: React.FC<OverlayReactionsProps> = (props) => {
|
|
|
179
184
|
(avatarSize + (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding) * 2),
|
|
180
185
|
);
|
|
181
186
|
|
|
182
|
-
const maxHeight = Math.floor(
|
|
183
|
-
height -
|
|
184
|
-
overlayPadding * 2 -
|
|
185
|
-
((Number(flatListContainer.paddingVertical || 0) ||
|
|
186
|
-
styles.flatListContainer.paddingVertical) +
|
|
187
|
-
(Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *
|
|
188
|
-
2,
|
|
189
|
-
);
|
|
190
|
-
|
|
191
187
|
const renderItem = ({ item }: { item: Reaction }) => {
|
|
192
188
|
const { alignment = 'left', name, type } = item;
|
|
193
189
|
const x = avatarSize / 2 - (avatarSize / (radius * 4)) * (alignment === 'left' ? 1 : -1);
|
|
@@ -305,23 +301,48 @@ export const OverlayReactions: React.FC<OverlayReactionsProps> = (props) => {
|
|
|
305
301
|
);
|
|
306
302
|
|
|
307
303
|
return (
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
304
|
+
<>
|
|
305
|
+
<Animated.View
|
|
306
|
+
onLayout={({ nativeEvent: { layout } }) => {
|
|
307
|
+
layoutWidth.value = layout.width;
|
|
308
|
+
layoutHeight.value = layout.height;
|
|
309
|
+
}}
|
|
310
|
+
style={[
|
|
311
|
+
styles.container,
|
|
312
|
+
{ backgroundColor: white, opacity: itemHeight ? 1 : 0 },
|
|
313
|
+
container,
|
|
314
|
+
showScreenStyle,
|
|
315
|
+
]}
|
|
316
|
+
>
|
|
317
|
+
<Text style={[styles.title, { color: black }, titleStyle]}>{title}</Text>
|
|
318
|
+
<FlatList
|
|
319
|
+
contentContainerStyle={styles.flatListContentContainer}
|
|
320
|
+
data={filteredReactions}
|
|
321
|
+
key={numColumns}
|
|
322
|
+
keyExtractor={({ name }, index) => `${name}_${index}`}
|
|
323
|
+
numColumns={numColumns}
|
|
324
|
+
renderItem={renderItem}
|
|
325
|
+
style={[
|
|
326
|
+
styles.flatListContainer,
|
|
327
|
+
flatListContainer,
|
|
328
|
+
{
|
|
329
|
+
// we show the item height plus a little extra to tease for scrolling if there are more than one row
|
|
330
|
+
maxHeight:
|
|
331
|
+
itemHeight + (filteredReactions.length / numColumns > 1 ? itemHeight / 8 : 0),
|
|
332
|
+
},
|
|
333
|
+
]}
|
|
334
|
+
/>
|
|
335
|
+
{/* The below view is unseen by the user, we use it to compute the height that the item must be */}
|
|
336
|
+
<View
|
|
337
|
+
onLayout={({ nativeEvent: { layout } }) => {
|
|
338
|
+
setItemHeight(layout.height);
|
|
339
|
+
}}
|
|
340
|
+
style={[styles.unseenItemContainer, styles.flatListContentContainer]}
|
|
341
|
+
>
|
|
342
|
+
{renderItem({ item: filteredReactions[0] })}
|
|
343
|
+
</View>
|
|
344
|
+
</Animated.View>
|
|
345
|
+
</>
|
|
325
346
|
);
|
|
326
347
|
};
|
|
327
348
|
|
package/src/version.json
CHANGED