stream-chat-react-native-core 5.42.1 → 5.42.2-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +2 -6
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewData.js +67 -17
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewData.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js +4 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreview.js +2 -6
- package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewData.js +67 -17
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewData.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js +4 -0
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewData.d.ts +3 -3
- package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewData.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/ChannelPreview/ChannelPreview.tsx +6 -6
- package/src/components/ChannelPreview/__tests__/ChannelPreview.test.tsx +19 -20
- package/src/components/ChannelPreview/hooks/useChannelPreviewData.ts +61 -8
- package/src/components/Message/MessageSimple/utils/generateMarkdownText.ts +6 -0
- package/src/version.json +1 -1
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
exports.ChannelPreview = void 0;
|
|
6
6
|
var _react = _interopRequireDefault(require("react"));
|
|
7
7
|
var _useChannelPreviewData = require("./hooks/useChannelPreviewData");
|
|
8
|
-
var _useLatestMessagePreview = require("./hooks/useLatestMessagePreview");
|
|
9
8
|
var _ChannelsContext = require("../../contexts/channelsContext/ChannelsContext");
|
|
10
9
|
var _ChatContext = require("../../contexts/chatContext/ChatContext");
|
|
11
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -19,16 +18,13 @@ var ChannelPreview = function ChannelPreview(props) {
|
|
|
19
18
|
var _useChatContext = (0, _ChatContext.useChatContext)(),
|
|
20
19
|
contextClient = _useChatContext.client;
|
|
21
20
|
var _useChannelsContext = (0, _ChannelsContext.useChannelsContext)(),
|
|
22
|
-
contextForceUpdate = _useChannelsContext.forceUpdate,
|
|
23
21
|
contextPreview = _useChannelsContext.Preview;
|
|
24
22
|
var client = propClient || contextClient;
|
|
25
|
-
var forceUpdate = propForceUpdate || contextForceUpdate;
|
|
26
23
|
var Preview = propPreview || contextPreview;
|
|
27
|
-
var _useChannelPreviewDat = (0, _useChannelPreviewData.useChannelPreviewData)(channel, client,
|
|
28
|
-
|
|
24
|
+
var _useChannelPreviewDat = (0, _useChannelPreviewData.useChannelPreviewData)(channel, client, propForceUpdate),
|
|
25
|
+
latestMessagePreview = _useChannelPreviewDat.latestMessagePreview,
|
|
29
26
|
muted = _useChannelPreviewDat.muted,
|
|
30
27
|
unread = _useChannelPreviewDat.unread;
|
|
31
|
-
var latestMessagePreview = (0, _useLatestMessagePreview.useLatestMessagePreview)(channel, forceUpdate, lastMessage);
|
|
32
28
|
return (0, _jsxRuntime.jsx)(Preview, {
|
|
33
29
|
channel: channel,
|
|
34
30
|
latestMessagePreview: latestMessagePreview,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_useChannelPreviewData","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_useChannelPreviewData","_ChannelsContext","_ChatContext","_jsxRuntime","_this","_jsxFileName","ChannelPreview","props","channel","propClient","client","propForceUpdate","forceUpdate","propPreview","Preview","_useChatContext","useChatContext","contextClient","_useChannelsContext","useChannelsContext","contextPreview","_useChannelPreviewDat","useChannelPreviewData","latestMessagePreview","muted","unread","jsx","exports"],"sourceRoot":"../../../../src","sources":["components/ChannelPreview/ChannelPreview.tsx"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,sBAAA,GAAAD,OAAA;AAEA,IAAAE,gBAAA,GAAAF,OAAA;AAIA,IAAAG,YAAA,GAAAH,OAAA;AAA0F,IAAAI,WAAA,GAAAJ,OAAA;AAAA,IAAAK,KAAA;EAAAC,YAAA;AAcnF,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAGzBC,KAA8C,EAC3C;EACH,IAAQC,OAAO,GAA6ED,KAAK,CAAzFC,OAAO;IAAUC,UAAU,GAAyDF,KAAK,CAAhFG,MAAM;IAA2BC,eAAe,GAA2BJ,KAAK,CAA5DK,WAAW;IAA4BC,WAAW,GAAKN,KAAK,CAA9BO,OAAO;EAE1E,IAAAC,eAAA,GAAkC,IAAAC,2BAAc,EAAqB,CAAC;IAAtDC,aAAa,GAAAF,eAAA,CAArBL,MAAM;EACd,IAAAQ,mBAAA,GAAoC,IAAAC,mCAAkB,EAAqB,CAAC;IAA3DC,cAAc,GAAAF,mBAAA,CAAvBJ,OAAO;EAEf,IAAMJ,MAAM,GAAGD,UAAU,IAAIQ,aAAa;EAC1C,IAAMH,OAAO,GAAGD,WAAW,IAAIO,cAAc;EAE7C,IAAAC,qBAAA,GAAgD,IAAAC,4CAAqB,EACnEd,OAAO,EACPE,MAAM,EACNC,eACF,CAAC;IAJOY,oBAAoB,GAAAF,qBAAA,CAApBE,oBAAoB;IAAEC,KAAK,GAAAH,qBAAA,CAALG,KAAK;IAAEC,MAAM,GAAAJ,qBAAA,CAANI,MAAM;EAM3C,OACE,IAAAtB,WAAA,CAAAuB,GAAA,EAACZ,OAAO;IACNN,OAAO,EAAEA,OAAQ;IACjBe,oBAAoB,EAAEA,oBAAqB;IAC3CC,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC;AAACE,OAAA,CAAArB,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -7,36 +7,69 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _throttle = _interopRequireDefault(require("lodash/throttle"));
|
|
9
9
|
var _useIsChannelMuted2 = require("./useIsChannelMuted");
|
|
10
|
-
var
|
|
11
|
-
|
|
10
|
+
var _useLatestMessagePreview = require("./useLatestMessagePreview");
|
|
11
|
+
var _contexts = require("../../../contexts");
|
|
12
|
+
var useChannelPreviewData = function useChannelPreviewData(channel, client, forceUpdateOverride) {
|
|
13
|
+
var _useState = (0, _react.useState)(0),
|
|
12
14
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var _useState3 = (0, _react.useState)(channel.
|
|
15
|
+
forceUpdate = _useState2[0],
|
|
16
|
+
setForceUpdate = _useState2[1];
|
|
17
|
+
var _useState3 = (0, _react.useState)(channel.state.messages[channel.state.messages.length - 1]),
|
|
16
18
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
lastMessage = _useState4[0],
|
|
20
|
+
setLastMessage = _useState4[1];
|
|
21
|
+
var _useState5 = (0, _react.useState)(channel.countUnread()),
|
|
22
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
23
|
+
unread = _useState6[0],
|
|
24
|
+
setUnread = _useState6[1];
|
|
19
25
|
var _useIsChannelMuted = (0, _useIsChannelMuted2.useIsChannelMuted)(channel),
|
|
20
26
|
muted = _useIsChannelMuted.muted;
|
|
27
|
+
var _useChannelsContext = (0, _contexts.useChannelsContext)(),
|
|
28
|
+
contextForceUpdate = _useChannelsContext.forceUpdate;
|
|
29
|
+
var channelListForceUpdate = forceUpdateOverride != null ? forceUpdateOverride : contextForceUpdate;
|
|
30
|
+
var channelLastMessage = channel.lastMessage();
|
|
31
|
+
var channelLastMessageString = "".concat(channelLastMessage == null ? void 0 : channelLastMessage.id).concat(channelLastMessage == null ? void 0 : channelLastMessage.updated_at);
|
|
32
|
+
(0, _react.useEffect)(function () {
|
|
33
|
+
var _client$on = client.on('notification.mark_read', function () {
|
|
34
|
+
setUnread(channel.countUnread());
|
|
35
|
+
}),
|
|
36
|
+
unsubscribe = _client$on.unsubscribe;
|
|
37
|
+
return unsubscribe;
|
|
38
|
+
}, [channel, client]);
|
|
39
|
+
(0, _react.useEffect)(function () {
|
|
40
|
+
if (channelLastMessage && (channelLastMessage.id !== (lastMessage == null ? void 0 : lastMessage.id) || channelLastMessage.updated_at !== (lastMessage == null ? void 0 : lastMessage.updated_at))) {
|
|
41
|
+
setLastMessage(channelLastMessage);
|
|
42
|
+
}
|
|
43
|
+
var newUnreadCount = channel.countUnread();
|
|
44
|
+
setUnread(newUnreadCount);
|
|
45
|
+
}, [channel, channelLastMessageString, channelListForceUpdate]);
|
|
21
46
|
(0, _react.useEffect)(function () {
|
|
22
47
|
var handleReadEvent = function handleReadEvent(event) {
|
|
48
|
+
var _event$user, _event$user2;
|
|
23
49
|
if (!event.cid) return;
|
|
24
|
-
if (channel.cid
|
|
50
|
+
if (channel.cid !== event.cid) return;
|
|
51
|
+
if ((event == null ? void 0 : (_event$user = event.user) == null ? void 0 : _event$user.id) === client.userID) {
|
|
52
|
+
setUnread(0);
|
|
53
|
+
} else if (event != null && (_event$user2 = event.user) != null && _event$user2.id) {
|
|
54
|
+
setForceUpdate(function (prev) {
|
|
55
|
+
return prev + 1;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
25
58
|
};
|
|
26
|
-
var _client$
|
|
27
|
-
unsubscribe = _client$
|
|
59
|
+
var _client$on2 = client.on('message.read', handleReadEvent),
|
|
60
|
+
unsubscribe = _client$on2.unsubscribe;
|
|
28
61
|
return unsubscribe;
|
|
29
62
|
}, [client, channel]);
|
|
30
63
|
(0, _react.useEffect)(function () {
|
|
31
64
|
var handleUnreadEvent = function handleUnreadEvent(event) {
|
|
32
|
-
var _event$
|
|
65
|
+
var _event$user3, _client$user;
|
|
33
66
|
if (!event.cid) return;
|
|
34
67
|
if (channel.cid !== event.cid) return;
|
|
35
|
-
if (((_event$
|
|
68
|
+
if (((_event$user3 = event.user) == null ? void 0 : _event$user3.id) !== ((_client$user = client.user) == null ? void 0 : _client$user.id)) return;
|
|
36
69
|
setUnread(channel.countUnread());
|
|
37
70
|
};
|
|
38
|
-
var _client$
|
|
39
|
-
unsubscribe = _client$
|
|
71
|
+
var _client$on3 = client.on('notification.mark_unread', handleUnreadEvent),
|
|
72
|
+
unsubscribe = _client$on3.unsubscribe;
|
|
40
73
|
return unsubscribe;
|
|
41
74
|
}, [client, channel]);
|
|
42
75
|
var refreshUnreadCount = (0, _react.useMemo)(function () {
|
|
@@ -54,15 +87,32 @@ var useChannelPreviewData = function useChannelPreviewData(channel, client, forc
|
|
|
54
87
|
setLastMessage(channel.state.latestMessages[channel.state.latestMessages.length - 1]);
|
|
55
88
|
refreshUnreadCount();
|
|
56
89
|
};
|
|
57
|
-
var
|
|
90
|
+
var handleNewMessageEvent = function handleNewMessageEvent(event) {
|
|
91
|
+
var message = event.message;
|
|
92
|
+
if (message && (!message.parent_id || message.show_in_channel)) {
|
|
93
|
+
setLastMessage(message);
|
|
94
|
+
setUnread(channel.countUnread());
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
var handleUpdatedOrDeletedMessage = function handleUpdatedOrDeletedMessage(event) {
|
|
98
|
+
setLastMessage(function (prevLastMessage) {
|
|
99
|
+
var _event$message;
|
|
100
|
+
if ((prevLastMessage == null ? void 0 : prevLastMessage.id) === ((_event$message = event.message) == null ? void 0 : _event$message.id)) {
|
|
101
|
+
return event.message;
|
|
102
|
+
}
|
|
103
|
+
return prevLastMessage;
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
var listeners = [channel.on('message.new', handleNewMessageEvent), channel.on('message.updated', handleUpdatedOrDeletedMessage), channel.on('message.deleted', handleUpdatedOrDeletedMessage), channel.on('message.undeleted', handleEvent), channel.on('channel.truncated', handleEvent)];
|
|
58
107
|
return function () {
|
|
59
108
|
return listeners.forEach(function (l) {
|
|
60
109
|
return l.unsubscribe();
|
|
61
110
|
});
|
|
62
111
|
};
|
|
63
|
-
}, [channel, refreshUnreadCount, forceUpdate]);
|
|
112
|
+
}, [channel, refreshUnreadCount, forceUpdate, channelListForceUpdate]);
|
|
113
|
+
var latestMessagePreview = (0, _useLatestMessagePreview.useLatestMessagePreview)(channel, forceUpdate, lastMessage);
|
|
64
114
|
return {
|
|
65
|
-
|
|
115
|
+
latestMessagePreview: latestMessagePreview,
|
|
66
116
|
muted: muted,
|
|
67
117
|
unread: unread
|
|
68
118
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_throttle","_interopRequireDefault","_useIsChannelMuted2","useChannelPreviewData","channel","client","
|
|
1
|
+
{"version":3,"names":["_react","require","_throttle","_interopRequireDefault","_useIsChannelMuted2","_useLatestMessagePreview","_contexts","useChannelPreviewData","channel","client","forceUpdateOverride","_useState","useState","_useState2","_slicedToArray2","forceUpdate","setForceUpdate","_useState3","state","messages","length","_useState4","lastMessage","setLastMessage","_useState5","countUnread","_useState6","unread","setUnread","_useIsChannelMuted","useIsChannelMuted","muted","_useChannelsContext","useChannelsContext","contextForceUpdate","channelListForceUpdate","channelLastMessage","channelLastMessageString","concat","id","updated_at","useEffect","_client$on","on","unsubscribe","newUnreadCount","handleReadEvent","event","_event$user","_event$user2","cid","user","userID","prev","_client$on2","handleUnreadEvent","_event$user3","_client$user","_client$on3","refreshUnreadCount","useMemo","throttle","handleEvent","latestMessages","handleNewMessageEvent","message","parent_id","show_in_channel","handleUpdatedOrDeletedMessage","prevLastMessage","_event$message","listeners","forEach","l","latestMessagePreview","useLatestMessagePreview","exports"],"sourceRoot":"../../../../../src","sources":["components/ChannelPreview/hooks/useChannelPreviewData.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,6 +34,10 @@ var generateMarkdownText = function generateMarkdownText(text) {
|
|
|
34
34
|
_iterator.f();
|
|
35
35
|
}
|
|
36
36
|
resultText = resultText.replace(/[<"'>]/g, '\\$&');
|
|
37
|
+
resultText = resultText.replace(/(```[\s\S]*?```|`.*?`)|\n[ ]{2,}/g, function (_, code) {
|
|
38
|
+
if (code) return code;
|
|
39
|
+
return '\n';
|
|
40
|
+
});
|
|
37
41
|
return resultText;
|
|
38
42
|
};
|
|
39
43
|
exports.generateMarkdownText = generateMarkdownText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_truncate","_interopRequireDefault","require","_parseLinks","_utils","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","generateMarkdownText","text","resultText","trim","linkInfos","parseLinksFromText","_iterator","_step","linkInfo","displayLink","truncate","raw","omission","normalRegEx","RegExp","escapeRegExp","markdown","concat","url","replace","mentionsRegex","exports"],"sourceRoot":"../../../../../../src","sources":["components/Message/MessageSimple/utils/generateMarkdownText.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_truncate","_interopRequireDefault","require","_parseLinks","_utils","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","generateMarkdownText","text","resultText","trim","linkInfos","parseLinksFromText","_iterator","_step","linkInfo","displayLink","truncate","raw","omission","normalRegEx","RegExp","escapeRegExp","markdown","concat","url","replace","mentionsRegex","_","code","exports"],"sourceRoot":"../../../../../../src","sources":["components/Message/MessageSimple/utils/generateMarkdownText.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
exports.ChannelPreview = void 0;
|
|
6
6
|
var _react = _interopRequireDefault(require("react"));
|
|
7
7
|
var _useChannelPreviewData = require("./hooks/useChannelPreviewData");
|
|
8
|
-
var _useLatestMessagePreview = require("./hooks/useLatestMessagePreview");
|
|
9
8
|
var _ChannelsContext = require("../../contexts/channelsContext/ChannelsContext");
|
|
10
9
|
var _ChatContext = require("../../contexts/chatContext/ChatContext");
|
|
11
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -19,16 +18,13 @@ var ChannelPreview = function ChannelPreview(props) {
|
|
|
19
18
|
var _useChatContext = (0, _ChatContext.useChatContext)(),
|
|
20
19
|
contextClient = _useChatContext.client;
|
|
21
20
|
var _useChannelsContext = (0, _ChannelsContext.useChannelsContext)(),
|
|
22
|
-
contextForceUpdate = _useChannelsContext.forceUpdate,
|
|
23
21
|
contextPreview = _useChannelsContext.Preview;
|
|
24
22
|
var client = propClient || contextClient;
|
|
25
|
-
var forceUpdate = propForceUpdate || contextForceUpdate;
|
|
26
23
|
var Preview = propPreview || contextPreview;
|
|
27
|
-
var _useChannelPreviewDat = (0, _useChannelPreviewData.useChannelPreviewData)(channel, client,
|
|
28
|
-
|
|
24
|
+
var _useChannelPreviewDat = (0, _useChannelPreviewData.useChannelPreviewData)(channel, client, propForceUpdate),
|
|
25
|
+
latestMessagePreview = _useChannelPreviewDat.latestMessagePreview,
|
|
29
26
|
muted = _useChannelPreviewDat.muted,
|
|
30
27
|
unread = _useChannelPreviewDat.unread;
|
|
31
|
-
var latestMessagePreview = (0, _useLatestMessagePreview.useLatestMessagePreview)(channel, forceUpdate, lastMessage);
|
|
32
28
|
return (0, _jsxRuntime.jsx)(Preview, {
|
|
33
29
|
channel: channel,
|
|
34
30
|
latestMessagePreview: latestMessagePreview,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_useChannelPreviewData","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_useChannelPreviewData","_ChannelsContext","_ChatContext","_jsxRuntime","_this","_jsxFileName","ChannelPreview","props","channel","propClient","client","propForceUpdate","forceUpdate","propPreview","Preview","_useChatContext","useChatContext","contextClient","_useChannelsContext","useChannelsContext","contextPreview","_useChannelPreviewDat","useChannelPreviewData","latestMessagePreview","muted","unread","jsx","exports"],"sourceRoot":"../../../../src","sources":["components/ChannelPreview/ChannelPreview.tsx"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,sBAAA,GAAAD,OAAA;AAEA,IAAAE,gBAAA,GAAAF,OAAA;AAIA,IAAAG,YAAA,GAAAH,OAAA;AAA0F,IAAAI,WAAA,GAAAJ,OAAA;AAAA,IAAAK,KAAA;EAAAC,YAAA;AAcnF,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAGzBC,KAA8C,EAC3C;EACH,IAAQC,OAAO,GAA6ED,KAAK,CAAzFC,OAAO;IAAUC,UAAU,GAAyDF,KAAK,CAAhFG,MAAM;IAA2BC,eAAe,GAA2BJ,KAAK,CAA5DK,WAAW;IAA4BC,WAAW,GAAKN,KAAK,CAA9BO,OAAO;EAE1E,IAAAC,eAAA,GAAkC,IAAAC,2BAAc,EAAqB,CAAC;IAAtDC,aAAa,GAAAF,eAAA,CAArBL,MAAM;EACd,IAAAQ,mBAAA,GAAoC,IAAAC,mCAAkB,EAAqB,CAAC;IAA3DC,cAAc,GAAAF,mBAAA,CAAvBJ,OAAO;EAEf,IAAMJ,MAAM,GAAGD,UAAU,IAAIQ,aAAa;EAC1C,IAAMH,OAAO,GAAGD,WAAW,IAAIO,cAAc;EAE7C,IAAAC,qBAAA,GAAgD,IAAAC,4CAAqB,EACnEd,OAAO,EACPE,MAAM,EACNC,eACF,CAAC;IAJOY,oBAAoB,GAAAF,qBAAA,CAApBE,oBAAoB;IAAEC,KAAK,GAAAH,qBAAA,CAALG,KAAK;IAAEC,MAAM,GAAAJ,qBAAA,CAANI,MAAM;EAM3C,OACE,IAAAtB,WAAA,CAAAuB,GAAA,EAACZ,OAAO;IACNN,OAAO,EAAEA,OAAQ;IACjBe,oBAAoB,EAAEA,oBAAqB;IAC3CC,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC;AAACE,OAAA,CAAArB,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -7,36 +7,69 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _throttle = _interopRequireDefault(require("lodash/throttle"));
|
|
9
9
|
var _useIsChannelMuted2 = require("./useIsChannelMuted");
|
|
10
|
-
var
|
|
11
|
-
|
|
10
|
+
var _useLatestMessagePreview = require("./useLatestMessagePreview");
|
|
11
|
+
var _contexts = require("../../../contexts");
|
|
12
|
+
var useChannelPreviewData = function useChannelPreviewData(channel, client, forceUpdateOverride) {
|
|
13
|
+
var _useState = (0, _react.useState)(0),
|
|
12
14
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var _useState3 = (0, _react.useState)(channel.
|
|
15
|
+
forceUpdate = _useState2[0],
|
|
16
|
+
setForceUpdate = _useState2[1];
|
|
17
|
+
var _useState3 = (0, _react.useState)(channel.state.messages[channel.state.messages.length - 1]),
|
|
16
18
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
lastMessage = _useState4[0],
|
|
20
|
+
setLastMessage = _useState4[1];
|
|
21
|
+
var _useState5 = (0, _react.useState)(channel.countUnread()),
|
|
22
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
23
|
+
unread = _useState6[0],
|
|
24
|
+
setUnread = _useState6[1];
|
|
19
25
|
var _useIsChannelMuted = (0, _useIsChannelMuted2.useIsChannelMuted)(channel),
|
|
20
26
|
muted = _useIsChannelMuted.muted;
|
|
27
|
+
var _useChannelsContext = (0, _contexts.useChannelsContext)(),
|
|
28
|
+
contextForceUpdate = _useChannelsContext.forceUpdate;
|
|
29
|
+
var channelListForceUpdate = forceUpdateOverride != null ? forceUpdateOverride : contextForceUpdate;
|
|
30
|
+
var channelLastMessage = channel.lastMessage();
|
|
31
|
+
var channelLastMessageString = "".concat(channelLastMessage == null ? void 0 : channelLastMessage.id).concat(channelLastMessage == null ? void 0 : channelLastMessage.updated_at);
|
|
32
|
+
(0, _react.useEffect)(function () {
|
|
33
|
+
var _client$on = client.on('notification.mark_read', function () {
|
|
34
|
+
setUnread(channel.countUnread());
|
|
35
|
+
}),
|
|
36
|
+
unsubscribe = _client$on.unsubscribe;
|
|
37
|
+
return unsubscribe;
|
|
38
|
+
}, [channel, client]);
|
|
39
|
+
(0, _react.useEffect)(function () {
|
|
40
|
+
if (channelLastMessage && (channelLastMessage.id !== (lastMessage == null ? void 0 : lastMessage.id) || channelLastMessage.updated_at !== (lastMessage == null ? void 0 : lastMessage.updated_at))) {
|
|
41
|
+
setLastMessage(channelLastMessage);
|
|
42
|
+
}
|
|
43
|
+
var newUnreadCount = channel.countUnread();
|
|
44
|
+
setUnread(newUnreadCount);
|
|
45
|
+
}, [channel, channelLastMessageString, channelListForceUpdate]);
|
|
21
46
|
(0, _react.useEffect)(function () {
|
|
22
47
|
var handleReadEvent = function handleReadEvent(event) {
|
|
48
|
+
var _event$user, _event$user2;
|
|
23
49
|
if (!event.cid) return;
|
|
24
|
-
if (channel.cid
|
|
50
|
+
if (channel.cid !== event.cid) return;
|
|
51
|
+
if ((event == null ? void 0 : (_event$user = event.user) == null ? void 0 : _event$user.id) === client.userID) {
|
|
52
|
+
setUnread(0);
|
|
53
|
+
} else if (event != null && (_event$user2 = event.user) != null && _event$user2.id) {
|
|
54
|
+
setForceUpdate(function (prev) {
|
|
55
|
+
return prev + 1;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
25
58
|
};
|
|
26
|
-
var _client$
|
|
27
|
-
unsubscribe = _client$
|
|
59
|
+
var _client$on2 = client.on('message.read', handleReadEvent),
|
|
60
|
+
unsubscribe = _client$on2.unsubscribe;
|
|
28
61
|
return unsubscribe;
|
|
29
62
|
}, [client, channel]);
|
|
30
63
|
(0, _react.useEffect)(function () {
|
|
31
64
|
var handleUnreadEvent = function handleUnreadEvent(event) {
|
|
32
|
-
var _event$
|
|
65
|
+
var _event$user3, _client$user;
|
|
33
66
|
if (!event.cid) return;
|
|
34
67
|
if (channel.cid !== event.cid) return;
|
|
35
|
-
if (((_event$
|
|
68
|
+
if (((_event$user3 = event.user) == null ? void 0 : _event$user3.id) !== ((_client$user = client.user) == null ? void 0 : _client$user.id)) return;
|
|
36
69
|
setUnread(channel.countUnread());
|
|
37
70
|
};
|
|
38
|
-
var _client$
|
|
39
|
-
unsubscribe = _client$
|
|
71
|
+
var _client$on3 = client.on('notification.mark_unread', handleUnreadEvent),
|
|
72
|
+
unsubscribe = _client$on3.unsubscribe;
|
|
40
73
|
return unsubscribe;
|
|
41
74
|
}, [client, channel]);
|
|
42
75
|
var refreshUnreadCount = (0, _react.useMemo)(function () {
|
|
@@ -54,15 +87,32 @@ var useChannelPreviewData = function useChannelPreviewData(channel, client, forc
|
|
|
54
87
|
setLastMessage(channel.state.latestMessages[channel.state.latestMessages.length - 1]);
|
|
55
88
|
refreshUnreadCount();
|
|
56
89
|
};
|
|
57
|
-
var
|
|
90
|
+
var handleNewMessageEvent = function handleNewMessageEvent(event) {
|
|
91
|
+
var message = event.message;
|
|
92
|
+
if (message && (!message.parent_id || message.show_in_channel)) {
|
|
93
|
+
setLastMessage(message);
|
|
94
|
+
setUnread(channel.countUnread());
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
var handleUpdatedOrDeletedMessage = function handleUpdatedOrDeletedMessage(event) {
|
|
98
|
+
setLastMessage(function (prevLastMessage) {
|
|
99
|
+
var _event$message;
|
|
100
|
+
if ((prevLastMessage == null ? void 0 : prevLastMessage.id) === ((_event$message = event.message) == null ? void 0 : _event$message.id)) {
|
|
101
|
+
return event.message;
|
|
102
|
+
}
|
|
103
|
+
return prevLastMessage;
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
var listeners = [channel.on('message.new', handleNewMessageEvent), channel.on('message.updated', handleUpdatedOrDeletedMessage), channel.on('message.deleted', handleUpdatedOrDeletedMessage), channel.on('message.undeleted', handleEvent), channel.on('channel.truncated', handleEvent)];
|
|
58
107
|
return function () {
|
|
59
108
|
return listeners.forEach(function (l) {
|
|
60
109
|
return l.unsubscribe();
|
|
61
110
|
});
|
|
62
111
|
};
|
|
63
|
-
}, [channel, refreshUnreadCount, forceUpdate]);
|
|
112
|
+
}, [channel, refreshUnreadCount, forceUpdate, channelListForceUpdate]);
|
|
113
|
+
var latestMessagePreview = (0, _useLatestMessagePreview.useLatestMessagePreview)(channel, forceUpdate, lastMessage);
|
|
64
114
|
return {
|
|
65
|
-
|
|
115
|
+
latestMessagePreview: latestMessagePreview,
|
|
66
116
|
muted: muted,
|
|
67
117
|
unread: unread
|
|
68
118
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_throttle","_interopRequireDefault","_useIsChannelMuted2","useChannelPreviewData","channel","client","
|
|
1
|
+
{"version":3,"names":["_react","require","_throttle","_interopRequireDefault","_useIsChannelMuted2","_useLatestMessagePreview","_contexts","useChannelPreviewData","channel","client","forceUpdateOverride","_useState","useState","_useState2","_slicedToArray2","forceUpdate","setForceUpdate","_useState3","state","messages","length","_useState4","lastMessage","setLastMessage","_useState5","countUnread","_useState6","unread","setUnread","_useIsChannelMuted","useIsChannelMuted","muted","_useChannelsContext","useChannelsContext","contextForceUpdate","channelListForceUpdate","channelLastMessage","channelLastMessageString","concat","id","updated_at","useEffect","_client$on","on","unsubscribe","newUnreadCount","handleReadEvent","event","_event$user","_event$user2","cid","user","userID","prev","_client$on2","handleUnreadEvent","_event$user3","_client$user","_client$on3","refreshUnreadCount","useMemo","throttle","handleEvent","latestMessages","handleNewMessageEvent","message","parent_id","show_in_channel","handleUpdatedOrDeletedMessage","prevLastMessage","_event$message","listeners","forEach","l","latestMessagePreview","useLatestMessagePreview","exports"],"sourceRoot":"../../../../../src","sources":["components/ChannelPreview/hooks/useChannelPreviewData.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,6 +34,10 @@ var generateMarkdownText = function generateMarkdownText(text) {
|
|
|
34
34
|
_iterator.f();
|
|
35
35
|
}
|
|
36
36
|
resultText = resultText.replace(/[<"'>]/g, '\\$&');
|
|
37
|
+
resultText = resultText.replace(/(```[\s\S]*?```|`.*?`)|\n[ ]{2,}/g, function (_, code) {
|
|
38
|
+
if (code) return code;
|
|
39
|
+
return '\n';
|
|
40
|
+
});
|
|
37
41
|
return resultText;
|
|
38
42
|
};
|
|
39
43
|
exports.generateMarkdownText = generateMarkdownText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_truncate","_interopRequireDefault","require","_parseLinks","_utils","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","generateMarkdownText","text","resultText","trim","linkInfos","parseLinksFromText","_iterator","_step","linkInfo","displayLink","truncate","raw","omission","normalRegEx","RegExp","escapeRegExp","markdown","concat","url","replace","mentionsRegex","exports"],"sourceRoot":"../../../../../../src","sources":["components/Message/MessageSimple/utils/generateMarkdownText.ts"],"mappings":";;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAAuD,SAAAG,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,EAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAQ,MAAA,qBAAAN,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAO,CAAA,UAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAH,CAAA,IAAAT,CAAA,CAAAQ,MAAA,WAAAK,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAd,CAAA,CAAAS,CAAA,UAAAM,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAT,EAAA,GAAAA,EAAA,CAAAoB,IAAA,CAAAtB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAW,IAAA,GAAArB,EAAA,CAAAsB,IAAA,IAAAL,gBAAA,GAAAI,IAAA,CAAAV,IAAA,SAAAU,IAAA,KAAAR,CAAA,WAAAA,EAAAU,GAAA,IAAAL,MAAA,SAAAC,GAAA,GAAAI,GAAA,KAAAR,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAjB,EAAA,oBAAAA,EAAA,8BAAAkB,MAAA,QAAAC,GAAA;AAAA,SAAAd,4BAAAP,CAAA,EAAA0B,MAAA,SAAA1B,CAAA,qBAAAA,CAAA,sBAAA2B,iBAAA,CAAA3B,CAAA,EAAA0B,MAAA,OAAAd,CAAA,GAAAgB,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAR,IAAA,CAAAtB,CAAA,EAAA+B,KAAA,aAAAnB,CAAA,iBAAAZ,CAAA,CAAAgC,WAAA,EAAApB,CAAA,GAAAZ,CAAA,CAAAgC,WAAA,CAAAC,IAAA,MAAArB,CAAA,cAAAA,CAAA,mBAAAP,KAAA,CAAA6B,IAAA,CAAAlC,CAAA,OAAAY,CAAA,+DAAAuB,IAAA,CAAAvB,CAAA,UAAAe,iBAAA,CAAA3B,CAAA,EAAA0B,MAAA;AAAA,SAAAC,kBAAAS,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAA5B,MAAA,EAAA6B,GAAA,GAAAD,GAAA,CAAA5B,MAAA,WAAAC,CAAA,MAAA6B,IAAA,OAAAjC,KAAA,CAAAgC,GAAA,GAAA5B,CAAA,GAAA4B,GAAA,EAAA5B,CAAA,IAAA6B,IAAA,CAAA7B,CAAA,IAAA2B,GAAA,CAAA3B,CAAA,UAAA6B,IAAA;AAEhD,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,IAAa,EAAK;EACrD,IAAI,CAACA,IAAI,EAAE,OAAO,IAAI;EAGtB,IAAIC,UAAU,GAAGD,IAAI,CAACE,IAAI,CAAC,CAAC;EAG5B,IAAMC,SAAS,GAAG,IAAAC,8BAAkB,EAACH,UAAU,CAAC;EAAC,IAAAI,SAAA,GAAA9C,0BAAA,CAE1B4C,SAAS;IAAAG,KAAA;EAAA;IAAhC,KAAAD,SAAA,CAAAlC,CAAA,MAAAmC,KAAA,GAAAD,SAAA,CAAAjC,CAAA,IAAAC,IAAA,GAAkC;MAAA,IAAvBkC,QAAQ,GAAAD,KAAA,CAAAhC,KAAA;MACjB,IAAMkC,WAAW,GAAG,IAAAC,oBAAQ,EAACF,QAAQ,CAACG,GAAG,EAAE;QACzC1C,MAAM,EAAE,GAAG;QACX2C,QAAQ,EAAE;MACZ,CAAC,CAAC;MAGF,IAAMC,WAAW,GAAG,IAAIC,MAAM,CAAC,IAAAC,mBAAY,EAACP,QAAQ,CAACG,GAAG,CAAC,EAAE,GAAG,CAAC;MAC/D,IAAMK,QAAQ,OAAAC,MAAA,CAAOR,WAAW,QAAAQ,MAAA,CAAKT,QAAQ,CAACU,GAAG,MAAG;MACpDhB,UAAU,GAAGD,IAAI,CAACkB,OAAO,CAACN,WAAW,EAAEG,QAAQ,CAAC;MAIhD,IAAMI,aAAa,GAAG,IAAIN,MAAM,QAAAG,MAAA,CACvB,IAAAF,mBAAY,EAACN,WAAW,CAAC,YAAAQ,MAAA,CAAS,IAAAF,mBAAY,EAACP,QAAQ,CAACU,GAAG,CAAC,UACnE,GACF,CAAC;MACDhB,UAAU,GAAGA,UAAU,CAACiB,OAAO,CAACC,aAAa,MAAAH,MAAA,CAAMR,WAAW,CAAE,CAAC;IACnE;EAAC,SAAA3B,GAAA;IAAAwB,SAAA,CAAA9B,CAAA,CAAAM,GAAA;EAAA;IAAAwB,SAAA,CAAA5B,CAAA;EAAA;EAEDwB,UAAU,GAAGA,UAAU,CAACiB,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"names":["_truncate","_interopRequireDefault","require","_parseLinks","_utils","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","generateMarkdownText","text","resultText","trim","linkInfos","parseLinksFromText","_iterator","_step","linkInfo","displayLink","truncate","raw","omission","normalRegEx","RegExp","escapeRegExp","markdown","concat","url","replace","mentionsRegex","_","code","exports"],"sourceRoot":"../../../../../../src","sources":["components/Message/MessageSimple/utils/generateMarkdownText.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/version.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelPreview.d.ts","sourceRoot":"","sources":["../../../../src/components/ChannelPreview/ChannelPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ChannelPreview.d.ts","sourceRoot":"","sources":["../../../../src/components/ChannelPreview/ChannelPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EACL,oBAAoB,EAErB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAkB,MAAM,wCAAwC,CAAC;AAE1F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,MAAM,mBAAmB,CAC7B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,CAAC,GAC/D,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC,GAAG;IACnF;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACtC,CAAC;AAEJ,eAAO,MAAM,cAAc,yJA2B1B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Channel,
|
|
1
|
+
import type { Channel, StreamChat } from 'stream-chat';
|
|
2
2
|
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
3
|
-
export declare const useChannelPreviewData: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(channel: Channel<StreamChatGenerics>, client: StreamChat<StreamChatGenerics>,
|
|
4
|
-
|
|
3
|
+
export declare const useChannelPreviewData: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(channel: Channel<StreamChatGenerics>, client: StreamChat<StreamChatGenerics>, forceUpdateOverride?: number) => {
|
|
4
|
+
latestMessagePreview: import("./useLatestMessagePreview").LatestMessagePreview<StreamChatGenerics>;
|
|
5
5
|
muted: boolean;
|
|
6
6
|
unread: number;
|
|
7
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChannelPreviewData.d.ts","sourceRoot":"","sources":["../../../../../src/components/ChannelPreview/hooks/useChannelPreviewData.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"useChannelPreviewData.d.ts","sourceRoot":"","sources":["../../../../../src/components/ChannelPreview/hooks/useChannelPreviewData.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAwC,UAAU,EAAE,MAAM,aAAa,CAAC;AAO7F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,qBAAqB,yLAKV,MAAM;;;;CAwH7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateMarkdownText.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Message/MessageSimple/utils/generateMarkdownText.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB,UAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"generateMarkdownText.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Message/MessageSimple/utils/generateMarkdownText.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB,UAAW,MAAM,kBAsCjD,CAAC"}
|
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.42.
|
|
4
|
+
"version": "5.42.2-beta.2",
|
|
5
5
|
"author": {
|
|
6
6
|
"company": "Stream.io Inc",
|
|
7
7
|
"name": "Stream.io Inc"
|
|
@@ -3,7 +3,6 @@ import React from 'react';
|
|
|
3
3
|
import type { Channel } from 'stream-chat';
|
|
4
4
|
|
|
5
5
|
import { useChannelPreviewData } from './hooks/useChannelPreviewData';
|
|
6
|
-
import { useLatestMessagePreview } from './hooks/useLatestMessagePreview';
|
|
7
6
|
|
|
8
7
|
import {
|
|
9
8
|
ChannelsContextValue,
|
|
@@ -31,15 +30,16 @@ export const ChannelPreview = <
|
|
|
31
30
|
const { channel, client: propClient, forceUpdate: propForceUpdate, Preview: propPreview } = props;
|
|
32
31
|
|
|
33
32
|
const { client: contextClient } = useChatContext<StreamChatGenerics>();
|
|
34
|
-
const {
|
|
35
|
-
useChannelsContext<StreamChatGenerics>();
|
|
33
|
+
const { Preview: contextPreview } = useChannelsContext<StreamChatGenerics>();
|
|
36
34
|
|
|
37
35
|
const client = propClient || contextClient;
|
|
38
|
-
const forceUpdate = propForceUpdate || contextForceUpdate;
|
|
39
36
|
const Preview = propPreview || contextPreview;
|
|
40
37
|
|
|
41
|
-
const {
|
|
42
|
-
|
|
38
|
+
const { latestMessagePreview, muted, unread } = useChannelPreviewData(
|
|
39
|
+
channel,
|
|
40
|
+
client,
|
|
41
|
+
propForceUpdate,
|
|
42
|
+
);
|
|
43
43
|
|
|
44
44
|
return (
|
|
45
45
|
<Preview
|
|
@@ -69,6 +69,15 @@ describe('ChannelPreview', () => {
|
|
|
69
69
|
);
|
|
70
70
|
};
|
|
71
71
|
|
|
72
|
+
const generateChannelWrapper = (overrides: Record<string, unknown>) =>
|
|
73
|
+
generateChannel({
|
|
74
|
+
countUnread: jest.fn().mockReturnValue(0),
|
|
75
|
+
initialized: true,
|
|
76
|
+
lastMessage: jest.fn().mockReturnValue(generateMessage()),
|
|
77
|
+
muteStatus: jest.fn().mockReturnValue({ muted: false }),
|
|
78
|
+
...overrides,
|
|
79
|
+
});
|
|
80
|
+
|
|
72
81
|
const useInitializeChannel = async (c: GetOrCreateChannelApiParams) => {
|
|
73
82
|
useMockedApis(chatClient, [getOrCreateChannelApi(c)]);
|
|
74
83
|
|
|
@@ -89,9 +98,8 @@ describe('ChannelPreview', () => {
|
|
|
89
98
|
it("should not update the unread count if the event's cid does not match the channel's cid", async () => {
|
|
90
99
|
const channelOnMock = jest.fn().mockReturnValue({ unsubscribe: jest.fn() });
|
|
91
100
|
|
|
92
|
-
const c =
|
|
101
|
+
const c = generateChannelWrapper({
|
|
93
102
|
countUnread: jest.fn().mockReturnValue(10),
|
|
94
|
-
muteStatus: jest.fn().mockReturnValue({ muted: false }),
|
|
95
103
|
on: channelOnMock,
|
|
96
104
|
});
|
|
97
105
|
|
|
@@ -117,9 +125,8 @@ describe('ChannelPreview', () => {
|
|
|
117
125
|
it('should update the unread count to 0', async () => {
|
|
118
126
|
const channelOnMock = jest.fn().mockReturnValue({ unsubscribe: jest.fn() });
|
|
119
127
|
|
|
120
|
-
const c =
|
|
128
|
+
const c = generateChannelWrapper({
|
|
121
129
|
countUnread: jest.fn().mockReturnValue(10),
|
|
122
|
-
muteStatus: jest.fn().mockReturnValue({ muted: false }),
|
|
123
130
|
on: channelOnMock,
|
|
124
131
|
});
|
|
125
132
|
|
|
@@ -147,9 +154,7 @@ describe('ChannelPreview', () => {
|
|
|
147
154
|
it("should not update the unread count if the event's cid is undefined", async () => {
|
|
148
155
|
const channelOnMock = jest.fn().mockReturnValue({ unsubscribe: jest.fn() });
|
|
149
156
|
|
|
150
|
-
const c =
|
|
151
|
-
countUnread: jest.fn().mockReturnValue(0),
|
|
152
|
-
muteStatus: jest.fn().mockReturnValue({ muted: false }),
|
|
157
|
+
const c = generateChannelWrapper({
|
|
153
158
|
on: channelOnMock,
|
|
154
159
|
});
|
|
155
160
|
|
|
@@ -182,9 +187,7 @@ describe('ChannelPreview', () => {
|
|
|
182
187
|
it("should not update the unread count if the event's cid does not match the channel's cid", async () => {
|
|
183
188
|
const channelOnMock = jest.fn().mockReturnValue({ unsubscribe: jest.fn() });
|
|
184
189
|
|
|
185
|
-
const c =
|
|
186
|
-
countUnread: jest.fn().mockReturnValue(0),
|
|
187
|
-
muteStatus: jest.fn().mockReturnValue({ muted: false }),
|
|
190
|
+
const c = generateChannelWrapper({
|
|
188
191
|
on: channelOnMock,
|
|
189
192
|
});
|
|
190
193
|
|
|
@@ -217,9 +220,7 @@ describe('ChannelPreview', () => {
|
|
|
217
220
|
it("should not update the unread count if the event's user id does not match the client's user id", async () => {
|
|
218
221
|
const channelOnMock = jest.fn().mockReturnValue({ unsubscribe: jest.fn() });
|
|
219
222
|
|
|
220
|
-
const c =
|
|
221
|
-
countUnread: jest.fn().mockReturnValue(0),
|
|
222
|
-
muteStatus: jest.fn().mockReturnValue({ muted: false }),
|
|
223
|
+
const c = generateChannelWrapper({
|
|
223
224
|
on: channelOnMock,
|
|
224
225
|
});
|
|
225
226
|
|
|
@@ -255,12 +256,10 @@ describe('ChannelPreview', () => {
|
|
|
255
256
|
await useInitializeChannel(c);
|
|
256
257
|
const channelOnMock = jest.fn().mockReturnValue({ unsubscribe: jest.fn() });
|
|
257
258
|
|
|
258
|
-
const testChannel = {
|
|
259
|
+
const testChannel = generateChannelWrapper({
|
|
259
260
|
...channel,
|
|
260
|
-
countUnread: jest.fn().mockReturnValue(0),
|
|
261
|
-
muteStatus: jest.fn().mockReturnValue({ muted: false }),
|
|
262
261
|
on: channelOnMock,
|
|
263
|
-
};
|
|
262
|
+
});
|
|
264
263
|
|
|
265
264
|
const { getByTestId } = render(<TestComponent />);
|
|
266
265
|
|
|
@@ -291,9 +290,9 @@ describe('ChannelPreview', () => {
|
|
|
291
290
|
it('should update the unread count to 0 if the channel is muted', async () => {
|
|
292
291
|
const channelOnMock = jest.fn().mockReturnValue({ unsubscribe: jest.fn() });
|
|
293
292
|
|
|
294
|
-
const c =
|
|
293
|
+
const c = generateChannelWrapper({
|
|
295
294
|
countUnread: jest.fn().mockReturnValue(10),
|
|
296
|
-
muteStatus: jest.fn().mockReturnValue({ muted:
|
|
295
|
+
muteStatus: jest.fn().mockReturnValue({ muted: true }),
|
|
297
296
|
on: channelOnMock,
|
|
298
297
|
});
|
|
299
298
|
|
|
@@ -304,7 +303,7 @@ describe('ChannelPreview', () => {
|
|
|
304
303
|
await waitFor(() => getByTestId('channel-id'));
|
|
305
304
|
|
|
306
305
|
await waitFor(() => {
|
|
307
|
-
expect(getByTestId('unread-count')).toHaveTextContent('
|
|
306
|
+
expect(getByTestId('unread-count')).toHaveTextContent('0');
|
|
308
307
|
});
|
|
309
308
|
|
|
310
309
|
act(() => {
|
|
@@ -5,6 +5,9 @@ import type { Channel, ChannelState, Event, MessageResponse, StreamChat } from '
|
|
|
5
5
|
|
|
6
6
|
import { useIsChannelMuted } from './useIsChannelMuted';
|
|
7
7
|
|
|
8
|
+
import { useLatestMessagePreview } from './useLatestMessagePreview';
|
|
9
|
+
|
|
10
|
+
import { useChannelsContext } from '../../../contexts';
|
|
8
11
|
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
9
12
|
|
|
10
13
|
export const useChannelPreviewData = <
|
|
@@ -12,14 +15,40 @@ export const useChannelPreviewData = <
|
|
|
12
15
|
>(
|
|
13
16
|
channel: Channel<StreamChatGenerics>,
|
|
14
17
|
client: StreamChat<StreamChatGenerics>,
|
|
15
|
-
|
|
18
|
+
forceUpdateOverride?: number,
|
|
16
19
|
) => {
|
|
20
|
+
const [forceUpdate, setForceUpdate] = useState(0);
|
|
17
21
|
const [lastMessage, setLastMessage] = useState<
|
|
18
22
|
| ReturnType<ChannelState<StreamChatGenerics>['formatMessage']>
|
|
19
23
|
| MessageResponse<StreamChatGenerics>
|
|
20
24
|
>(channel.state.messages[channel.state.messages.length - 1]);
|
|
21
25
|
const [unread, setUnread] = useState(channel.countUnread());
|
|
22
26
|
const { muted } = useIsChannelMuted(channel);
|
|
27
|
+
const { forceUpdate: contextForceUpdate } = useChannelsContext<StreamChatGenerics>();
|
|
28
|
+
const channelListForceUpdate = forceUpdateOverride ?? contextForceUpdate;
|
|
29
|
+
|
|
30
|
+
const channelLastMessage = channel.lastMessage();
|
|
31
|
+
const channelLastMessageString = `${channelLastMessage?.id}${channelLastMessage?.updated_at}`;
|
|
32
|
+
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
const { unsubscribe } = client.on('notification.mark_read', () => {
|
|
35
|
+
setUnread(channel.countUnread());
|
|
36
|
+
});
|
|
37
|
+
return unsubscribe;
|
|
38
|
+
}, [channel, client]);
|
|
39
|
+
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (
|
|
42
|
+
channelLastMessage &&
|
|
43
|
+
(channelLastMessage.id !== lastMessage?.id ||
|
|
44
|
+
channelLastMessage.updated_at !== lastMessage?.updated_at)
|
|
45
|
+
) {
|
|
46
|
+
setLastMessage(channelLastMessage);
|
|
47
|
+
}
|
|
48
|
+
const newUnreadCount = channel.countUnread();
|
|
49
|
+
setUnread(newUnreadCount);
|
|
50
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
51
|
+
}, [channel, channelLastMessageString, channelListForceUpdate]);
|
|
23
52
|
|
|
24
53
|
/**
|
|
25
54
|
* This effect listens for the `notification.mark_read` event and sets the unread count to 0
|
|
@@ -27,9 +56,14 @@ export const useChannelPreviewData = <
|
|
|
27
56
|
useEffect(() => {
|
|
28
57
|
const handleReadEvent = (event: Event) => {
|
|
29
58
|
if (!event.cid) return;
|
|
30
|
-
if (channel.cid
|
|
59
|
+
if (channel.cid !== event.cid) return;
|
|
60
|
+
if (event?.user?.id === client.userID) {
|
|
61
|
+
setUnread(0);
|
|
62
|
+
} else if (event?.user?.id) {
|
|
63
|
+
setForceUpdate((prev) => prev + 1);
|
|
64
|
+
}
|
|
31
65
|
};
|
|
32
|
-
const { unsubscribe } = client.on('
|
|
66
|
+
const { unsubscribe } = client.on('message.read', handleReadEvent);
|
|
33
67
|
return unsubscribe;
|
|
34
68
|
}, [client, channel]);
|
|
35
69
|
|
|
@@ -70,16 +104,35 @@ export const useChannelPreviewData = <
|
|
|
70
104
|
refreshUnreadCount();
|
|
71
105
|
};
|
|
72
106
|
|
|
107
|
+
const handleNewMessageEvent = (event: Event<StreamChatGenerics>) => {
|
|
108
|
+
const message = event.message;
|
|
109
|
+
if (message && (!message.parent_id || message.show_in_channel)) {
|
|
110
|
+
setLastMessage(message);
|
|
111
|
+
setUnread(channel.countUnread());
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
const handleUpdatedOrDeletedMessage = (event: Event<StreamChatGenerics>) => {
|
|
116
|
+
setLastMessage((prevLastMessage) => {
|
|
117
|
+
if (prevLastMessage?.id === event.message?.id) {
|
|
118
|
+
return event.message;
|
|
119
|
+
}
|
|
120
|
+
return prevLastMessage;
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
|
|
73
124
|
const listeners = [
|
|
74
|
-
channel.on('message.new',
|
|
75
|
-
channel.on('message.updated',
|
|
76
|
-
channel.on('message.deleted',
|
|
125
|
+
channel.on('message.new', handleNewMessageEvent),
|
|
126
|
+
channel.on('message.updated', handleUpdatedOrDeletedMessage),
|
|
127
|
+
channel.on('message.deleted', handleUpdatedOrDeletedMessage),
|
|
77
128
|
channel.on('message.undeleted', handleEvent),
|
|
78
129
|
channel.on('channel.truncated', handleEvent),
|
|
79
130
|
];
|
|
80
131
|
|
|
81
132
|
return () => listeners.forEach((l) => l.unsubscribe());
|
|
82
|
-
}, [channel, refreshUnreadCount, forceUpdate]);
|
|
133
|
+
}, [channel, refreshUnreadCount, forceUpdate, channelListForceUpdate]);
|
|
134
|
+
|
|
135
|
+
const latestMessagePreview = useLatestMessagePreview(channel, forceUpdate, lastMessage);
|
|
83
136
|
|
|
84
|
-
return {
|
|
137
|
+
return { latestMessagePreview, muted, unread };
|
|
85
138
|
};
|
|
@@ -35,5 +35,11 @@ export const generateMarkdownText = (text?: string) => {
|
|
|
35
35
|
|
|
36
36
|
resultText = resultText.replace(/[<"'>]/g, '\\$&');
|
|
37
37
|
|
|
38
|
+
// Remove whitespaces that come directly after newlines except in code blocks where we deem this allowed.
|
|
39
|
+
resultText = resultText.replace(/(```[\s\S]*?```|`.*?`)|\n[ ]{2,}/g, (_, code) => {
|
|
40
|
+
if (code) return code;
|
|
41
|
+
return '\n';
|
|
42
|
+
});
|
|
43
|
+
|
|
38
44
|
return resultText;
|
|
39
45
|
};
|
package/src/version.json
CHANGED