stream-chat-react-native-core 5.15.3-beta.2 → 5.15.3-beta.3
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/ChannelPreviewMessenger.js +35 -14
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +35 -14
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/package.json +1 -1
- package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +12 -2
- package/src/version.json +1 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
2
3
|
Object.defineProperty(exports, "__esModule", {
|
|
3
4
|
value: true
|
|
4
5
|
});
|
|
5
6
|
exports.ChannelPreviewMessenger = void 0;
|
|
6
7
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
|
-
var
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
10
|
var _reactNative = require("react-native");
|
|
9
11
|
var _reactNativeGestureHandler = require("react-native-gesture-handler");
|
|
10
12
|
var _ChannelAvatar = require("./ChannelAvatar");
|
|
@@ -15,10 +17,13 @@ var _ChannelPreviewTitle = require("./ChannelPreviewTitle");
|
|
|
15
17
|
var _ChannelPreviewUnreadCount = require("./ChannelPreviewUnreadCount");
|
|
16
18
|
var _useChannelPreviewDisplayName = require("./hooks/useChannelPreviewDisplayName");
|
|
17
19
|
var _ChannelsContext = require("../../contexts/channelsContext/ChannelsContext");
|
|
20
|
+
var _ChatContext = require("../../contexts/chatContext/ChatContext");
|
|
18
21
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
19
22
|
var _utils = require("../../utils/utils");
|
|
20
23
|
var _this = this,
|
|
21
24
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx";
|
|
25
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
22
27
|
var styles = _reactNative.StyleSheet.create({
|
|
23
28
|
container: {
|
|
24
29
|
borderBottomWidth: 1,
|
|
@@ -76,8 +81,24 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
76
81
|
_useTheme$theme$color = _useTheme$theme.colors,
|
|
77
82
|
border = _useTheme$theme$color.border,
|
|
78
83
|
white_snow = _useTheme$theme$color.white_snow;
|
|
84
|
+
var _useChatContext = (0, _ChatContext.useChatContext)(),
|
|
85
|
+
client = _useChatContext.client;
|
|
79
86
|
var displayName = (0, _useChannelPreviewDisplayName.useChannelPreviewDisplayName)(channel, Math.floor(maxWidth / ((title.fontSize || styles.title.fontSize) / 2)));
|
|
80
|
-
var
|
|
87
|
+
var _useState = (0, _react.useState)(function () {
|
|
88
|
+
return channel.muteStatus().muted;
|
|
89
|
+
}),
|
|
90
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
91
|
+
isChannelMuted = _useState2[0],
|
|
92
|
+
setIsChannelMuted = _useState2[1];
|
|
93
|
+
(0, _react.useEffect)(function () {
|
|
94
|
+
var handleEvent = function handleEvent() {
|
|
95
|
+
return setIsChannelMuted(channel.muteStatus().muted);
|
|
96
|
+
};
|
|
97
|
+
client.on('notification.channel_mutes_updated', handleEvent);
|
|
98
|
+
return function () {
|
|
99
|
+
return client.off('notification.channel_mutes_updated', handleEvent);
|
|
100
|
+
};
|
|
101
|
+
}, []);
|
|
81
102
|
return _react["default"].createElement(_reactNativeGestureHandler.TouchableOpacity, {
|
|
82
103
|
onPress: function onPress() {
|
|
83
104
|
if (onSelect) {
|
|
@@ -92,7 +113,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
92
113
|
__self: _this,
|
|
93
114
|
__source: {
|
|
94
115
|
fileName: _jsxFileName,
|
|
95
|
-
lineNumber:
|
|
116
|
+
lineNumber: 148,
|
|
96
117
|
columnNumber: 5
|
|
97
118
|
}
|
|
98
119
|
}, _react["default"].createElement(PreviewAvatar, {
|
|
@@ -100,7 +121,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
100
121
|
__self: _this,
|
|
101
122
|
__source: {
|
|
102
123
|
fileName: _jsxFileName,
|
|
103
|
-
lineNumber:
|
|
124
|
+
lineNumber: 161,
|
|
104
125
|
columnNumber: 7
|
|
105
126
|
}
|
|
106
127
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -109,7 +130,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
109
130
|
__self: _this,
|
|
110
131
|
__source: {
|
|
111
132
|
fileName: _jsxFileName,
|
|
112
|
-
lineNumber:
|
|
133
|
+
lineNumber: 162,
|
|
113
134
|
columnNumber: 7
|
|
114
135
|
}
|
|
115
136
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -117,7 +138,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
117
138
|
__self: _this,
|
|
118
139
|
__source: {
|
|
119
140
|
fileName: _jsxFileName,
|
|
120
|
-
lineNumber:
|
|
141
|
+
lineNumber: 166,
|
|
121
142
|
columnNumber: 9
|
|
122
143
|
}
|
|
123
144
|
}, _react["default"].createElement(PreviewTitle, {
|
|
@@ -126,7 +147,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
126
147
|
__self: _this,
|
|
127
148
|
__source: {
|
|
128
149
|
fileName: _jsxFileName,
|
|
129
|
-
lineNumber:
|
|
150
|
+
lineNumber: 167,
|
|
130
151
|
columnNumber: 11
|
|
131
152
|
}
|
|
132
153
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -134,14 +155,14 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
134
155
|
__self: _this,
|
|
135
156
|
__source: {
|
|
136
157
|
fileName: _jsxFileName,
|
|
137
|
-
lineNumber:
|
|
158
|
+
lineNumber: 168,
|
|
138
159
|
columnNumber: 11
|
|
139
160
|
}
|
|
140
161
|
}, isChannelMuted && _react["default"].createElement(PreviewMutedStatus, {
|
|
141
162
|
__self: _this,
|
|
142
163
|
__source: {
|
|
143
164
|
fileName: _jsxFileName,
|
|
144
|
-
lineNumber:
|
|
165
|
+
lineNumber: 169,
|
|
145
166
|
columnNumber: 32
|
|
146
167
|
}
|
|
147
168
|
}), _react["default"].createElement(PreviewUnreadCount, {
|
|
@@ -151,7 +172,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
151
172
|
__self: _this,
|
|
152
173
|
__source: {
|
|
153
174
|
fileName: _jsxFileName,
|
|
154
|
-
lineNumber:
|
|
175
|
+
lineNumber: 170,
|
|
155
176
|
columnNumber: 13
|
|
156
177
|
}
|
|
157
178
|
}))), _react["default"].createElement(_reactNative.View, {
|
|
@@ -159,7 +180,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
159
180
|
__self: _this,
|
|
160
181
|
__source: {
|
|
161
182
|
fileName: _jsxFileName,
|
|
162
|
-
lineNumber:
|
|
183
|
+
lineNumber: 173,
|
|
163
184
|
columnNumber: 9
|
|
164
185
|
}
|
|
165
186
|
}, _react["default"].createElement(PreviewMessage, {
|
|
@@ -167,7 +188,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
167
188
|
__self: _this,
|
|
168
189
|
__source: {
|
|
169
190
|
fileName: _jsxFileName,
|
|
170
|
-
lineNumber:
|
|
191
|
+
lineNumber: 174,
|
|
171
192
|
columnNumber: 11
|
|
172
193
|
}
|
|
173
194
|
}), _react["default"].createElement(PreviewStatus, {
|
|
@@ -177,7 +198,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
177
198
|
__self: _this,
|
|
178
199
|
__source: {
|
|
179
200
|
fileName: _jsxFileName,
|
|
180
|
-
lineNumber:
|
|
201
|
+
lineNumber: 175,
|
|
181
202
|
columnNumber: 11
|
|
182
203
|
}
|
|
183
204
|
}))));
|
|
@@ -206,7 +227,7 @@ var ChannelPreviewMessenger = function ChannelPreviewMessenger(props) {
|
|
|
206
227
|
__self: _this,
|
|
207
228
|
__source: {
|
|
208
229
|
fileName: _jsxFileName,
|
|
209
|
-
lineNumber:
|
|
230
|
+
lineNumber: 223,
|
|
210
231
|
columnNumber: 5
|
|
211
232
|
}
|
|
212
233
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeGestureHandler","_ChannelAvatar","_ChannelPreviewMessage","_ChannelPreviewMutedStatus","_ChannelPreviewStatus","_ChannelPreviewTitle","_ChannelPreviewUnreadCount","_useChannelPreviewDisplayName","_ChannelsContext","_ThemeContext","_utils","_this","_jsxFileName","styles","StyleSheet","create","container","borderBottomWidth","flex","flexDirection","paddingHorizontal","paddingVertical","contentContainer","row","alignItems","justifyContent","paddingLeft","statusContainer","display","title","fontSize","fontWeight","maxWidth","vw","ChannelPreviewMessengerWithContext","props","channel","formatLatestMessageDate","latestMessagePreview","maxUnreadCount","onSelect","_props$PreviewAvatar","PreviewAvatar","ChannelAvatar","_props$PreviewMessage","PreviewMessage","ChannelPreviewMessage","_props$PreviewStatus","PreviewStatus","ChannelPreviewStatus","_props$PreviewTitle","PreviewTitle","ChannelPreviewTitle","_props$PreviewUnreadC","PreviewUnreadCount","ChannelPreviewUnreadCount","_props$PreviewMutedSt","PreviewMutedStatus","ChannelPreviewMutedStatus","unread","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$chann","channelPreview","_useTheme$theme$color","colors","border","white_snow","displayName","useChannelPreviewDisplayName","Math","floor","isChannelMuted","muteStatus","muted","createElement","TouchableOpacity","onPress","style","backgroundColor","borderBottomColor","testID","__self","__source","fileName","lineNumber","columnNumber","View","id","MemoizedChannelPreviewMessengerWithContext","React","memo","ChannelPreviewMessenger","_useChannelsContext","useChannelsContext","_extends2","exports"],"sources":["ChannelPreviewMessenger.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\n\nimport { ChannelAvatar } from './ChannelAvatar';\nimport type { ChannelPreviewProps } from './ChannelPreview';\nimport { ChannelPreviewMessage } from './ChannelPreviewMessage';\nimport { ChannelPreviewMutedStatus } from './ChannelPreviewMutedStatus';\nimport { ChannelPreviewStatus } from './ChannelPreviewStatus';\nimport { ChannelPreviewTitle } from './ChannelPreviewTitle';\nimport { ChannelPreviewUnreadCount } from './ChannelPreviewUnreadCount';\nimport { useChannelPreviewDisplayName } from './hooks/useChannelPreviewDisplayName';\n\nimport type { LatestMessagePreview } from './hooks/useLatestMessagePreview';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\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 borderBottomWidth: 1,\n flex: 1,\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingVertical: 12,\n },\n contentContainer: { flex: 1 },\n row: {\n alignItems: 'center',\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingLeft: 8,\n },\n statusContainer: {\n display: 'flex',\n flexDirection: 'row',\n },\n title: { fontSize: 14, fontWeight: '700' },\n});\n\nconst maxWidth = vw(80) - 16 - 40;\n\nexport type ChannelPreviewMessengerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> &\n Pick<\n ChannelsContextValue<StreamChatGenerics>,\n | 'maxUnreadCount'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewMutedStatus'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n > & {\n /**\n * Latest message on a channel, formatted for preview\n *\n * e.g.,\n *\n * ```json\n * {\n * created_at: '' ,\n * messageObject: { ... },\n * previews: {\n * bold: true,\n * text: 'This is the message preview text'\n * },\n * status: 0 | 1 | 2 // read states of the latest message.\n * }\n * ```\n *\n * The read status is either of the following:\n *\n * 0: The message was not sent by the current user\n * 1: The message was sent by the current user and is unread\n * 2: The message was sent by the current user and is read\n *\n * @overrideType object\n */\n latestMessagePreview: LatestMessagePreview<StreamChatGenerics>;\n /**\n * Formatter function for date of latest message.\n * @param date Message date\n * @returns Formatted date string\n *\n * By default today's date is shown in 'HH:mm A' format and other dates\n * are displayed in 'DD/MM/YY' format. props.latestMessage.created_at is the\n * default formatted date. This default logic is part of ChannelPreview component.\n */\n formatLatestMessageDate?: (date: Date) => string;\n /** Number of unread messages on the channel */\n unread?: number;\n };\n\nconst ChannelPreviewMessengerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n channel,\n formatLatestMessageDate,\n latestMessagePreview,\n maxUnreadCount,\n onSelect,\n PreviewAvatar = ChannelAvatar,\n PreviewMessage = ChannelPreviewMessage,\n PreviewStatus = ChannelPreviewStatus,\n PreviewTitle = ChannelPreviewTitle,\n PreviewUnreadCount = ChannelPreviewUnreadCount,\n PreviewMutedStatus = ChannelPreviewMutedStatus,\n unread,\n } = props;\n\n const {\n theme: {\n channelPreview: { container, contentContainer, row, title },\n colors: { border, white_snow },\n },\n } = useTheme();\n\n const displayName = useChannelPreviewDisplayName(\n channel,\n Math.floor(maxWidth / ((title.fontSize || styles.title.fontSize) / 2)),\n );\n\n const isChannelMuted = channel.muteStatus().muted;\n\n return (\n <TouchableOpacity\n onPress={() => {\n if (onSelect) {\n onSelect(channel);\n }\n }}\n style={[\n styles.container,\n { backgroundColor: white_snow, borderBottomColor: border },\n container,\n ]}\n testID='channel-preview-button'\n >\n <PreviewAvatar channel={channel} />\n <View\n style={[styles.contentContainer, contentContainer]}\n testID={`channel-preview-content-${channel.id}`}\n >\n <View style={[styles.row, row]}>\n <PreviewTitle channel={channel} displayName={displayName} />\n <View style={[styles.statusContainer, row]}>\n {isChannelMuted && <PreviewMutedStatus />}\n <PreviewUnreadCount channel={channel} maxUnreadCount={maxUnreadCount} unread={unread} />\n </View>\n </View>\n <View style={[styles.row, row]}>\n <PreviewMessage latestMessagePreview={latestMessagePreview} />\n <PreviewStatus\n channel={channel}\n formatLatestMessageDate={formatLatestMessageDate}\n latestMessagePreview={latestMessagePreview}\n />\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nexport type ChannelPreviewMessengerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Omit<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >\n> &\n Pick<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >;\n\nconst MemoizedChannelPreviewMessengerWithContext = React.memo(\n ChannelPreviewMessengerWithContext,\n) as typeof ChannelPreviewMessengerWithContext;\n\n/**\n * This UI component displays an individual preview item for each channel in a list. It also receives all props\n * from the ChannelPreview component.\n */\nexport const ChannelPreviewMessenger = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerProps<StreamChatGenerics>,\n) => {\n const {\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n } = useChannelsContext<StreamChatGenerics>();\n return (\n <MemoizedChannelPreviewMessengerWithContext\n {...{\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n }}\n {...props}\n />\n );\n};\n\nChannelPreviewMessenger.displayName = 'ChannelPreviewMessenger{channelPreview}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_ChannelAvatar","_ChannelPreviewMessage","_ChannelPreviewMutedStatus","_ChannelPreviewStatus","_ChannelPreviewTitle","_ChannelPreviewUnreadCount","_useChannelPreviewDisplayName","_ChannelsContext","_ChatContext","_ThemeContext","_utils","_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","container","borderBottomWidth","flex","flexDirection","paddingHorizontal","paddingVertical","contentContainer","row","alignItems","justifyContent","paddingLeft","statusContainer","display","title","fontSize","fontWeight","maxWidth","vw","ChannelPreviewMessengerWithContext","props","channel","formatLatestMessageDate","latestMessagePreview","maxUnreadCount","onSelect","_props$PreviewAvatar","PreviewAvatar","ChannelAvatar","_props$PreviewMessage","PreviewMessage","ChannelPreviewMessage","_props$PreviewStatus","PreviewStatus","ChannelPreviewStatus","_props$PreviewTitle","PreviewTitle","ChannelPreviewTitle","_props$PreviewUnreadC","PreviewUnreadCount","ChannelPreviewUnreadCount","_props$PreviewMutedSt","PreviewMutedStatus","ChannelPreviewMutedStatus","unread","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$chann","channelPreview","_useTheme$theme$color","colors","border","white_snow","_useChatContext","useChatContext","client","displayName","useChannelPreviewDisplayName","Math","floor","_useState","useState","muteStatus","muted","_useState2","_slicedToArray2","isChannelMuted","setIsChannelMuted","useEffect","handleEvent","on","off","createElement","TouchableOpacity","onPress","style","backgroundColor","borderBottomColor","testID","__self","__source","fileName","lineNumber","columnNumber","View","id","MemoizedChannelPreviewMessengerWithContext","React","memo","ChannelPreviewMessenger","_useChannelsContext","useChannelsContext","_extends2","exports"],"sources":["ChannelPreviewMessenger.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\n\nimport { ChannelAvatar } from './ChannelAvatar';\nimport type { ChannelPreviewProps } from './ChannelPreview';\nimport { ChannelPreviewMessage } from './ChannelPreviewMessage';\nimport { ChannelPreviewMutedStatus } from './ChannelPreviewMutedStatus';\nimport { ChannelPreviewStatus } from './ChannelPreviewStatus';\nimport { ChannelPreviewTitle } from './ChannelPreviewTitle';\nimport { ChannelPreviewUnreadCount } from './ChannelPreviewUnreadCount';\nimport { useChannelPreviewDisplayName } from './hooks/useChannelPreviewDisplayName';\n\nimport type { LatestMessagePreview } from './hooks/useLatestMessagePreview';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\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 borderBottomWidth: 1,\n flex: 1,\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingVertical: 12,\n },\n contentContainer: { flex: 1 },\n row: {\n alignItems: 'center',\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingLeft: 8,\n },\n statusContainer: {\n display: 'flex',\n flexDirection: 'row',\n },\n title: { fontSize: 14, fontWeight: '700' },\n});\n\nconst maxWidth = vw(80) - 16 - 40;\n\nexport type ChannelPreviewMessengerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> &\n Pick<\n ChannelsContextValue<StreamChatGenerics>,\n | 'maxUnreadCount'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewMutedStatus'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n > & {\n /**\n * Latest message on a channel, formatted for preview\n *\n * e.g.,\n *\n * ```json\n * {\n * created_at: '' ,\n * messageObject: { ... },\n * previews: {\n * bold: true,\n * text: 'This is the message preview text'\n * },\n * status: 0 | 1 | 2 // read states of the latest message.\n * }\n * ```\n *\n * The read status is either of the following:\n *\n * 0: The message was not sent by the current user\n * 1: The message was sent by the current user and is unread\n * 2: The message was sent by the current user and is read\n *\n * @overrideType object\n */\n latestMessagePreview: LatestMessagePreview<StreamChatGenerics>;\n /**\n * Formatter function for date of latest message.\n * @param date Message date\n * @returns Formatted date string\n *\n * By default today's date is shown in 'HH:mm A' format and other dates\n * are displayed in 'DD/MM/YY' format. props.latestMessage.created_at is the\n * default formatted date. This default logic is part of ChannelPreview component.\n */\n formatLatestMessageDate?: (date: Date) => string;\n /** Number of unread messages on the channel */\n unread?: number;\n };\n\nconst ChannelPreviewMessengerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n channel,\n formatLatestMessageDate,\n latestMessagePreview,\n maxUnreadCount,\n onSelect,\n PreviewAvatar = ChannelAvatar,\n PreviewMessage = ChannelPreviewMessage,\n PreviewStatus = ChannelPreviewStatus,\n PreviewTitle = ChannelPreviewTitle,\n PreviewUnreadCount = ChannelPreviewUnreadCount,\n PreviewMutedStatus = ChannelPreviewMutedStatus,\n unread,\n } = props;\n\n const {\n theme: {\n channelPreview: { container, contentContainer, row, title },\n colors: { border, white_snow },\n },\n } = useTheme();\n\n const { client } = useChatContext<StreamChatGenerics>();\n\n const displayName = useChannelPreviewDisplayName(\n channel,\n Math.floor(maxWidth / ((title.fontSize || styles.title.fontSize) / 2)),\n );\n\n const [isChannelMuted, setIsChannelMuted] = useState(() => channel.muteStatus().muted);\n\n useEffect(() => {\n const handleEvent = () => setIsChannelMuted(channel.muteStatus().muted);\n\n client.on('notification.channel_mutes_updated', handleEvent);\n return () => client.off('notification.channel_mutes_updated', handleEvent);\n }, []);\n\n return (\n <TouchableOpacity\n onPress={() => {\n if (onSelect) {\n onSelect(channel);\n }\n }}\n style={[\n styles.container,\n { backgroundColor: white_snow, borderBottomColor: border },\n container,\n ]}\n testID='channel-preview-button'\n >\n <PreviewAvatar channel={channel} />\n <View\n style={[styles.contentContainer, contentContainer]}\n testID={`channel-preview-content-${channel.id}`}\n >\n <View style={[styles.row, row]}>\n <PreviewTitle channel={channel} displayName={displayName} />\n <View style={[styles.statusContainer, row]}>\n {isChannelMuted && <PreviewMutedStatus />}\n <PreviewUnreadCount channel={channel} maxUnreadCount={maxUnreadCount} unread={unread} />\n </View>\n </View>\n <View style={[styles.row, row]}>\n <PreviewMessage latestMessagePreview={latestMessagePreview} />\n <PreviewStatus\n channel={channel}\n formatLatestMessageDate={formatLatestMessageDate}\n latestMessagePreview={latestMessagePreview}\n />\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nexport type ChannelPreviewMessengerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Omit<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >\n> &\n Pick<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >;\n\nconst MemoizedChannelPreviewMessengerWithContext = React.memo(\n ChannelPreviewMessengerWithContext,\n) as typeof ChannelPreviewMessengerWithContext;\n\n/**\n * This UI component displays an individual preview item for each channel in a list. It also receives all props\n * from the ChannelPreview component.\n */\nexport const ChannelPreviewMessenger = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerProps<StreamChatGenerics>,\n) => {\n const {\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n } = useChannelsContext<StreamChatGenerics>();\n return (\n <MemoizedChannelPreviewMessengerWithContext\n {...{\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n }}\n {...props}\n />\n );\n};\n\nChannelPreviewMessenger.displayName = 'ChannelPreviewMessenger{channelPreview}';\n"],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
2
3
|
Object.defineProperty(exports, "__esModule", {
|
|
3
4
|
value: true
|
|
4
5
|
});
|
|
5
6
|
exports.ChannelPreviewMessenger = void 0;
|
|
6
7
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
|
-
var
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
10
|
var _reactNative = require("react-native");
|
|
9
11
|
var _reactNativeGestureHandler = require("react-native-gesture-handler");
|
|
10
12
|
var _ChannelAvatar = require("./ChannelAvatar");
|
|
@@ -15,10 +17,13 @@ var _ChannelPreviewTitle = require("./ChannelPreviewTitle");
|
|
|
15
17
|
var _ChannelPreviewUnreadCount = require("./ChannelPreviewUnreadCount");
|
|
16
18
|
var _useChannelPreviewDisplayName = require("./hooks/useChannelPreviewDisplayName");
|
|
17
19
|
var _ChannelsContext = require("../../contexts/channelsContext/ChannelsContext");
|
|
20
|
+
var _ChatContext = require("../../contexts/chatContext/ChatContext");
|
|
18
21
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
19
22
|
var _utils = require("../../utils/utils");
|
|
20
23
|
var _this = this,
|
|
21
24
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx";
|
|
25
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
22
27
|
var styles = _reactNative.StyleSheet.create({
|
|
23
28
|
container: {
|
|
24
29
|
borderBottomWidth: 1,
|
|
@@ -76,8 +81,24 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
76
81
|
_useTheme$theme$color = _useTheme$theme.colors,
|
|
77
82
|
border = _useTheme$theme$color.border,
|
|
78
83
|
white_snow = _useTheme$theme$color.white_snow;
|
|
84
|
+
var _useChatContext = (0, _ChatContext.useChatContext)(),
|
|
85
|
+
client = _useChatContext.client;
|
|
79
86
|
var displayName = (0, _useChannelPreviewDisplayName.useChannelPreviewDisplayName)(channel, Math.floor(maxWidth / ((title.fontSize || styles.title.fontSize) / 2)));
|
|
80
|
-
var
|
|
87
|
+
var _useState = (0, _react.useState)(function () {
|
|
88
|
+
return channel.muteStatus().muted;
|
|
89
|
+
}),
|
|
90
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
91
|
+
isChannelMuted = _useState2[0],
|
|
92
|
+
setIsChannelMuted = _useState2[1];
|
|
93
|
+
(0, _react.useEffect)(function () {
|
|
94
|
+
var handleEvent = function handleEvent() {
|
|
95
|
+
return setIsChannelMuted(channel.muteStatus().muted);
|
|
96
|
+
};
|
|
97
|
+
client.on('notification.channel_mutes_updated', handleEvent);
|
|
98
|
+
return function () {
|
|
99
|
+
return client.off('notification.channel_mutes_updated', handleEvent);
|
|
100
|
+
};
|
|
101
|
+
}, []);
|
|
81
102
|
return _react["default"].createElement(_reactNativeGestureHandler.TouchableOpacity, {
|
|
82
103
|
onPress: function onPress() {
|
|
83
104
|
if (onSelect) {
|
|
@@ -92,7 +113,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
92
113
|
__self: _this,
|
|
93
114
|
__source: {
|
|
94
115
|
fileName: _jsxFileName,
|
|
95
|
-
lineNumber:
|
|
116
|
+
lineNumber: 148,
|
|
96
117
|
columnNumber: 5
|
|
97
118
|
}
|
|
98
119
|
}, _react["default"].createElement(PreviewAvatar, {
|
|
@@ -100,7 +121,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
100
121
|
__self: _this,
|
|
101
122
|
__source: {
|
|
102
123
|
fileName: _jsxFileName,
|
|
103
|
-
lineNumber:
|
|
124
|
+
lineNumber: 161,
|
|
104
125
|
columnNumber: 7
|
|
105
126
|
}
|
|
106
127
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -109,7 +130,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
109
130
|
__self: _this,
|
|
110
131
|
__source: {
|
|
111
132
|
fileName: _jsxFileName,
|
|
112
|
-
lineNumber:
|
|
133
|
+
lineNumber: 162,
|
|
113
134
|
columnNumber: 7
|
|
114
135
|
}
|
|
115
136
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -117,7 +138,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
117
138
|
__self: _this,
|
|
118
139
|
__source: {
|
|
119
140
|
fileName: _jsxFileName,
|
|
120
|
-
lineNumber:
|
|
141
|
+
lineNumber: 166,
|
|
121
142
|
columnNumber: 9
|
|
122
143
|
}
|
|
123
144
|
}, _react["default"].createElement(PreviewTitle, {
|
|
@@ -126,7 +147,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
126
147
|
__self: _this,
|
|
127
148
|
__source: {
|
|
128
149
|
fileName: _jsxFileName,
|
|
129
|
-
lineNumber:
|
|
150
|
+
lineNumber: 167,
|
|
130
151
|
columnNumber: 11
|
|
131
152
|
}
|
|
132
153
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -134,14 +155,14 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
134
155
|
__self: _this,
|
|
135
156
|
__source: {
|
|
136
157
|
fileName: _jsxFileName,
|
|
137
|
-
lineNumber:
|
|
158
|
+
lineNumber: 168,
|
|
138
159
|
columnNumber: 11
|
|
139
160
|
}
|
|
140
161
|
}, isChannelMuted && _react["default"].createElement(PreviewMutedStatus, {
|
|
141
162
|
__self: _this,
|
|
142
163
|
__source: {
|
|
143
164
|
fileName: _jsxFileName,
|
|
144
|
-
lineNumber:
|
|
165
|
+
lineNumber: 169,
|
|
145
166
|
columnNumber: 32
|
|
146
167
|
}
|
|
147
168
|
}), _react["default"].createElement(PreviewUnreadCount, {
|
|
@@ -151,7 +172,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
151
172
|
__self: _this,
|
|
152
173
|
__source: {
|
|
153
174
|
fileName: _jsxFileName,
|
|
154
|
-
lineNumber:
|
|
175
|
+
lineNumber: 170,
|
|
155
176
|
columnNumber: 13
|
|
156
177
|
}
|
|
157
178
|
}))), _react["default"].createElement(_reactNative.View, {
|
|
@@ -159,7 +180,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
159
180
|
__self: _this,
|
|
160
181
|
__source: {
|
|
161
182
|
fileName: _jsxFileName,
|
|
162
|
-
lineNumber:
|
|
183
|
+
lineNumber: 173,
|
|
163
184
|
columnNumber: 9
|
|
164
185
|
}
|
|
165
186
|
}, _react["default"].createElement(PreviewMessage, {
|
|
@@ -167,7 +188,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
167
188
|
__self: _this,
|
|
168
189
|
__source: {
|
|
169
190
|
fileName: _jsxFileName,
|
|
170
|
-
lineNumber:
|
|
191
|
+
lineNumber: 174,
|
|
171
192
|
columnNumber: 11
|
|
172
193
|
}
|
|
173
194
|
}), _react["default"].createElement(PreviewStatus, {
|
|
@@ -177,7 +198,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
|
|
|
177
198
|
__self: _this,
|
|
178
199
|
__source: {
|
|
179
200
|
fileName: _jsxFileName,
|
|
180
|
-
lineNumber:
|
|
201
|
+
lineNumber: 175,
|
|
181
202
|
columnNumber: 11
|
|
182
203
|
}
|
|
183
204
|
}))));
|
|
@@ -206,7 +227,7 @@ var ChannelPreviewMessenger = function ChannelPreviewMessenger(props) {
|
|
|
206
227
|
__self: _this,
|
|
207
228
|
__source: {
|
|
208
229
|
fileName: _jsxFileName,
|
|
209
|
-
lineNumber:
|
|
230
|
+
lineNumber: 223,
|
|
210
231
|
columnNumber: 5
|
|
211
232
|
}
|
|
212
233
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeGestureHandler","_ChannelAvatar","_ChannelPreviewMessage","_ChannelPreviewMutedStatus","_ChannelPreviewStatus","_ChannelPreviewTitle","_ChannelPreviewUnreadCount","_useChannelPreviewDisplayName","_ChannelsContext","_ThemeContext","_utils","_this","_jsxFileName","styles","StyleSheet","create","container","borderBottomWidth","flex","flexDirection","paddingHorizontal","paddingVertical","contentContainer","row","alignItems","justifyContent","paddingLeft","statusContainer","display","title","fontSize","fontWeight","maxWidth","vw","ChannelPreviewMessengerWithContext","props","channel","formatLatestMessageDate","latestMessagePreview","maxUnreadCount","onSelect","_props$PreviewAvatar","PreviewAvatar","ChannelAvatar","_props$PreviewMessage","PreviewMessage","ChannelPreviewMessage","_props$PreviewStatus","PreviewStatus","ChannelPreviewStatus","_props$PreviewTitle","PreviewTitle","ChannelPreviewTitle","_props$PreviewUnreadC","PreviewUnreadCount","ChannelPreviewUnreadCount","_props$PreviewMutedSt","PreviewMutedStatus","ChannelPreviewMutedStatus","unread","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$chann","channelPreview","_useTheme$theme$color","colors","border","white_snow","displayName","useChannelPreviewDisplayName","Math","floor","isChannelMuted","muteStatus","muted","createElement","TouchableOpacity","onPress","style","backgroundColor","borderBottomColor","testID","__self","__source","fileName","lineNumber","columnNumber","View","id","MemoizedChannelPreviewMessengerWithContext","React","memo","ChannelPreviewMessenger","_useChannelsContext","useChannelsContext","_extends2","exports"],"sources":["ChannelPreviewMessenger.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\n\nimport { ChannelAvatar } from './ChannelAvatar';\nimport type { ChannelPreviewProps } from './ChannelPreview';\nimport { ChannelPreviewMessage } from './ChannelPreviewMessage';\nimport { ChannelPreviewMutedStatus } from './ChannelPreviewMutedStatus';\nimport { ChannelPreviewStatus } from './ChannelPreviewStatus';\nimport { ChannelPreviewTitle } from './ChannelPreviewTitle';\nimport { ChannelPreviewUnreadCount } from './ChannelPreviewUnreadCount';\nimport { useChannelPreviewDisplayName } from './hooks/useChannelPreviewDisplayName';\n\nimport type { LatestMessagePreview } from './hooks/useLatestMessagePreview';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\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 borderBottomWidth: 1,\n flex: 1,\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingVertical: 12,\n },\n contentContainer: { flex: 1 },\n row: {\n alignItems: 'center',\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingLeft: 8,\n },\n statusContainer: {\n display: 'flex',\n flexDirection: 'row',\n },\n title: { fontSize: 14, fontWeight: '700' },\n});\n\nconst maxWidth = vw(80) - 16 - 40;\n\nexport type ChannelPreviewMessengerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> &\n Pick<\n ChannelsContextValue<StreamChatGenerics>,\n | 'maxUnreadCount'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewMutedStatus'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n > & {\n /**\n * Latest message on a channel, formatted for preview\n *\n * e.g.,\n *\n * ```json\n * {\n * created_at: '' ,\n * messageObject: { ... },\n * previews: {\n * bold: true,\n * text: 'This is the message preview text'\n * },\n * status: 0 | 1 | 2 // read states of the latest message.\n * }\n * ```\n *\n * The read status is either of the following:\n *\n * 0: The message was not sent by the current user\n * 1: The message was sent by the current user and is unread\n * 2: The message was sent by the current user and is read\n *\n * @overrideType object\n */\n latestMessagePreview: LatestMessagePreview<StreamChatGenerics>;\n /**\n * Formatter function for date of latest message.\n * @param date Message date\n * @returns Formatted date string\n *\n * By default today's date is shown in 'HH:mm A' format and other dates\n * are displayed in 'DD/MM/YY' format. props.latestMessage.created_at is the\n * default formatted date. This default logic is part of ChannelPreview component.\n */\n formatLatestMessageDate?: (date: Date) => string;\n /** Number of unread messages on the channel */\n unread?: number;\n };\n\nconst ChannelPreviewMessengerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n channel,\n formatLatestMessageDate,\n latestMessagePreview,\n maxUnreadCount,\n onSelect,\n PreviewAvatar = ChannelAvatar,\n PreviewMessage = ChannelPreviewMessage,\n PreviewStatus = ChannelPreviewStatus,\n PreviewTitle = ChannelPreviewTitle,\n PreviewUnreadCount = ChannelPreviewUnreadCount,\n PreviewMutedStatus = ChannelPreviewMutedStatus,\n unread,\n } = props;\n\n const {\n theme: {\n channelPreview: { container, contentContainer, row, title },\n colors: { border, white_snow },\n },\n } = useTheme();\n\n const displayName = useChannelPreviewDisplayName(\n channel,\n Math.floor(maxWidth / ((title.fontSize || styles.title.fontSize) / 2)),\n );\n\n const isChannelMuted = channel.muteStatus().muted;\n\n return (\n <TouchableOpacity\n onPress={() => {\n if (onSelect) {\n onSelect(channel);\n }\n }}\n style={[\n styles.container,\n { backgroundColor: white_snow, borderBottomColor: border },\n container,\n ]}\n testID='channel-preview-button'\n >\n <PreviewAvatar channel={channel} />\n <View\n style={[styles.contentContainer, contentContainer]}\n testID={`channel-preview-content-${channel.id}`}\n >\n <View style={[styles.row, row]}>\n <PreviewTitle channel={channel} displayName={displayName} />\n <View style={[styles.statusContainer, row]}>\n {isChannelMuted && <PreviewMutedStatus />}\n <PreviewUnreadCount channel={channel} maxUnreadCount={maxUnreadCount} unread={unread} />\n </View>\n </View>\n <View style={[styles.row, row]}>\n <PreviewMessage latestMessagePreview={latestMessagePreview} />\n <PreviewStatus\n channel={channel}\n formatLatestMessageDate={formatLatestMessageDate}\n latestMessagePreview={latestMessagePreview}\n />\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nexport type ChannelPreviewMessengerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Omit<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >\n> &\n Pick<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >;\n\nconst MemoizedChannelPreviewMessengerWithContext = React.memo(\n ChannelPreviewMessengerWithContext,\n) as typeof ChannelPreviewMessengerWithContext;\n\n/**\n * This UI component displays an individual preview item for each channel in a list. It also receives all props\n * from the ChannelPreview component.\n */\nexport const ChannelPreviewMessenger = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerProps<StreamChatGenerics>,\n) => {\n const {\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n } = useChannelsContext<StreamChatGenerics>();\n return (\n <MemoizedChannelPreviewMessengerWithContext\n {...{\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n }}\n {...props}\n />\n );\n};\n\nChannelPreviewMessenger.displayName = 'ChannelPreviewMessenger{channelPreview}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_ChannelAvatar","_ChannelPreviewMessage","_ChannelPreviewMutedStatus","_ChannelPreviewStatus","_ChannelPreviewTitle","_ChannelPreviewUnreadCount","_useChannelPreviewDisplayName","_ChannelsContext","_ChatContext","_ThemeContext","_utils","_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","container","borderBottomWidth","flex","flexDirection","paddingHorizontal","paddingVertical","contentContainer","row","alignItems","justifyContent","paddingLeft","statusContainer","display","title","fontSize","fontWeight","maxWidth","vw","ChannelPreviewMessengerWithContext","props","channel","formatLatestMessageDate","latestMessagePreview","maxUnreadCount","onSelect","_props$PreviewAvatar","PreviewAvatar","ChannelAvatar","_props$PreviewMessage","PreviewMessage","ChannelPreviewMessage","_props$PreviewStatus","PreviewStatus","ChannelPreviewStatus","_props$PreviewTitle","PreviewTitle","ChannelPreviewTitle","_props$PreviewUnreadC","PreviewUnreadCount","ChannelPreviewUnreadCount","_props$PreviewMutedSt","PreviewMutedStatus","ChannelPreviewMutedStatus","unread","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$chann","channelPreview","_useTheme$theme$color","colors","border","white_snow","_useChatContext","useChatContext","client","displayName","useChannelPreviewDisplayName","Math","floor","_useState","useState","muteStatus","muted","_useState2","_slicedToArray2","isChannelMuted","setIsChannelMuted","useEffect","handleEvent","on","off","createElement","TouchableOpacity","onPress","style","backgroundColor","borderBottomColor","testID","__self","__source","fileName","lineNumber","columnNumber","View","id","MemoizedChannelPreviewMessengerWithContext","React","memo","ChannelPreviewMessenger","_useChannelsContext","useChannelsContext","_extends2","exports"],"sources":["ChannelPreviewMessenger.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\n\nimport { ChannelAvatar } from './ChannelAvatar';\nimport type { ChannelPreviewProps } from './ChannelPreview';\nimport { ChannelPreviewMessage } from './ChannelPreviewMessage';\nimport { ChannelPreviewMutedStatus } from './ChannelPreviewMutedStatus';\nimport { ChannelPreviewStatus } from './ChannelPreviewStatus';\nimport { ChannelPreviewTitle } from './ChannelPreviewTitle';\nimport { ChannelPreviewUnreadCount } from './ChannelPreviewUnreadCount';\nimport { useChannelPreviewDisplayName } from './hooks/useChannelPreviewDisplayName';\n\nimport type { LatestMessagePreview } from './hooks/useLatestMessagePreview';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\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 borderBottomWidth: 1,\n flex: 1,\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingVertical: 12,\n },\n contentContainer: { flex: 1 },\n row: {\n alignItems: 'center',\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingLeft: 8,\n },\n statusContainer: {\n display: 'flex',\n flexDirection: 'row',\n },\n title: { fontSize: 14, fontWeight: '700' },\n});\n\nconst maxWidth = vw(80) - 16 - 40;\n\nexport type ChannelPreviewMessengerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> &\n Pick<\n ChannelsContextValue<StreamChatGenerics>,\n | 'maxUnreadCount'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewMutedStatus'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n > & {\n /**\n * Latest message on a channel, formatted for preview\n *\n * e.g.,\n *\n * ```json\n * {\n * created_at: '' ,\n * messageObject: { ... },\n * previews: {\n * bold: true,\n * text: 'This is the message preview text'\n * },\n * status: 0 | 1 | 2 // read states of the latest message.\n * }\n * ```\n *\n * The read status is either of the following:\n *\n * 0: The message was not sent by the current user\n * 1: The message was sent by the current user and is unread\n * 2: The message was sent by the current user and is read\n *\n * @overrideType object\n */\n latestMessagePreview: LatestMessagePreview<StreamChatGenerics>;\n /**\n * Formatter function for date of latest message.\n * @param date Message date\n * @returns Formatted date string\n *\n * By default today's date is shown in 'HH:mm A' format and other dates\n * are displayed in 'DD/MM/YY' format. props.latestMessage.created_at is the\n * default formatted date. This default logic is part of ChannelPreview component.\n */\n formatLatestMessageDate?: (date: Date) => string;\n /** Number of unread messages on the channel */\n unread?: number;\n };\n\nconst ChannelPreviewMessengerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n channel,\n formatLatestMessageDate,\n latestMessagePreview,\n maxUnreadCount,\n onSelect,\n PreviewAvatar = ChannelAvatar,\n PreviewMessage = ChannelPreviewMessage,\n PreviewStatus = ChannelPreviewStatus,\n PreviewTitle = ChannelPreviewTitle,\n PreviewUnreadCount = ChannelPreviewUnreadCount,\n PreviewMutedStatus = ChannelPreviewMutedStatus,\n unread,\n } = props;\n\n const {\n theme: {\n channelPreview: { container, contentContainer, row, title },\n colors: { border, white_snow },\n },\n } = useTheme();\n\n const { client } = useChatContext<StreamChatGenerics>();\n\n const displayName = useChannelPreviewDisplayName(\n channel,\n Math.floor(maxWidth / ((title.fontSize || styles.title.fontSize) / 2)),\n );\n\n const [isChannelMuted, setIsChannelMuted] = useState(() => channel.muteStatus().muted);\n\n useEffect(() => {\n const handleEvent = () => setIsChannelMuted(channel.muteStatus().muted);\n\n client.on('notification.channel_mutes_updated', handleEvent);\n return () => client.off('notification.channel_mutes_updated', handleEvent);\n }, []);\n\n return (\n <TouchableOpacity\n onPress={() => {\n if (onSelect) {\n onSelect(channel);\n }\n }}\n style={[\n styles.container,\n { backgroundColor: white_snow, borderBottomColor: border },\n container,\n ]}\n testID='channel-preview-button'\n >\n <PreviewAvatar channel={channel} />\n <View\n style={[styles.contentContainer, contentContainer]}\n testID={`channel-preview-content-${channel.id}`}\n >\n <View style={[styles.row, row]}>\n <PreviewTitle channel={channel} displayName={displayName} />\n <View style={[styles.statusContainer, row]}>\n {isChannelMuted && <PreviewMutedStatus />}\n <PreviewUnreadCount channel={channel} maxUnreadCount={maxUnreadCount} unread={unread} />\n </View>\n </View>\n <View style={[styles.row, row]}>\n <PreviewMessage latestMessagePreview={latestMessagePreview} />\n <PreviewStatus\n channel={channel}\n formatLatestMessageDate={formatLatestMessageDate}\n latestMessagePreview={latestMessagePreview}\n />\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nexport type ChannelPreviewMessengerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Omit<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >\n> &\n Pick<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >;\n\nconst MemoizedChannelPreviewMessengerWithContext = React.memo(\n ChannelPreviewMessengerWithContext,\n) as typeof ChannelPreviewMessengerWithContext;\n\n/**\n * This UI component displays an individual preview item for each channel in a list. It also receives all props\n * from the ChannelPreview component.\n */\nexport const ChannelPreviewMessenger = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerProps<StreamChatGenerics>,\n) => {\n const {\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n } = useChannelsContext<StreamChatGenerics>();\n return (\n <MemoizedChannelPreviewMessengerWithContext\n {...{\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n }}\n {...props}\n />\n );\n};\n\nChannelPreviewMessenger.displayName = 'ChannelPreviewMessenger{channelPreview}';\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AAEA,IAAAG,cAAA,GAAAH,OAAA;AAEA,IAAAI,sBAAA,GAAAJ,OAAA;AACA,IAAAK,0BAAA,GAAAL,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AACA,IAAAO,oBAAA,GAAAP,OAAA;AACA,IAAAQ,0BAAA,GAAAR,OAAA;AACA,IAAAS,6BAAA,GAAAT,OAAA;AAIA,IAAAU,gBAAA,GAAAV,OAAA;AAIA,IAAAW,YAAA,GAAAX,OAAA;AACA,IAAAY,aAAA,GAAAZ,OAAA;AAEA,IAAAa,MAAA,GAAAb,OAAA;AAAuC,IAAAc,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAlB,wBAAAsB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAEvC,IAAMW,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,iBAAiB,EAAE,CAAC;IACpBC,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBC,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE;EACnB,CAAC;EACDC,gBAAgB,EAAE;IAAEJ,IAAI,EAAE;EAAE,CAAC;EAC7BK,GAAG,EAAE;IACHC,UAAU,EAAE,QAAQ;IACpBN,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBM,cAAc,EAAE,eAAe;IAC/BC,WAAW,EAAE;EACf,CAAC;EACDC,eAAe,EAAE;IACfC,OAAO,EAAE,MAAM;IACfT,aAAa,EAAE;EACjB,CAAC;EACDU,KAAK,EAAE;IAAEC,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAM;AAC3C,CAAC,CAAC;AAEF,IAAMC,QAAQ,GAAG,IAAAC,SAAE,EAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;AAwDjC,IAAMC,kCAAkC,GAAG,SAArCA,kCAAkCA,CAGtCC,KAAkE,EAC/D;EACH,IACEC,OAAO,GAYLD,KAAK,CAZPC,OAAO;IACPC,uBAAuB,GAWrBF,KAAK,CAXPE,uBAAuB;IACvBC,oBAAoB,GAUlBH,KAAK,CAVPG,oBAAoB;IACpBC,cAAc,GASZJ,KAAK,CATPI,cAAc;IACdC,QAAQ,GAQNL,KAAK,CARPK,QAAQ;IAAAC,oBAAA,GAQNN,KAAK,CAPPO,aAAa;IAAbA,aAAa,GAAAD,oBAAA,cAAGE,4BAAa,GAAAF,oBAAA;IAAAG,qBAAA,GAO3BT,KAAK,CANPU,cAAc;IAAdA,cAAc,GAAAD,qBAAA,cAAGE,4CAAqB,GAAAF,qBAAA;IAAAG,oBAAA,GAMpCZ,KAAK,CALPa,aAAa;IAAbA,aAAa,GAAAD,oBAAA,cAAGE,0CAAoB,GAAAF,oBAAA;IAAAG,mBAAA,GAKlCf,KAAK,CAJPgB,YAAY;IAAZA,YAAY,GAAAD,mBAAA,cAAGE,wCAAmB,GAAAF,mBAAA;IAAAG,qBAAA,GAIhClB,KAAK,CAHPmB,kBAAkB;IAAlBA,kBAAkB,GAAAD,qBAAA,cAAGE,oDAAyB,GAAAF,qBAAA;IAAAG,qBAAA,GAG5CrB,KAAK,CAFPsB,kBAAkB;IAAlBA,kBAAkB,GAAAD,qBAAA,cAAGE,oDAAyB,GAAAF,qBAAA;IAC9CG,MAAM,GACJxB,KAAK,CADPwB,MAAM;EAGR,IAAAC,SAAA,GAKI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CAJZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,cAAc;IAAIjD,SAAS,GAAAgD,qBAAA,CAAThD,SAAS;IAAEM,gBAAgB,GAAA0C,qBAAA,CAAhB1C,gBAAgB;IAAEC,GAAG,GAAAyC,qBAAA,CAAHzC,GAAG;IAAEM,KAAK,GAAAmC,qBAAA,CAALnC,KAAK;IAAAqC,qBAAA,GAAAJ,eAAA,CACzDK,MAAM;IAAIC,MAAM,GAAAF,qBAAA,CAANE,MAAM;IAAEC,UAAU,GAAAH,qBAAA,CAAVG,UAAU;EAIhC,IAAAC,eAAA,GAAmB,IAAAC,2BAAc,EAAqB,CAAC;IAA/CC,MAAM,GAAAF,eAAA,CAANE,MAAM;EAEd,IAAMC,WAAW,GAAG,IAAAC,0DAA4B,EAC9CtC,OAAO,EACPuC,IAAI,CAACC,KAAK,CAAC5C,QAAQ,IAAI,CAACH,KAAK,CAACC,QAAQ,IAAIjB,MAAM,CAACgB,KAAK,CAACC,QAAQ,IAAI,CAAC,CAAC,CACvE,CAAC;EAED,IAAA+C,SAAA,GAA4C,IAAAC,eAAQ,EAAC;MAAA,OAAM1C,OAAO,CAAC2C,UAAU,CAAC,CAAC,CAACC,KAAK;IAAA,EAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAL,SAAA;IAA/EM,cAAc,GAAAF,UAAA;IAAEG,iBAAiB,GAAAH,UAAA;EAExC,IAAAI,gBAAS,EAAC,YAAM;IACd,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA;MAAA,OAASF,iBAAiB,CAAChD,OAAO,CAAC2C,UAAU,CAAC,CAAC,CAACC,KAAK,CAAC;IAAA;IAEvER,MAAM,CAACe,EAAE,CAAC,oCAAoC,EAAED,WAAW,CAAC;IAC5D,OAAO;MAAA,OAAMd,MAAM,CAACgB,GAAG,CAAC,oCAAoC,EAAEF,WAAW,CAAC;IAAA;EAC5E,CAAC,EAAE,EAAE,CAAC;EAEN,OACEjH,MAAA,YAAAoH,aAAA,CAAChH,0BAAA,CAAAiH,gBAAgB;IACfC,OAAO,EAAE,SAAAA,QAAA,EAAM;MACb,IAAInD,QAAQ,EAAE;QACZA,QAAQ,CAACJ,OAAO,CAAC;MACnB;IACF,CAAE;IACFwD,KAAK,EAAE,CACL/E,MAAM,CAACG,SAAS,EAChB;MAAE6E,eAAe,EAAExB,UAAU;MAAEyB,iBAAiB,EAAE1B;IAAO,CAAC,EAC1DpD,SAAS,CACT;IACF+E,MAAM,EAAC,wBAAwB;IAAAC,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,GAE/B/H,MAAA,YAAAoH,aAAA,CAAC/C,aAAa;IAACN,OAAO,EAAEA,OAAQ;IAAA4D,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EACnC/H,MAAA,YAAAoH,aAAA,CAACjH,YAAA,CAAA6H,IAAI;IACHT,KAAK,EAAE,CAAC/E,MAAM,CAACS,gBAAgB,EAAEA,gBAAgB,CAAE;IACnDyE,MAAM,+BAA6B3D,OAAO,CAACkE,EAAK;IAAAN,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEhD/H,MAAA,YAAAoH,aAAA,CAACjH,YAAA,CAAA6H,IAAI;IAACT,KAAK,EAAE,CAAC/E,MAAM,CAACU,GAAG,EAAEA,GAAG,CAAE;IAAAyE,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC7B/H,MAAA,YAAAoH,aAAA,CAACtC,YAAY;IAACf,OAAO,EAAEA,OAAQ;IAACqC,WAAW,EAAEA,WAAY;IAAAuB,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EAC5D/H,MAAA,YAAAoH,aAAA,CAACjH,YAAA,CAAA6H,IAAI;IAACT,KAAK,EAAE,CAAC/E,MAAM,CAACc,eAAe,EAAEJ,GAAG,CAAE;IAAAyE,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,GACxCjB,cAAc,IAAI9G,MAAA,YAAAoH,aAAA,CAAChC,kBAAkB;IAAAuC,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EACzC/H,MAAA,YAAAoH,aAAA,CAACnC,kBAAkB;IAAClB,OAAO,EAAEA,OAAQ;IAACG,cAAc,EAAEA,cAAe;IAACoB,MAAM,EAAEA,MAAO;IAAAqC,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CACnF,CACF,CAAC,EACP/H,MAAA,YAAAoH,aAAA,CAACjH,YAAA,CAAA6H,IAAI;IAACT,KAAK,EAAE,CAAC/E,MAAM,CAACU,GAAG,EAAEA,GAAG,CAAE;IAAAyE,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC7B/H,MAAA,YAAAoH,aAAA,CAAC5C,cAAc;IAACP,oBAAoB,EAAEA,oBAAqB;IAAA0D,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EAC9D/H,MAAA,YAAAoH,aAAA,CAACzC,aAAa;IACZZ,OAAO,EAAEA,OAAQ;IACjBC,uBAAuB,EAAEA,uBAAwB;IACjDC,oBAAoB,EAAEA,oBAAqB;IAAA0D,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,CAC5C,CACG,CACF,CACU,CAAC;AAEvB,CAAC;AAeD,IAAMG,0CAA0C,GAAGC,iBAAK,CAACC,IAAI,CAC3DvE,kCACF,CAA8C;AAMvC,IAAMwE,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAGlCvE,KAAuD,EACpD;EACH,IAAAwE,mBAAA,GASI,IAAAC,mCAAkB,EAAqB,CAAC;IAR1CrE,cAAc,GAAAoE,mBAAA,CAAdpE,cAAc;IACdC,QAAQ,GAAAmE,mBAAA,CAARnE,QAAQ;IACRE,aAAa,GAAAiE,mBAAA,CAAbjE,aAAa;IACbG,cAAc,GAAA8D,mBAAA,CAAd9D,cAAc;IACdY,kBAAkB,GAAAkD,mBAAA,CAAlBlD,kBAAkB;IAClBT,aAAa,GAAA2D,mBAAA,CAAb3D,aAAa;IACbG,YAAY,GAAAwD,mBAAA,CAAZxD,YAAY;IACZG,kBAAkB,GAAAqD,mBAAA,CAAlBrD,kBAAkB;EAEpB,OACEjF,MAAA,YAAAoH,aAAA,CAACc,0CAA0C,MAAAM,SAAA;IAEvCtE,cAAc,EAAdA,cAAc;IACdC,QAAQ,EAARA,QAAQ;IACRE,aAAa,EAAbA,aAAa;IACbG,cAAc,EAAdA,cAAc;IACdY,kBAAkB,EAAlBA,kBAAkB;IAClBT,aAAa,EAAbA,aAAa;IACbG,YAAY,EAAZA,YAAY;IACZG,kBAAkB,EAAlBA;EAAkB,GAEhBnB,KAAK;IAAA6D,MAAA,EAAA3G,KAAA;IAAA4G,QAAA;MAAAC,QAAA,EAAA5G,YAAA;MAAA6G,UAAA;MAAAC,YAAA;IAAA;EAAA,EACV,CAAC;AAEN,CAAC;AAACU,OAAA,CAAAJ,uBAAA,GAAAA,uBAAA;AAEFA,uBAAuB,CAACjC,WAAW,GAAG,yCAAyC"}
|
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.15.3-beta.
|
|
4
|
+
"version": "5.15.3-beta.3",
|
|
5
5
|
"author": {
|
|
6
6
|
"company": "Stream.io Inc",
|
|
7
7
|
"name": "Stream.io Inc"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
2
|
import { StyleSheet, View } from 'react-native';
|
|
3
3
|
import { TouchableOpacity } from 'react-native-gesture-handler';
|
|
4
4
|
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
ChannelsContextValue,
|
|
18
18
|
useChannelsContext,
|
|
19
19
|
} from '../../contexts/channelsContext/ChannelsContext';
|
|
20
|
+
import { useChatContext } from '../../contexts/chatContext/ChatContext';
|
|
20
21
|
import { useTheme } from '../../contexts/themeContext/ThemeContext';
|
|
21
22
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
22
23
|
import { vw } from '../../utils/utils';
|
|
@@ -127,12 +128,21 @@ const ChannelPreviewMessengerWithContext = <
|
|
|
127
128
|
},
|
|
128
129
|
} = useTheme();
|
|
129
130
|
|
|
131
|
+
const { client } = useChatContext<StreamChatGenerics>();
|
|
132
|
+
|
|
130
133
|
const displayName = useChannelPreviewDisplayName(
|
|
131
134
|
channel,
|
|
132
135
|
Math.floor(maxWidth / ((title.fontSize || styles.title.fontSize) / 2)),
|
|
133
136
|
);
|
|
134
137
|
|
|
135
|
-
const isChannelMuted = channel.muteStatus().muted;
|
|
138
|
+
const [isChannelMuted, setIsChannelMuted] = useState(() => channel.muteStatus().muted);
|
|
139
|
+
|
|
140
|
+
useEffect(() => {
|
|
141
|
+
const handleEvent = () => setIsChannelMuted(channel.muteStatus().muted);
|
|
142
|
+
|
|
143
|
+
client.on('notification.channel_mutes_updated', handleEvent);
|
|
144
|
+
return () => client.off('notification.channel_mutes_updated', handleEvent);
|
|
145
|
+
}, []);
|
|
136
146
|
|
|
137
147
|
return (
|
|
138
148
|
<TouchableOpacity
|
package/src/version.json
CHANGED