stream-chat-react-native-core 5.44.3 → 5.44.4
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/MessageList/hooks/useLastReadData.js +21 -0
- package/lib/commonjs/components/MessageList/hooks/useLastReadData.js.map +1 -0
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +6 -2
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getReadStates.js +6 -7
- package/lib/commonjs/components/MessageList/utils/getReadStates.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/MessageList/hooks/useLastReadData.js +21 -0
- package/lib/module/components/MessageList/hooks/useLastReadData.js.map +1 -0
- package/lib/module/components/MessageList/hooks/useMessageList.js +6 -2
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/components/MessageList/utils/getReadStates.js +6 -7
- package/lib/module/components/MessageList/utils/getReadStates.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
- package/lib/typescript/components/MessageList/hooks/useLastReadData.d.ts +13 -0
- package/lib/typescript/components/MessageList/hooks/useLastReadData.d.ts.map +1 -0
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/utils/getReadStates.d.ts +2 -2
- package/lib/typescript/components/MessageList/utils/getReadStates.d.ts.map +1 -1
- package/lib/typescript/store/mappers/mapStorableToChannel.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/MessageList/hooks/useLastReadData.ts +37 -0
- package/src/components/MessageList/hooks/useMessageList.ts +7 -2
- package/src/components/MessageList/utils/getReadStates.ts +8 -8
- package/src/version.json +1 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.useLastReadData = void 0;
|
|
5
|
+
var _react = require("react");
|
|
6
|
+
var _getReadStates = require("../utils/getReadStates");
|
|
7
|
+
var useLastReadData = function useLastReadData(props) {
|
|
8
|
+
var messages = props.messages,
|
|
9
|
+
read = props.read,
|
|
10
|
+
_props$returnAllReadD = props.returnAllReadData,
|
|
11
|
+
returnAllReadData = _props$returnAllReadD === void 0 ? true : _props$returnAllReadD,
|
|
12
|
+
userID = props.userID;
|
|
13
|
+
return (0, _react.useMemo)(function () {
|
|
14
|
+
return (0, _getReadStates.getReadStates)(messages.filter(function (_ref) {
|
|
15
|
+
var user = _ref.user;
|
|
16
|
+
return (user == null ? void 0 : user.id) === userID;
|
|
17
|
+
}), read, returnAllReadData);
|
|
18
|
+
}, [messages, read, returnAllReadData, userID]);
|
|
19
|
+
};
|
|
20
|
+
exports.useLastReadData = useLastReadData;
|
|
21
|
+
//# sourceMappingURL=useLastReadData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_getReadStates","useLastReadData","props","messages","read","_props$returnAllReadD","returnAllReadData","userID","useMemo","getReadStates","filter","_ref","user","id","exports"],"sourceRoot":"../../../../../src","sources":["components/MessageList/hooks/useLastReadData.ts"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,IAAAC,cAAA,GAAAD,OAAA;AAaO,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAG1BC,KAAgD,EAC7C;EACH,IAAQC,QAAQ,GAA6CD,KAAK,CAA1DC,QAAQ;IAAEC,IAAI,GAAuCF,KAAK,CAAhDE,IAAI;IAAAC,qBAAA,GAAuCH,KAAK,CAA1CI,iBAAiB;IAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IAAEE,MAAM,GAAKL,KAAK,CAAhBK,MAAM;EAExD,OAAO,IAAAC,cAAO,EACZ;IAAA,OACE,IAAAC,4BAAa,EACXN,QAAQ,CAACO,MAAM,CAAC,UAAAC,IAAA;MAAA,IAAGC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAA,OAAO,CAAAA,IAAI,oBAAJA,IAAI,CAAEC,EAAE,MAAKN,MAAM;IAAA,EAAC,EAClDH,IAAI,EACJE,iBACF,CAAC;EAAA,GACH,CAACH,QAAQ,EAAEC,IAAI,EAAEE,iBAAiB,EAAEC,MAAM,CAC5C,CAAC;AACH,CAAC;AAACO,OAAA,CAAAb,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
exports.useMessageList = exports.isMessageWithStylesReadByAndDateSeparator = void 0;
|
|
6
6
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
7
|
+
var _useLastReadData = require("./useLastReadData");
|
|
7
8
|
var _ChannelContext = require("../../../contexts/channelContext/ChannelContext");
|
|
8
9
|
var _ChatContext = require("../../../contexts/chatContext/ChatContext");
|
|
9
10
|
var _MessagesContext = require("../../../contexts/messagesContext/MessagesContext");
|
|
@@ -11,7 +12,6 @@ var _PaginatedMessageListContext = require("../../../contexts/paginatedMessageLi
|
|
|
11
12
|
var _ThreadContext = require("../../../contexts/threadContext/ThreadContext");
|
|
12
13
|
var _getDateSeparators = require("../utils/getDateSeparators");
|
|
13
14
|
var _getGroupStyles = require("../utils/getGroupStyles");
|
|
14
|
-
var _getReadStates = require("../utils/getReadStates");
|
|
15
15
|
var isMessageWithStylesReadByAndDateSeparator = function isMessageWithStylesReadByAndDateSeparator(message) {
|
|
16
16
|
return message.readBy !== undefined;
|
|
17
17
|
};
|
|
@@ -49,7 +49,11 @@ var useMessageList = function useMessageList(params) {
|
|
|
49
49
|
noGroupByUser: noGroupByUser,
|
|
50
50
|
userId: client.userID
|
|
51
51
|
});
|
|
52
|
-
var readData = (0,
|
|
52
|
+
var readData = (0, _useLastReadData.useLastReadData)({
|
|
53
|
+
messages: messageList,
|
|
54
|
+
read: readList,
|
|
55
|
+
userID: client.userID
|
|
56
|
+
});
|
|
53
57
|
var messagesWithStylesReadByAndDateSeparator = messageList.filter(function (msg) {
|
|
54
58
|
var isMessageTypeDeleted = msg.type === 'deleted';
|
|
55
59
|
if (deletedMessagesVisibilityType === 'sender') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_useLastReadData","require","_ChannelContext","_ChatContext","_MessagesContext","_PaginatedMessageListContext","_ThreadContext","_getDateSeparators","_getGroupStyles","isMessageWithStylesReadByAndDateSeparator","message","readBy","undefined","exports","useMessageList","params","noGroupByUser","threadList","_useChatContext","useChatContext","client","_useChannelContext","useChannelContext","hideDateSeparators","maxTimeBetweenGroupedMessages","read","_useMessagesContext","useMessagesContext","deletedMessagesVisibilityType","_useMessagesContext$g","getMessagesGroupStyles","getGroupStyles","_usePaginatedMessageL","usePaginatedMessageListContext","messages","_useThreadContext","useThreadContext","threadMessages","messageList","readList","dateSeparators","getDateSeparators","userId","userID","messageGroupStyles","readData","useLastReadData","messagesWithStylesReadByAndDateSeparator","filter","msg","isMessageTypeDeleted","type","_msg$user","user","id","_msg$user2","map","Object","assign","dateSeparator","groupStyles","processedMessageList","_toConsumableArray2","reverse","rawMessageList"],"sourceRoot":"../../../../../src","sources":["components/MessageList/hooks/useMessageList.ts"],"mappings":";;;;;;AAEA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AAIA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAIA,IAAAI,4BAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AAEA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AAyBO,IAAMQ,yCAAyC,GAAG,SAA5CA,yCAAyCA,CAGpDC,OAAwC;EAAA,OAEvCA,OAAO,CAAkEC,MAAM,KAAKC,SAAS;AAAA;AAACC,OAAA,CAAAJ,yCAAA,GAAAA,yCAAA;AAE1F,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAGzBC,MAA4B,EACzB;EACH,IAAQC,aAAa,GAAiBD,MAAM,CAApCC,aAAa;IAAEC,UAAU,GAAKF,MAAM,CAArBE,UAAU;EACjC,IAAAC,eAAA,GAAmB,IAAAC,2BAAc,EAAqB,CAAC;IAA/CC,MAAM,GAAAF,eAAA,CAANE,MAAM;EACd,IAAAC,kBAAA,GACE,IAAAC,iCAAiB,EAAqB,CAAC;IADjCC,kBAAkB,GAAAF,kBAAA,CAAlBE,kBAAkB;IAAEC,6BAA6B,GAAAH,kBAAA,CAA7BG,6BAA6B;IAAEC,IAAI,GAAAJ,kBAAA,CAAJI,IAAI;EAE/D,IAAAC,mBAAA,GACE,IAAAC,mCAAkB,EAAqB,CAAC;IADlCC,6BAA6B,GAAAF,mBAAA,CAA7BE,6BAA6B;IAAAC,qBAAA,GAAAH,mBAAA,CAAEI,sBAAsB;IAAtBA,sBAAsB,GAAAD,qBAAA,cAAGE,8BAAc,GAAAF,qBAAA;EAE9E,IAAAG,qBAAA,GAAqB,IAAAC,2DAA8B,EAAqB,CAAC;IAAjEC,QAAQ,GAAAF,qBAAA,CAARE,QAAQ;EAChB,IAAAC,iBAAA,GAA2B,IAAAC,+BAAgB,EAAqB,CAAC;IAAzDC,cAAc,GAAAF,iBAAA,CAAdE,cAAc;EAEtB,IAAMC,WAAW,GAAGrB,UAAU,GAAGoB,cAAc,GAAGH,QAAQ;EAC1D,IAAMK,QAAqE,GAAGtB,UAAU,GACpFL,SAAS,GACTa,IAAI;EAER,IAAMe,cAAc,GAAG,IAAAC,oCAAiB,EAAqB;IAC3Db,6BAA6B,EAA7BA,6BAA6B;IAC7BL,kBAAkB,EAAlBA,kBAAkB;IAClBW,QAAQ,EAAEI,WAAW;IACrBI,MAAM,EAAEtB,MAAM,CAACuB;EACjB,CAAC,CAAC;EAEF,IAAMC,kBAAkB,GAAGd,sBAAsB,CAAqB;IACpEU,cAAc,EAAdA,cAAc;IACdjB,kBAAkB,EAAlBA,kBAAkB;IAClBC,6BAA6B,EAA7BA,6BAA6B;IAC7BU,QAAQ,EAAEI,WAAW;IACrBtB,aAAa,EAAbA,aAAa;IACb0B,MAAM,EAAEtB,MAAM,CAACuB;EACjB,CAAC,CAAC;EAEF,IAAME,QAAQ,GAAG,IAAAC,gCAAe,EAAC;IAC/BZ,QAAQ,EAAEI,WAAW;IACrBb,IAAI,EAAEc,QAAQ;IACdI,MAAM,EAAEvB,MAAM,CAACuB;EACjB,CAAC,CAAC;EAEF,IAAMI,wCAAwC,GAAGT,WAAW,CACzDU,MAAM,CAAC,UAACC,GAAG,EAAK;IACf,IAAMC,oBAAoB,GAAGD,GAAG,CAACE,IAAI,KAAK,SAAS;IACnD,IAAIvB,6BAA6B,KAAK,QAAQ,EAAE;MAAA,IAAAwB,SAAA;MAC9C,OAAO,CAACF,oBAAoB,IAAI,EAAAE,SAAA,GAAAH,GAAG,CAACI,IAAI,qBAARD,SAAA,CAAUE,EAAE,MAAKlC,MAAM,CAACuB,MAAM;IAChE,CAAC,MAAM,IAAIf,6BAA6B,KAAK,UAAU,EAAE;MAAA,IAAA2B,UAAA;MACvD,OAAO,CAACL,oBAAoB,IAAI,EAAAK,UAAA,GAAAN,GAAG,CAACI,IAAI,qBAARE,UAAA,CAAUD,EAAE,MAAKlC,MAAM,CAACuB,MAAM;IAChE,CAAC,MAAM,IAAIf,6BAA6B,KAAK,OAAO,EAAE;MACpD,OAAO,CAACsB,oBAAoB;IAC9B,CAAC,MAAM;MACL,OAAOD,GAAG;IACZ;EACF,CAAC,CAAC,CACDO,GAAG,CAAC,UAACP,GAAG;IAAA,OAAAQ,MAAA,CAAAC,MAAA,KACJT,GAAG;MACNU,aAAa,EAAEnB,cAAc,CAACS,GAAG,CAACK,EAAE,CAAC,IAAI1C,SAAS;MAClDgD,WAAW,EAAEhB,kBAAkB,CAACK,GAAG,CAACK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;MACrD3C,MAAM,EAAEsC,GAAG,CAACK,EAAE,GAAGT,QAAQ,CAACI,GAAG,CAACK,EAAE,CAAC,IAAI,KAAK,GAAG;IAAK;EAAA,CAClD,CAAC;EAEL,IAAMO,oBAAoB,GAAG,IAAAC,mBAAA,aACxBf,wCAAwC,EAC3CgB,OAAO,CAAC,CAAsC;EAEhD,OAAO;IAELF,oBAAoB,EAApBA,oBAAoB;IAEpBG,cAAc,EAAE1B;EAClB,CAAC;AACH,CAAC;AAACzB,OAAA,CAAAC,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
2
2
|
value: true
|
|
3
3
|
});
|
|
4
4
|
exports.getReadStates = void 0;
|
|
5
|
-
var getReadStates = function getReadStates(
|
|
5
|
+
var getReadStates = function getReadStates(messages, read, returnAllReadData) {
|
|
6
6
|
var readData = {};
|
|
7
7
|
if (read) {
|
|
8
8
|
Object.values(read).forEach(function (readState) {
|
|
@@ -10,17 +10,16 @@ var getReadStates = function getReadStates(clientUserId, messages, read) {
|
|
|
10
10
|
var userLastReadMsgId;
|
|
11
11
|
messages.forEach(function (msg) {
|
|
12
12
|
if (msg.created_at && msg.created_at < readState.last_read) {
|
|
13
|
-
var _msg$user;
|
|
14
13
|
userLastReadMsgId = msg.id;
|
|
15
|
-
if (
|
|
16
|
-
readData[userLastReadMsgId]
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
if (returnAllReadData) {
|
|
15
|
+
if (!readData[userLastReadMsgId]) {
|
|
16
|
+
readData[userLastReadMsgId] = 0;
|
|
17
|
+
}
|
|
19
18
|
readData[userLastReadMsgId] = readData[userLastReadMsgId] + 1;
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
21
|
});
|
|
23
|
-
if (userLastReadMsgId) {
|
|
22
|
+
if (userLastReadMsgId && !returnAllReadData) {
|
|
24
23
|
if (!readData[userLastReadMsgId]) {
|
|
25
24
|
readData[userLastReadMsgId] = 0;
|
|
26
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getReadStates","
|
|
1
|
+
{"version":3,"names":["getReadStates","messages","read","returnAllReadData","readData","Object","values","forEach","readState","last_read","userLastReadMsgId","msg","created_at","id","exports"],"sourceRoot":"../../../../../src","sources":["components/MessageList/utils/getReadStates.ts"],"mappings":";;;;AAKO,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAGxBC,QAE4D,EAC5DC,IAAsD,EACtDC,iBAA2B,EACxB;EACH,IAAMC,QAAgC,GAAG,CAAC,CAAC;EAE3C,IAAIF,IAAI,EAAE;IAQRG,MAAM,CAACC,MAAM,CAACJ,IAAI,CAAC,CAACK,OAAO,CAAC,UAACC,SAAS,EAAK;MACzC,IAAI,CAACA,SAAS,CAACC,SAAS,EAAE;MAE1B,IAAIC,iBAAqC;MAGzCT,QAAQ,CAACM,OAAO,CAAC,UAACI,GAAG,EAAK;QACxB,IAAIA,GAAG,CAACC,UAAU,IAAID,GAAG,CAACC,UAAU,GAAGJ,SAAS,CAACC,SAAS,EAAE;UAC1DC,iBAAiB,GAAGC,GAAG,CAACE,EAAE;UAE1B,IAAIV,iBAAiB,EAAE;YAErB,IAAI,CAACC,QAAQ,CAACM,iBAAiB,CAAC,EAAE;cAChCN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;YACjC;YAGAN,QAAQ,CAACM,iBAAiB,CAAC,GAAGN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;UAC/D;QACF;MACF,CAAC,CAAC;MAGF,IAAIA,iBAAiB,IAAI,CAACP,iBAAiB,EAAE;QAC3C,IAAI,CAACC,QAAQ,CAACM,iBAAiB,CAAC,EAAE;UAChCN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;QACjC;QAEAN,QAAQ,CAACM,iBAAiB,CAAC,GAAGN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;MAC/D;IACF,CAAC,CAAC;EACJ;EAEA,OAAON,QAAQ;AACjB,CAAC;AAACU,OAAA,CAAAd,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", {
|
|
2
|
+
value: true
|
|
3
|
+
});
|
|
4
|
+
exports.useLastReadData = void 0;
|
|
5
|
+
var _react = require("react");
|
|
6
|
+
var _getReadStates = require("../utils/getReadStates");
|
|
7
|
+
var useLastReadData = function useLastReadData(props) {
|
|
8
|
+
var messages = props.messages,
|
|
9
|
+
read = props.read,
|
|
10
|
+
_props$returnAllReadD = props.returnAllReadData,
|
|
11
|
+
returnAllReadData = _props$returnAllReadD === void 0 ? true : _props$returnAllReadD,
|
|
12
|
+
userID = props.userID;
|
|
13
|
+
return (0, _react.useMemo)(function () {
|
|
14
|
+
return (0, _getReadStates.getReadStates)(messages.filter(function (_ref) {
|
|
15
|
+
var user = _ref.user;
|
|
16
|
+
return (user == null ? void 0 : user.id) === userID;
|
|
17
|
+
}), read, returnAllReadData);
|
|
18
|
+
}, [messages, read, returnAllReadData, userID]);
|
|
19
|
+
};
|
|
20
|
+
exports.useLastReadData = useLastReadData;
|
|
21
|
+
//# sourceMappingURL=useLastReadData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_getReadStates","useLastReadData","props","messages","read","_props$returnAllReadD","returnAllReadData","userID","useMemo","getReadStates","filter","_ref","user","id","exports"],"sourceRoot":"../../../../../src","sources":["components/MessageList/hooks/useLastReadData.ts"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,IAAAC,cAAA,GAAAD,OAAA;AAaO,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAG1BC,KAAgD,EAC7C;EACH,IAAQC,QAAQ,GAA6CD,KAAK,CAA1DC,QAAQ;IAAEC,IAAI,GAAuCF,KAAK,CAAhDE,IAAI;IAAAC,qBAAA,GAAuCH,KAAK,CAA1CI,iBAAiB;IAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IAAEE,MAAM,GAAKL,KAAK,CAAhBK,MAAM;EAExD,OAAO,IAAAC,cAAO,EACZ;IAAA,OACE,IAAAC,4BAAa,EACXN,QAAQ,CAACO,MAAM,CAAC,UAAAC,IAAA;MAAA,IAAGC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAA,OAAO,CAAAA,IAAI,oBAAJA,IAAI,CAAEC,EAAE,MAAKN,MAAM;IAAA,EAAC,EAClDH,IAAI,EACJE,iBACF,CAAC;EAAA,GACH,CAACH,QAAQ,EAAEC,IAAI,EAAEE,iBAAiB,EAAEC,MAAM,CAC5C,CAAC;AACH,CAAC;AAACO,OAAA,CAAAb,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
exports.useMessageList = exports.isMessageWithStylesReadByAndDateSeparator = void 0;
|
|
6
6
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
7
|
+
var _useLastReadData = require("./useLastReadData");
|
|
7
8
|
var _ChannelContext = require("../../../contexts/channelContext/ChannelContext");
|
|
8
9
|
var _ChatContext = require("../../../contexts/chatContext/ChatContext");
|
|
9
10
|
var _MessagesContext = require("../../../contexts/messagesContext/MessagesContext");
|
|
@@ -11,7 +12,6 @@ var _PaginatedMessageListContext = require("../../../contexts/paginatedMessageLi
|
|
|
11
12
|
var _ThreadContext = require("../../../contexts/threadContext/ThreadContext");
|
|
12
13
|
var _getDateSeparators = require("../utils/getDateSeparators");
|
|
13
14
|
var _getGroupStyles = require("../utils/getGroupStyles");
|
|
14
|
-
var _getReadStates = require("../utils/getReadStates");
|
|
15
15
|
var isMessageWithStylesReadByAndDateSeparator = function isMessageWithStylesReadByAndDateSeparator(message) {
|
|
16
16
|
return message.readBy !== undefined;
|
|
17
17
|
};
|
|
@@ -49,7 +49,11 @@ var useMessageList = function useMessageList(params) {
|
|
|
49
49
|
noGroupByUser: noGroupByUser,
|
|
50
50
|
userId: client.userID
|
|
51
51
|
});
|
|
52
|
-
var readData = (0,
|
|
52
|
+
var readData = (0, _useLastReadData.useLastReadData)({
|
|
53
|
+
messages: messageList,
|
|
54
|
+
read: readList,
|
|
55
|
+
userID: client.userID
|
|
56
|
+
});
|
|
53
57
|
var messagesWithStylesReadByAndDateSeparator = messageList.filter(function (msg) {
|
|
54
58
|
var isMessageTypeDeleted = msg.type === 'deleted';
|
|
55
59
|
if (deletedMessagesVisibilityType === 'sender') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_useLastReadData","require","_ChannelContext","_ChatContext","_MessagesContext","_PaginatedMessageListContext","_ThreadContext","_getDateSeparators","_getGroupStyles","isMessageWithStylesReadByAndDateSeparator","message","readBy","undefined","exports","useMessageList","params","noGroupByUser","threadList","_useChatContext","useChatContext","client","_useChannelContext","useChannelContext","hideDateSeparators","maxTimeBetweenGroupedMessages","read","_useMessagesContext","useMessagesContext","deletedMessagesVisibilityType","_useMessagesContext$g","getMessagesGroupStyles","getGroupStyles","_usePaginatedMessageL","usePaginatedMessageListContext","messages","_useThreadContext","useThreadContext","threadMessages","messageList","readList","dateSeparators","getDateSeparators","userId","userID","messageGroupStyles","readData","useLastReadData","messagesWithStylesReadByAndDateSeparator","filter","msg","isMessageTypeDeleted","type","_msg$user","user","id","_msg$user2","map","Object","assign","dateSeparator","groupStyles","processedMessageList","_toConsumableArray2","reverse","rawMessageList"],"sourceRoot":"../../../../../src","sources":["components/MessageList/hooks/useMessageList.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
2
2
|
value: true
|
|
3
3
|
});
|
|
4
4
|
exports.getReadStates = void 0;
|
|
5
|
-
var getReadStates = function getReadStates(
|
|
5
|
+
var getReadStates = function getReadStates(messages, read, returnAllReadData) {
|
|
6
6
|
var readData = {};
|
|
7
7
|
if (read) {
|
|
8
8
|
Object.values(read).forEach(function (readState) {
|
|
@@ -10,17 +10,16 @@ var getReadStates = function getReadStates(clientUserId, messages, read) {
|
|
|
10
10
|
var userLastReadMsgId;
|
|
11
11
|
messages.forEach(function (msg) {
|
|
12
12
|
if (msg.created_at && msg.created_at < readState.last_read) {
|
|
13
|
-
var _msg$user;
|
|
14
13
|
userLastReadMsgId = msg.id;
|
|
15
|
-
if (
|
|
16
|
-
readData[userLastReadMsgId]
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
if (returnAllReadData) {
|
|
15
|
+
if (!readData[userLastReadMsgId]) {
|
|
16
|
+
readData[userLastReadMsgId] = 0;
|
|
17
|
+
}
|
|
19
18
|
readData[userLastReadMsgId] = readData[userLastReadMsgId] + 1;
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
21
|
});
|
|
23
|
-
if (userLastReadMsgId) {
|
|
22
|
+
if (userLastReadMsgId && !returnAllReadData) {
|
|
24
23
|
if (!readData[userLastReadMsgId]) {
|
|
25
24
|
readData[userLastReadMsgId] = 0;
|
|
26
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getReadStates","
|
|
1
|
+
{"version":3,"names":["getReadStates","messages","read","returnAllReadData","readData","Object","values","forEach","readState","last_read","userLastReadMsgId","msg","created_at","id","exports"],"sourceRoot":"../../../../../src","sources":["components/MessageList/utils/getReadStates.ts"],"mappings":";;;;AAKO,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAGxBC,QAE4D,EAC5DC,IAAsD,EACtDC,iBAA2B,EACxB;EACH,IAAMC,QAAgC,GAAG,CAAC,CAAC;EAE3C,IAAIF,IAAI,EAAE;IAQRG,MAAM,CAACC,MAAM,CAACJ,IAAI,CAAC,CAACK,OAAO,CAAC,UAACC,SAAS,EAAK;MACzC,IAAI,CAACA,SAAS,CAACC,SAAS,EAAE;MAE1B,IAAIC,iBAAqC;MAGzCT,QAAQ,CAACM,OAAO,CAAC,UAACI,GAAG,EAAK;QACxB,IAAIA,GAAG,CAACC,UAAU,IAAID,GAAG,CAACC,UAAU,GAAGJ,SAAS,CAACC,SAAS,EAAE;UAC1DC,iBAAiB,GAAGC,GAAG,CAACE,EAAE;UAE1B,IAAIV,iBAAiB,EAAE;YAErB,IAAI,CAACC,QAAQ,CAACM,iBAAiB,CAAC,EAAE;cAChCN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;YACjC;YAGAN,QAAQ,CAACM,iBAAiB,CAAC,GAAGN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;UAC/D;QACF;MACF,CAAC,CAAC;MAGF,IAAIA,iBAAiB,IAAI,CAACP,iBAAiB,EAAE;QAC3C,IAAI,CAACC,QAAQ,CAACM,iBAAiB,CAAC,EAAE;UAChCN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;QACjC;QAEAN,QAAQ,CAACM,iBAAiB,CAAC,GAAGN,QAAQ,CAACM,iBAAiB,CAAC,GAAG,CAAC;MAC/D;IACF,CAAC,CAAC;EACJ;EAEA,OAAON,QAAQ;AACjB,CAAC;AAACU,OAAA,CAAAd,aAAA,GAAAA,aAAA","ignoreList":[]}
|
package/lib/module/version.json
CHANGED
|
@@ -32,7 +32,7 @@ export declare const useCreateMessagesContext: <StreamChatGenerics extends Defau
|
|
|
32
32
|
MessageEditedTimestamp: import("react").ComponentType<import("../..").MessageEditedTimestampProps>;
|
|
33
33
|
MessageError: import("react").ComponentType<import("../..").MessageErrorProps>;
|
|
34
34
|
MessageFooter: import("react").ComponentType<import("../..").MessageFooterProps<StreamChatGenerics>>;
|
|
35
|
-
MessageList: import("react").ComponentType<Partial<Pick<import("../../..").AttachmentPickerContextValue, "closePicker" | "selectedPicker" | "setSelectedPicker"> & Pick<import("../../..").ChannelContextValue<StreamChatGenerics>, "disabled" | "channel" | "loading" | "threadList" | "targetedMessage" | "EmptyStateIndicator" | "hideStickyDateHeader" | "loadChannelAroundMessage" | "LoadingIndicator" | "markRead" | "NetworkDownIndicator" | "reloadChannel" | "scrollToFirstUnreadThreshold" | "setTargetedMessage" | "StickyHeader"> & Pick<import("../../..").ChatContextValue<StreamChatGenerics>, "client"> & Pick<import("../../..").ImageGalleryContextValue<StreamChatGenerics>, "setMessages"> & Pick<import("../../..").PaginatedMessageListContextValue<StreamChatGenerics>, "hasNoMoreRecentMessagesToLoad" | "loadMore" | "loadMoreRecent"> & Pick<import("../../..").OverlayContextValue, "overlay"> & Pick<MessagesContextValue<StreamChatGenerics>, "myMessageTheme" | "DateHeader" | "FlatList" | "initialScrollToFirstUnreadMessage" | "InlineDateSeparator" | "InlineUnreadIndicator" | "Message" | "MessageSystem" | "ScrollToBottomButton" | "TypingIndicator" | "TypingIndicatorContainer" | "disableTypingIndicator" | "legacyImageViewerSwipeBehaviour" | "shouldShowUnreadUnderlay"> & Pick<import("../../..").ThreadContextValue<StreamChatGenerics>, "thread" | "
|
|
35
|
+
MessageList: import("react").ComponentType<Partial<Pick<import("../../..").AttachmentPickerContextValue, "closePicker" | "selectedPicker" | "setSelectedPicker"> & Pick<import("../../..").ChannelContextValue<StreamChatGenerics>, "disabled" | "channel" | "loading" | "threadList" | "targetedMessage" | "EmptyStateIndicator" | "hideStickyDateHeader" | "loadChannelAroundMessage" | "LoadingIndicator" | "markRead" | "NetworkDownIndicator" | "reloadChannel" | "scrollToFirstUnreadThreshold" | "setTargetedMessage" | "StickyHeader"> & Pick<import("../../..").ChatContextValue<StreamChatGenerics>, "client"> & Pick<import("../../..").ImageGalleryContextValue<StreamChatGenerics>, "setMessages"> & Pick<import("../../..").PaginatedMessageListContextValue<StreamChatGenerics>, "hasNoMoreRecentMessagesToLoad" | "loadMore" | "loadMoreRecent"> & Pick<import("../../..").OverlayContextValue, "overlay"> & Pick<MessagesContextValue<StreamChatGenerics>, "myMessageTheme" | "DateHeader" | "FlatList" | "initialScrollToFirstUnreadMessage" | "InlineDateSeparator" | "InlineUnreadIndicator" | "Message" | "MessageSystem" | "ScrollToBottomButton" | "TypingIndicator" | "TypingIndicatorContainer" | "disableTypingIndicator" | "legacyImageViewerSwipeBehaviour" | "shouldShowUnreadUnderlay"> & Pick<import("../../..").ThreadContextValue<StreamChatGenerics>, "thread" | "loadMoreThread" | "loadMoreRecentThread" | "threadInstance"> & {
|
|
36
36
|
additionalFlatListProps?: Partial<import("react-native/types").FlatListProps<import("../..").MessageType<StreamChatGenerics>>> | undefined;
|
|
37
37
|
FooterComponent?: import("react").ComponentType<{}> | undefined;
|
|
38
38
|
HeaderComponent?: import("react").ComponentType<{}> | undefined;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ChannelState } from 'stream-chat';
|
|
2
|
+
import { PaginatedMessageListContextValue } from '../../../contexts/paginatedMessageListContext/PaginatedMessageListContext';
|
|
3
|
+
import { ThreadContextValue } from '../../../contexts/threadContext/ThreadContext';
|
|
4
|
+
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
5
|
+
type UseLastReadDataParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
6
|
+
messages: PaginatedMessageListContextValue<StreamChatGenerics>['messages'] | ThreadContextValue<StreamChatGenerics>['threadMessages'];
|
|
7
|
+
userID: string | undefined;
|
|
8
|
+
read?: ChannelState<StreamChatGenerics>['read'];
|
|
9
|
+
returnAllReadData?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare const useLastReadData: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: UseLastReadDataParams<StreamChatGenerics>) => Record<string, number>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=useLastReadData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLastReadData.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/useLastReadData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,gCAAgC,EAAE,MAAM,2EAA2E,CAAC;AAC7H,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGtE,KAAK,qBAAqB,CACxB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,QAAQ,EACJ,gCAAgC,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,GAChE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAC7D,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,eAAe,gKAgB3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMessageList.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/useMessageList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useMessageList.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/useMessageList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AASjE,OAAO,EACL,6BAA6B,EAE9B,MAAM,mDAAmD,CAAC;AAG3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAItE,MAAM,MAAM,oBAAoB,GAAG;IACjC,6BAA6B,CAAC,EAAE,6BAA6B,CAAC;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,MAAM,MAAM,wCAAwC,CAClD,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,eAAe,CAAC,kBAAkB,CAAC,GAAG;IACxC,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,CACrB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAE9E,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,eAAe,CAAC,CAAC,GAC7D,wCAAwC,CAAC,kBAAkB,CAAC,CAAC;AAGjE,eAAO,MAAM,yCAAyC,yMAK0C,CAAC;AAEjG,eAAO,MAAM,cAAc,6FAGjB,oBAAoB;IA+D1B,4EAA4E;;IAE5E,0CAA0C;;CAG7C,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { ChannelContextValue } from '../../../contexts/channelContext/Chann
|
|
|
2
2
|
import type { PaginatedMessageListContextValue } from '../../../contexts/paginatedMessageListContext/PaginatedMessageListContext';
|
|
3
3
|
import type { ThreadContextValue } from '../../../contexts/threadContext/ThreadContext';
|
|
4
4
|
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
5
|
-
export declare const getReadStates: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(
|
|
5
|
+
export declare const getReadStates: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(messages: import("stream-chat").FormatMessageResponse<StreamChatGenerics>[], read?: {
|
|
6
6
|
[x: string]: {
|
|
7
7
|
last_read: Date;
|
|
8
8
|
unread_messages: number;
|
|
@@ -10,5 +10,5 @@ export declare const getReadStates: <StreamChatGenerics extends DefaultStreamCha
|
|
|
10
10
|
first_unread_message_id?: string | undefined;
|
|
11
11
|
last_read_message_id?: string | undefined;
|
|
12
12
|
};
|
|
13
|
-
} | undefined) => Record<string, number>;
|
|
13
|
+
} | undefined, returnAllReadData?: boolean) => Record<string, number>;
|
|
14
14
|
//# sourceMappingURL=getReadStates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getReadStates.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/utils/getReadStates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2EAA2E,CAAC;AAClI,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"getReadStates.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/utils/getReadStates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2EAA2E,CAAC;AAClI,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,aAAa;;;;;;;;mCAOJ,OAAO,2BA8C5B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ChannelAPIResponse } from 'stream-chat';
|
|
2
2
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
3
3
|
import type { TableRow } from '../types';
|
|
4
|
-
export declare const mapStorableToChannel: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(channelRow: TableRow<'channels'>) => Omit<ChannelAPIResponse<StreamChatGenerics>, "
|
|
4
|
+
export declare const mapStorableToChannel: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(channelRow: TableRow<'channels'>) => Omit<ChannelAPIResponse<StreamChatGenerics>, "messages" | "duration" | "members" | "pinned_messages">;
|
|
5
5
|
//# sourceMappingURL=mapStorableToChannel.d.ts.map
|
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.44.
|
|
4
|
+
"version": "5.44.4",
|
|
5
5
|
"author": {
|
|
6
6
|
"company": "Stream.io Inc",
|
|
7
7
|
"name": "Stream.io Inc"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
|
|
3
|
+
import type { ChannelState } from 'stream-chat';
|
|
4
|
+
|
|
5
|
+
import { PaginatedMessageListContextValue } from '../../../contexts/paginatedMessageListContext/PaginatedMessageListContext';
|
|
6
|
+
import { ThreadContextValue } from '../../../contexts/threadContext/ThreadContext';
|
|
7
|
+
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
8
|
+
import { getReadStates } from '../utils/getReadStates';
|
|
9
|
+
|
|
10
|
+
type UseLastReadDataParams<
|
|
11
|
+
StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
|
|
12
|
+
> = {
|
|
13
|
+
messages:
|
|
14
|
+
| PaginatedMessageListContextValue<StreamChatGenerics>['messages']
|
|
15
|
+
| ThreadContextValue<StreamChatGenerics>['threadMessages'];
|
|
16
|
+
userID: string | undefined;
|
|
17
|
+
read?: ChannelState<StreamChatGenerics>['read'];
|
|
18
|
+
returnAllReadData?: boolean;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const useLastReadData = <
|
|
22
|
+
StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
|
|
23
|
+
>(
|
|
24
|
+
props: UseLastReadDataParams<StreamChatGenerics>,
|
|
25
|
+
) => {
|
|
26
|
+
const { messages, read, returnAllReadData = true, userID } = props;
|
|
27
|
+
|
|
28
|
+
return useMemo(
|
|
29
|
+
() =>
|
|
30
|
+
getReadStates(
|
|
31
|
+
messages.filter(({ user }) => user?.id === userID),
|
|
32
|
+
read,
|
|
33
|
+
returnAllReadData,
|
|
34
|
+
),
|
|
35
|
+
[messages, read, returnAllReadData, userID],
|
|
36
|
+
);
|
|
37
|
+
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { ChannelState, MessageResponse } from 'stream-chat';
|
|
2
2
|
|
|
3
|
+
import { useLastReadData } from './useLastReadData';
|
|
4
|
+
|
|
3
5
|
import {
|
|
4
6
|
ChannelContextValue,
|
|
5
7
|
useChannelContext,
|
|
@@ -14,7 +16,6 @@ import { useThreadContext } from '../../../contexts/threadContext/ThreadContext'
|
|
|
14
16
|
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
15
17
|
import { getDateSeparators } from '../utils/getDateSeparators';
|
|
16
18
|
import { getGroupStyles } from '../utils/getGroupStyles';
|
|
17
|
-
import { getReadStates } from '../utils/getReadStates';
|
|
18
19
|
|
|
19
20
|
export type UseMessageListParams = {
|
|
20
21
|
deletedMessagesVisibilityType?: DeletedMessagesVisibilityType;
|
|
@@ -81,7 +82,11 @@ export const useMessageList = <
|
|
|
81
82
|
userId: client.userID,
|
|
82
83
|
});
|
|
83
84
|
|
|
84
|
-
const readData =
|
|
85
|
+
const readData = useLastReadData({
|
|
86
|
+
messages: messageList,
|
|
87
|
+
read: readList,
|
|
88
|
+
userID: client.userID,
|
|
89
|
+
});
|
|
85
90
|
|
|
86
91
|
const messagesWithStylesReadByAndDateSeparator = messageList
|
|
87
92
|
.filter((msg) => {
|
|
@@ -6,11 +6,11 @@ import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
|
6
6
|
export const getReadStates = <
|
|
7
7
|
StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
|
|
8
8
|
>(
|
|
9
|
-
clientUserId: string | undefined,
|
|
10
9
|
messages:
|
|
11
10
|
| PaginatedMessageListContextValue<StreamChatGenerics>['messages']
|
|
12
11
|
| ThreadContextValue<StreamChatGenerics>['threadMessages'],
|
|
13
12
|
read?: ChannelContextValue<StreamChatGenerics>['read'],
|
|
13
|
+
returnAllReadData?: boolean,
|
|
14
14
|
) => {
|
|
15
15
|
const readData: Record<string, number> = {};
|
|
16
16
|
|
|
@@ -32,20 +32,20 @@ export const getReadStates = <
|
|
|
32
32
|
if (msg.created_at && msg.created_at < readState.last_read) {
|
|
33
33
|
userLastReadMsgId = msg.id;
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
readData[userLastReadMsgId]
|
|
38
|
-
|
|
35
|
+
if (returnAllReadData) {
|
|
36
|
+
// if true, save other user's read data for all messages they've read
|
|
37
|
+
if (!readData[userLastReadMsgId]) {
|
|
38
|
+
readData[userLastReadMsgId] = 0;
|
|
39
|
+
}
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
if (msg.user?.id !== clientUserId) {
|
|
41
|
+
// Only increment read count if the message is not sent by the current user
|
|
42
42
|
readData[userLastReadMsgId] = readData[userLastReadMsgId] + 1;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
46
|
|
|
47
47
|
// if true, only save read data for other user's last read message
|
|
48
|
-
if (userLastReadMsgId) {
|
|
48
|
+
if (userLastReadMsgId && !returnAllReadData) {
|
|
49
49
|
if (!readData[userLastReadMsgId]) {
|
|
50
50
|
readData[userLastReadMsgId] = 0;
|
|
51
51
|
}
|
package/src/version.json
CHANGED