stream-chat-react-native-core 6.0.0-rc.16 → 6.0.0-rc.18

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.
@@ -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, forceUpdate),
28
- lastMessage = _useChannelPreviewDat.lastMessage,
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","_useLatestMessagePreview","_ChannelsContext","_ChatContext","_jsxRuntime","_this","_jsxFileName","ChannelPreview","props","channel","propClient","client","propForceUpdate","forceUpdate","propPreview","Preview","_useChatContext","useChatContext","contextClient","_useChannelsContext","useChannelsContext","contextForceUpdate","contextPreview","_useChannelPreviewDat","useChannelPreviewData","lastMessage","muted","unread","latestMessagePreview","useLatestMessagePreview","jsx","exports"],"sourceRoot":"../../../../src","sources":["components/ChannelPreview/ChannelPreview.tsx"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAF,OAAA;AAEA,IAAAG,gBAAA,GAAAH,OAAA;AAIA,IAAAI,YAAA,GAAAJ,OAAA;AAA0F,IAAAK,WAAA,GAAAL,OAAA;AAAA,IAAAM,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,GACE,IAAAC,mCAAkB,EAAqB,CAAC;IADrBC,kBAAkB,GAAAF,mBAAA,CAA/BN,WAAW;IAA+BS,cAAc,GAAAH,mBAAA,CAAvBJ,OAAO;EAGhD,IAAMJ,MAAM,GAAGD,UAAU,IAAIQ,aAAa;EAC1C,IAAML,WAAW,GAAGD,eAAe,IAAIS,kBAAkB;EACzD,IAAMN,OAAO,GAAGD,WAAW,IAAIQ,cAAc;EAE7C,IAAAC,qBAAA,GAAuC,IAAAC,4CAAqB,EAACf,OAAO,EAAEE,MAAM,EAAEE,WAAW,CAAC;IAAlFY,WAAW,GAAAF,qBAAA,CAAXE,WAAW;IAAEC,KAAK,GAAAH,qBAAA,CAALG,KAAK;IAAEC,MAAM,GAAAJ,qBAAA,CAANI,MAAM;EAClC,IAAMC,oBAAoB,GAAG,IAAAC,gDAAuB,EAACpB,OAAO,EAAEI,WAAW,EAAEY,WAAW,CAAC;EAEvF,OACE,IAAArB,WAAA,CAAA0B,GAAA,EAACf,OAAO;IACNN,OAAO,EAAEA,OAAQ;IACjBmB,oBAAoB,EAAEA,oBAAqB;IAC3CF,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC;AAACI,OAAA,CAAAxB,cAAA,GAAAA,cAAA","ignoreList":[]}
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,21 +7,47 @@ 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 useChannelPreviewData = function useChannelPreviewData(channel, client, forceUpdate) {
11
- var _useState = (0, _react.useState)(channel.state.messages[channel.state.messages.length - 1]),
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
- lastMessage = _useState2[0],
14
- setLastMessage = _useState2[1];
15
- var _useState3 = (0, _react.useState)(channel.countUnread()),
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
- unread = _useState4[0],
18
- setUnread = _useState4[1];
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
+ if (channelLastMessage && (channelLastMessage.id !== (lastMessage == null ? void 0 : lastMessage.id) || channelLastMessage.updated_at !== (lastMessage == null ? void 0 : lastMessage.updated_at))) {
34
+ setLastMessage(channelLastMessage);
35
+ }
36
+ var newUnreadCount = channel.countUnread();
37
+ setUnread(newUnreadCount);
38
+ }, [channel, channelLastMessageString, channelListForceUpdate]);
21
39
  (0, _react.useEffect)(function () {
22
40
  var handleReadEvent = function handleReadEvent(event) {
41
+ var _event$user, _event$user2;
23
42
  if (!event.cid) return;
24
- if (channel.cid === event.cid) setUnread(0);
43
+ if (channel.cid !== event.cid) return;
44
+ if ((event == null ? void 0 : (_event$user = event.user) == null ? void 0 : _event$user.id) === client.userID) {
45
+ setUnread(0);
46
+ } else if (event != null && (_event$user2 = event.user) != null && _event$user2.id) {
47
+ setForceUpdate(function (prev) {
48
+ return prev + 1;
49
+ });
50
+ }
25
51
  };
26
52
  var _client$on = client.on('notification.mark_read', handleReadEvent),
27
53
  unsubscribe = _client$on.unsubscribe;
@@ -29,10 +55,10 @@ var useChannelPreviewData = function useChannelPreviewData(channel, client, forc
29
55
  }, [client, channel]);
30
56
  (0, _react.useEffect)(function () {
31
57
  var handleUnreadEvent = function handleUnreadEvent(event) {
32
- var _event$user, _client$user;
58
+ var _event$user3, _client$user;
33
59
  if (!event.cid) return;
34
60
  if (channel.cid !== event.cid) return;
35
- if (((_event$user = event.user) == null ? void 0 : _event$user.id) !== ((_client$user = client.user) == null ? void 0 : _client$user.id)) return;
61
+ if (((_event$user3 = event.user) == null ? void 0 : _event$user3.id) !== ((_client$user = client.user) == null ? void 0 : _client$user.id)) return;
36
62
  setUnread(channel.countUnread());
37
63
  };
38
64
  var _client$on2 = client.on('notification.mark_unread', handleUnreadEvent),
@@ -54,15 +80,32 @@ var useChannelPreviewData = function useChannelPreviewData(channel, client, forc
54
80
  setLastMessage(channel.state.latestMessages[channel.state.latestMessages.length - 1]);
55
81
  refreshUnreadCount();
56
82
  };
57
- var listeners = [channel.on('message.new', handleEvent), channel.on('message.updated', handleEvent), channel.on('message.deleted', handleEvent), channel.on('message.undeleted', handleEvent), channel.on('channel.truncated', handleEvent)];
83
+ var handleNewMessageEvent = function handleNewMessageEvent(event) {
84
+ var message = event.message;
85
+ if (message && (!message.parent_id || message.show_in_channel)) {
86
+ setLastMessage(message);
87
+ setUnread(channel.countUnread());
88
+ }
89
+ };
90
+ var handleUpdatedOrDeletedMessage = function handleUpdatedOrDeletedMessage(event) {
91
+ setLastMessage(function (prevLastMessage) {
92
+ var _event$message;
93
+ if ((prevLastMessage == null ? void 0 : prevLastMessage.id) === ((_event$message = event.message) == null ? void 0 : _event$message.id)) {
94
+ return event.message;
95
+ }
96
+ return prevLastMessage;
97
+ });
98
+ };
99
+ 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
100
  return function () {
59
101
  return listeners.forEach(function (l) {
60
102
  return l.unsubscribe();
61
103
  });
62
104
  };
63
- }, [channel, refreshUnreadCount, forceUpdate]);
105
+ }, [channel, refreshUnreadCount, forceUpdate, channelListForceUpdate]);
106
+ var latestMessagePreview = (0, _useLatestMessagePreview.useLatestMessagePreview)(channel, forceUpdate, lastMessage);
64
107
  return {
65
- lastMessage: lastMessage,
108
+ latestMessagePreview: latestMessagePreview,
66
109
  muted: muted,
67
110
  unread: unread
68
111
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_throttle","_interopRequireDefault","_useIsChannelMuted2","useChannelPreviewData","channel","client","forceUpdate","_useState","useState","state","messages","length","_useState2","_slicedToArray2","lastMessage","setLastMessage","_useState3","countUnread","_useState4","unread","setUnread","_useIsChannelMuted","useIsChannelMuted","muted","useEffect","handleReadEvent","event","cid","_client$on","on","unsubscribe","handleUnreadEvent","_event$user","_client$user","user","id","_client$on2","refreshUnreadCount","useMemo","throttle","handleEvent","latestMessages","listeners","forEach","l","exports"],"sourceRoot":"../../../../../src","sources":["components/ChannelPreview/hooks/useChannelPreviewData.ts"],"mappings":"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","ignoreList":[]}
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","newUnreadCount","handleReadEvent","event","_event$user","_event$user2","cid","user","userID","prev","_client$on","on","unsubscribe","handleUnreadEvent","_event$user3","_client$user","_client$on2","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":[]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "6.0.0-rc.16"
2
+ "version": "6.0.0-rc.18"
3
3
  }
@@ -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, forceUpdate),
28
- lastMessage = _useChannelPreviewDat.lastMessage,
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","_useLatestMessagePreview","_ChannelsContext","_ChatContext","_jsxRuntime","_this","_jsxFileName","ChannelPreview","props","channel","propClient","client","propForceUpdate","forceUpdate","propPreview","Preview","_useChatContext","useChatContext","contextClient","_useChannelsContext","useChannelsContext","contextForceUpdate","contextPreview","_useChannelPreviewDat","useChannelPreviewData","lastMessage","muted","unread","latestMessagePreview","useLatestMessagePreview","jsx","exports"],"sourceRoot":"../../../../src","sources":["components/ChannelPreview/ChannelPreview.tsx"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAF,OAAA;AAEA,IAAAG,gBAAA,GAAAH,OAAA;AAIA,IAAAI,YAAA,GAAAJ,OAAA;AAA0F,IAAAK,WAAA,GAAAL,OAAA;AAAA,IAAAM,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,GACE,IAAAC,mCAAkB,EAAqB,CAAC;IADrBC,kBAAkB,GAAAF,mBAAA,CAA/BN,WAAW;IAA+BS,cAAc,GAAAH,mBAAA,CAAvBJ,OAAO;EAGhD,IAAMJ,MAAM,GAAGD,UAAU,IAAIQ,aAAa;EAC1C,IAAML,WAAW,GAAGD,eAAe,IAAIS,kBAAkB;EACzD,IAAMN,OAAO,GAAGD,WAAW,IAAIQ,cAAc;EAE7C,IAAAC,qBAAA,GAAuC,IAAAC,4CAAqB,EAACf,OAAO,EAAEE,MAAM,EAAEE,WAAW,CAAC;IAAlFY,WAAW,GAAAF,qBAAA,CAAXE,WAAW;IAAEC,KAAK,GAAAH,qBAAA,CAALG,KAAK;IAAEC,MAAM,GAAAJ,qBAAA,CAANI,MAAM;EAClC,IAAMC,oBAAoB,GAAG,IAAAC,gDAAuB,EAACpB,OAAO,EAAEI,WAAW,EAAEY,WAAW,CAAC;EAEvF,OACE,IAAArB,WAAA,CAAA0B,GAAA,EAACf,OAAO;IACNN,OAAO,EAAEA,OAAQ;IACjBmB,oBAAoB,EAAEA,oBAAqB;IAC3CF,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC;AAACI,OAAA,CAAAxB,cAAA,GAAAA,cAAA","ignoreList":[]}
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,21 +7,47 @@ 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 useChannelPreviewData = function useChannelPreviewData(channel, client, forceUpdate) {
11
- var _useState = (0, _react.useState)(channel.state.messages[channel.state.messages.length - 1]),
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
- lastMessage = _useState2[0],
14
- setLastMessage = _useState2[1];
15
- var _useState3 = (0, _react.useState)(channel.countUnread()),
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
- unread = _useState4[0],
18
- setUnread = _useState4[1];
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
+ if (channelLastMessage && (channelLastMessage.id !== (lastMessage == null ? void 0 : lastMessage.id) || channelLastMessage.updated_at !== (lastMessage == null ? void 0 : lastMessage.updated_at))) {
34
+ setLastMessage(channelLastMessage);
35
+ }
36
+ var newUnreadCount = channel.countUnread();
37
+ setUnread(newUnreadCount);
38
+ }, [channel, channelLastMessageString, channelListForceUpdate]);
21
39
  (0, _react.useEffect)(function () {
22
40
  var handleReadEvent = function handleReadEvent(event) {
41
+ var _event$user, _event$user2;
23
42
  if (!event.cid) return;
24
- if (channel.cid === event.cid) setUnread(0);
43
+ if (channel.cid !== event.cid) return;
44
+ if ((event == null ? void 0 : (_event$user = event.user) == null ? void 0 : _event$user.id) === client.userID) {
45
+ setUnread(0);
46
+ } else if (event != null && (_event$user2 = event.user) != null && _event$user2.id) {
47
+ setForceUpdate(function (prev) {
48
+ return prev + 1;
49
+ });
50
+ }
25
51
  };
26
52
  var _client$on = client.on('notification.mark_read', handleReadEvent),
27
53
  unsubscribe = _client$on.unsubscribe;
@@ -29,10 +55,10 @@ var useChannelPreviewData = function useChannelPreviewData(channel, client, forc
29
55
  }, [client, channel]);
30
56
  (0, _react.useEffect)(function () {
31
57
  var handleUnreadEvent = function handleUnreadEvent(event) {
32
- var _event$user, _client$user;
58
+ var _event$user3, _client$user;
33
59
  if (!event.cid) return;
34
60
  if (channel.cid !== event.cid) return;
35
- if (((_event$user = event.user) == null ? void 0 : _event$user.id) !== ((_client$user = client.user) == null ? void 0 : _client$user.id)) return;
61
+ if (((_event$user3 = event.user) == null ? void 0 : _event$user3.id) !== ((_client$user = client.user) == null ? void 0 : _client$user.id)) return;
36
62
  setUnread(channel.countUnread());
37
63
  };
38
64
  var _client$on2 = client.on('notification.mark_unread', handleUnreadEvent),
@@ -54,15 +80,32 @@ var useChannelPreviewData = function useChannelPreviewData(channel, client, forc
54
80
  setLastMessage(channel.state.latestMessages[channel.state.latestMessages.length - 1]);
55
81
  refreshUnreadCount();
56
82
  };
57
- var listeners = [channel.on('message.new', handleEvent), channel.on('message.updated', handleEvent), channel.on('message.deleted', handleEvent), channel.on('message.undeleted', handleEvent), channel.on('channel.truncated', handleEvent)];
83
+ var handleNewMessageEvent = function handleNewMessageEvent(event) {
84
+ var message = event.message;
85
+ if (message && (!message.parent_id || message.show_in_channel)) {
86
+ setLastMessage(message);
87
+ setUnread(channel.countUnread());
88
+ }
89
+ };
90
+ var handleUpdatedOrDeletedMessage = function handleUpdatedOrDeletedMessage(event) {
91
+ setLastMessage(function (prevLastMessage) {
92
+ var _event$message;
93
+ if ((prevLastMessage == null ? void 0 : prevLastMessage.id) === ((_event$message = event.message) == null ? void 0 : _event$message.id)) {
94
+ return event.message;
95
+ }
96
+ return prevLastMessage;
97
+ });
98
+ };
99
+ 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
100
  return function () {
59
101
  return listeners.forEach(function (l) {
60
102
  return l.unsubscribe();
61
103
  });
62
104
  };
63
- }, [channel, refreshUnreadCount, forceUpdate]);
105
+ }, [channel, refreshUnreadCount, forceUpdate, channelListForceUpdate]);
106
+ var latestMessagePreview = (0, _useLatestMessagePreview.useLatestMessagePreview)(channel, forceUpdate, lastMessage);
64
107
  return {
65
- lastMessage: lastMessage,
108
+ latestMessagePreview: latestMessagePreview,
66
109
  muted: muted,
67
110
  unread: unread
68
111
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_throttle","_interopRequireDefault","_useIsChannelMuted2","useChannelPreviewData","channel","client","forceUpdate","_useState","useState","state","messages","length","_useState2","_slicedToArray2","lastMessage","setLastMessage","_useState3","countUnread","_useState4","unread","setUnread","_useIsChannelMuted","useIsChannelMuted","muted","useEffect","handleReadEvent","event","cid","_client$on","on","unsubscribe","handleUnreadEvent","_event$user","_client$user","user","id","_client$on2","refreshUnreadCount","useMemo","throttle","handleEvent","latestMessages","listeners","forEach","l","exports"],"sourceRoot":"../../../../../src","sources":["components/ChannelPreview/hooks/useChannelPreviewData.ts"],"mappings":"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","ignoreList":[]}
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","newUnreadCount","handleReadEvent","event","_event$user","_event$user2","cid","user","userID","prev","_client$on","on","unsubscribe","handleUnreadEvent","_event$user3","_client$user","_client$on2","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":[]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "6.0.0-rc.16"
2
+ "version": "6.0.0-rc.18"
3
3
  }
@@ -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;AAK3C,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,yJA0B1B,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, MessageResponse, StreamChat } from 'stream-chat';
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>, forceUpdate?: number) => {
4
- lastMessage: MessageResponse<StreamChatGenerics> | import("stream-chat").FormatMessageResponse<StreamChatGenerics>;
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,EAAuB,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI7F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,qBAAqB,iLAKlB,MAAM;;;;CAsErB,CAAC"}
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;;;;CAiH7B,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": "6.0.0-rc.16",
4
+ "version": "6.0.0-rc.18",
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 { forceUpdate: contextForceUpdate, Preview: contextPreview } =
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 { lastMessage, muted, unread } = useChannelPreviewData(channel, client, forceUpdate);
42
- const latestMessagePreview = useLatestMessagePreview(channel, forceUpdate, lastMessage);
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 = generateChannel({
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 = generateChannel({
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 = generateChannel({
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 = generateChannel({
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 = generateChannel({
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 = generateChannel({
293
+ const c = generateChannelWrapper({
295
294
  countUnread: jest.fn().mockReturnValue(10),
296
- muteStatus: jest.fn().mockReturnValue({ muted: false }),
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('10');
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,33 @@ export const useChannelPreviewData = <
12
15
  >(
13
16
  channel: Channel<StreamChatGenerics>,
14
17
  client: StreamChat<StreamChatGenerics>,
15
- forceUpdate?: number,
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
+ if (
35
+ channelLastMessage &&
36
+ (channelLastMessage.id !== lastMessage?.id ||
37
+ channelLastMessage.updated_at !== lastMessage?.updated_at)
38
+ ) {
39
+ setLastMessage(channelLastMessage);
40
+ }
41
+ const newUnreadCount = channel.countUnread();
42
+ setUnread(newUnreadCount);
43
+ // eslint-disable-next-line react-hooks/exhaustive-deps
44
+ }, [channel, channelLastMessageString, channelListForceUpdate]);
23
45
 
24
46
  /**
25
47
  * This effect listens for the `notification.mark_read` event and sets the unread count to 0
@@ -27,7 +49,12 @@ export const useChannelPreviewData = <
27
49
  useEffect(() => {
28
50
  const handleReadEvent = (event: Event) => {
29
51
  if (!event.cid) return;
30
- if (channel.cid === event.cid) setUnread(0);
52
+ if (channel.cid !== event.cid) return;
53
+ if (event?.user?.id === client.userID) {
54
+ setUnread(0);
55
+ } else if (event?.user?.id) {
56
+ setForceUpdate((prev) => prev + 1);
57
+ }
31
58
  };
32
59
  const { unsubscribe } = client.on('notification.mark_read', handleReadEvent);
33
60
  return unsubscribe;
@@ -70,16 +97,35 @@ export const useChannelPreviewData = <
70
97
  refreshUnreadCount();
71
98
  };
72
99
 
100
+ const handleNewMessageEvent = (event: Event<StreamChatGenerics>) => {
101
+ const message = event.message;
102
+ if (message && (!message.parent_id || message.show_in_channel)) {
103
+ setLastMessage(message);
104
+ setUnread(channel.countUnread());
105
+ }
106
+ };
107
+
108
+ const handleUpdatedOrDeletedMessage = (event: Event<StreamChatGenerics>) => {
109
+ setLastMessage((prevLastMessage) => {
110
+ if (prevLastMessage?.id === event.message?.id) {
111
+ return event.message;
112
+ }
113
+ return prevLastMessage;
114
+ });
115
+ };
116
+
73
117
  const listeners = [
74
- channel.on('message.new', handleEvent),
75
- channel.on('message.updated', handleEvent),
76
- channel.on('message.deleted', handleEvent),
118
+ channel.on('message.new', handleNewMessageEvent),
119
+ channel.on('message.updated', handleUpdatedOrDeletedMessage),
120
+ channel.on('message.deleted', handleUpdatedOrDeletedMessage),
77
121
  channel.on('message.undeleted', handleEvent),
78
122
  channel.on('channel.truncated', handleEvent),
79
123
  ];
80
124
 
81
125
  return () => listeners.forEach((l) => l.unsubscribe());
82
- }, [channel, refreshUnreadCount, forceUpdate]);
126
+ }, [channel, refreshUnreadCount, forceUpdate, channelListForceUpdate]);
127
+
128
+ const latestMessagePreview = useLatestMessagePreview(channel, forceUpdate, lastMessage);
83
129
 
84
- return { lastMessage, muted, unread };
130
+ return { latestMessagePreview, muted, unread };
85
131
  };
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "6.0.0-rc.16"
2
+ "version": "6.0.0-rc.18"
3
3
  }