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.
@@ -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 _react = _interopRequireDefault(require("react"));
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 isChannelMuted = channel.muteStatus().muted;
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: 138,
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: 151,
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: 152,
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: 156,
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: 157,
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,
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: 159,
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: 160,
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: 163,
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: 164,
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: 165,
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: 213,
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,3 +1,3 @@
1
1
  {
2
- "version": "5.15.3-beta.2"
2
+ "version": "5.15.3-beta.3"
3
3
  }
@@ -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 _react = _interopRequireDefault(require("react"));
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 isChannelMuted = channel.muteStatus().muted;
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: 138,
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: 151,
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: 152,
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: 156,
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: 157,
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,
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: 159,
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: 160,
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: 163,
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: 164,
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: 165,
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: 213,
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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,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,aAAA,GAAAX,OAAA;AAEA,IAAAY,MAAA,GAAAZ,OAAA;AAAuC,IAAAa,KAAA;EAAAC,YAAA;AAEvC,IAAMC,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,IAAMC,WAAW,GAAG,IAAAC,0DAA4B,EAC9CnC,OAAO,EACPoC,IAAI,CAACC,KAAK,CAACzC,QAAQ,IAAI,CAACH,KAAK,CAACC,QAAQ,IAAIjB,MAAM,CAACgB,KAAK,CAACC,QAAQ,IAAI,CAAC,CAAC,CACvE,CAAC;EAED,IAAM4C,cAAc,GAAGtC,OAAO,CAACuC,UAAU,CAAC,CAAC,CAACC,KAAK;EAEjD,OACEhF,MAAA,YAAAiF,aAAA,CAAC7E,0BAAA,CAAA8E,gBAAgB;IACfC,OAAO,EAAE,SAAAA,QAAA,EAAM;MACb,IAAIvC,QAAQ,EAAE;QACZA,QAAQ,CAACJ,OAAO,CAAC;MACnB;IACF,CAAE;IACF4C,KAAK,EAAE,CACLnE,MAAM,CAACG,SAAS,EAChB;MAAEiE,eAAe,EAAEZ,UAAU;MAAEa,iBAAiB,EAAEd;IAAO,CAAC,EAC1DpD,SAAS,CACT;IACFmE,MAAM,EAAC,wBAAwB;IAAAC,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,GAE/B5F,MAAA,YAAAiF,aAAA,CAACnC,aAAa;IAACN,OAAO,EAAEA,OAAQ;IAAAgD,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EACnC5F,MAAA,YAAAiF,aAAA,CAAC9E,YAAA,CAAA0F,IAAI;IACHT,KAAK,EAAE,CAACnE,MAAM,CAACS,gBAAgB,EAAEA,gBAAgB,CAAE;IACnD6D,MAAM,+BAA6B/C,OAAO,CAACsD,EAAK;IAAAN,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEhD5F,MAAA,YAAAiF,aAAA,CAAC9E,YAAA,CAAA0F,IAAI;IAACT,KAAK,EAAE,CAACnE,MAAM,CAACU,GAAG,EAAEA,GAAG,CAAE;IAAA6D,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC7B5F,MAAA,YAAAiF,aAAA,CAAC1B,YAAY;IAACf,OAAO,EAAEA,OAAQ;IAACkC,WAAW,EAAEA,WAAY;IAAAc,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EAC5D5F,MAAA,YAAAiF,aAAA,CAAC9E,YAAA,CAAA0F,IAAI;IAACT,KAAK,EAAE,CAACnE,MAAM,CAACc,eAAe,EAAEJ,GAAG,CAAE;IAAA6D,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,GACxCd,cAAc,IAAI9E,MAAA,YAAAiF,aAAA,CAACpB,kBAAkB;IAAA2B,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EACzC5F,MAAA,YAAAiF,aAAA,CAACvB,kBAAkB;IAAClB,OAAO,EAAEA,OAAQ;IAACG,cAAc,EAAEA,cAAe;IAACoB,MAAM,EAAEA,MAAO;IAAAyB,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CACnF,CACF,CAAC,EACP5F,MAAA,YAAAiF,aAAA,CAAC9E,YAAA,CAAA0F,IAAI;IAACT,KAAK,EAAE,CAACnE,MAAM,CAACU,GAAG,EAAEA,GAAG,CAAE;IAAA6D,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC7B5F,MAAA,YAAAiF,aAAA,CAAChC,cAAc;IAACP,oBAAoB,EAAEA,oBAAqB;IAAA8C,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EAC9D5F,MAAA,YAAAiF,aAAA,CAAC7B,aAAa;IACZZ,OAAO,EAAEA,OAAQ;IACjBC,uBAAuB,EAAEA,uBAAwB;IACjDC,oBAAoB,EAAEA,oBAAqB;IAAA8C,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,CAC5C,CACG,CACF,CACU,CAAC;AAEvB,CAAC;AAeD,IAAMG,0CAA0C,GAAGC,iBAAK,CAACC,IAAI,CAC3D3D,kCACF,CAA8C;AAMvC,IAAM4D,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAGlC3D,KAAuD,EACpD;EACH,IAAA4D,mBAAA,GASI,IAAAC,mCAAkB,EAAqB,CAAC;IAR1CzD,cAAc,GAAAwD,mBAAA,CAAdxD,cAAc;IACdC,QAAQ,GAAAuD,mBAAA,CAARvD,QAAQ;IACRE,aAAa,GAAAqD,mBAAA,CAAbrD,aAAa;IACbG,cAAc,GAAAkD,mBAAA,CAAdlD,cAAc;IACdY,kBAAkB,GAAAsC,mBAAA,CAAlBtC,kBAAkB;IAClBT,aAAa,GAAA+C,mBAAA,CAAb/C,aAAa;IACbG,YAAY,GAAA4C,mBAAA,CAAZ5C,YAAY;IACZG,kBAAkB,GAAAyC,mBAAA,CAAlBzC,kBAAkB;EAEpB,OACE1D,MAAA,YAAAiF,aAAA,CAACc,0CAA0C,MAAAM,SAAA;IAEvC1D,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;IAAAiD,MAAA,EAAAzE,KAAA;IAAA0E,QAAA;MAAAC,QAAA,EAAA1E,YAAA;MAAA2E,UAAA;MAAAC,YAAA;IAAA;EAAA,EACV,CAAC;AAEN,CAAC;AAACU,OAAA,CAAAJ,uBAAA,GAAAA,uBAAA;AAEFA,uBAAuB,CAACxB,WAAW,GAAG,yCAAyC"}
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,3 +1,3 @@
1
1
  {
2
- "version": "5.15.3-beta.2"
2
+ "version": "5.15.3-beta.3"
3
3
  }
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.2",
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
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.15.3-beta.2"
2
+ "version": "5.15.3-beta.3"
3
3
  }