@amityco/ts-sdk 7.19.1-0d42b83a.0 → 7.19.1-0e4fcc82.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareChannelPayload.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/utils/prepareChannelPayload.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,4BAA4B,UAA6C,CAAC;AACvF,eAAO,MAAM,oBAAoB,aAAc,KAAK,MAAM,UAAU,EAAE,MAAM,CAAC,YAChC,CAAC;AAE9C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,KAAK,CAAC,UAAU,EACzB,OAAO,GAAE;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAsC,GACjF,KAAK,CAAC,qBAAqB,CAmB7B;AAED,eAAO,MAAM,qBAAqB,eACpB,MAAM,cAAc,YACvB;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,SAO/C,CAAC;
|
|
1
|
+
{"version":3,"file":"prepareChannelPayload.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/utils/prepareChannelPayload.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,4BAA4B,UAA6C,CAAC;AACvF,eAAO,MAAM,oBAAoB,aAAc,KAAK,MAAM,UAAU,EAAE,MAAM,CAAC,YAChC,CAAC;AAE9C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,KAAK,CAAC,UAAU,EACzB,OAAO,GAAE;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAsC,GACjF,KAAK,CAAC,qBAAqB,CAmB7B;AAED,eAAO,MAAM,qBAAqB,eACpB,MAAM,cAAc,YACvB;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,SAO/C,CAAC;AA2EF,eAAO,MAAM,qBAAqB,eACpB,MAAM,cAAc,YACvB;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7C,QAAQ,MAAM,uBAAuB,CA2DvC,CAAC"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -5994,24 +5994,43 @@ const preUpdateChannelCache = (rawPayload, options = { isMessagePreviewUpdated:
|
|
|
5994
5994
|
});
|
|
5995
5995
|
};
|
|
5996
5996
|
const updateChannelUnread = ({ currentUserId, channels, channelUsers, }) => {
|
|
5997
|
+
var _a, _b;
|
|
5997
5998
|
const channelsUnread = [];
|
|
5998
5999
|
for (let i = 0; i < channels.length; i += 1) {
|
|
5999
6000
|
if (isUnreadCountSupport(channels[i])) {
|
|
6000
6001
|
const cacheKey = ['channelUnread', 'get', channels[i].channelId];
|
|
6001
6002
|
const channelUser = channelUsers.find(channelUser => channelUser.channelId === channels[i].channelId && channelUser.userId === currentUserId);
|
|
6002
|
-
|
|
6003
|
+
// readToSegment, lastMentionedSegment and lastSegment are monotonically non-decreasing;
|
|
6004
|
+
// prefer cached values when ahead of the server so a refetch returning stale data cannot
|
|
6005
|
+
// revert updates already written by MessageReadReceiptSyncEngine.markRead (readToSegment)
|
|
6006
|
+
// or onMessageCreatedMqtt (lastSegment).
|
|
6007
|
+
const cached = (_a = pullFromCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
6008
|
+
const lastSegment = Math.max((_b = cached === null || cached === void 0 ? void 0 : cached.lastSegment) !== null && _b !== void 0 ? _b : 0, channels[i].messageCount);
|
|
6003
6009
|
let readToSegment = null;
|
|
6004
6010
|
let lastMentionedSegment = null;
|
|
6011
|
+
let unreadCount = 0;
|
|
6005
6012
|
let isMentioned = false;
|
|
6006
6013
|
if (channelUser) {
|
|
6007
|
-
|
|
6008
|
-
|
|
6009
|
-
|
|
6010
|
-
|
|
6014
|
+
const serverRead = channelUser.readToSegment;
|
|
6015
|
+
const serverMention = channelUser.lastMentionedSegment;
|
|
6016
|
+
readToSegment =
|
|
6017
|
+
typeof (cached === null || cached === void 0 ? void 0 : cached.readToSegment) === 'number' &&
|
|
6018
|
+
(typeof serverRead !== 'number' || cached.readToSegment > serverRead)
|
|
6019
|
+
? cached.readToSegment
|
|
6020
|
+
: serverRead !== null && serverRead !== void 0 ? serverRead : null;
|
|
6021
|
+
lastMentionedSegment =
|
|
6022
|
+
typeof (cached === null || cached === void 0 ? void 0 : cached.lastMentionedSegment) === 'number' &&
|
|
6023
|
+
(typeof serverMention !== 'number' || cached.lastMentionedSegment > serverMention)
|
|
6024
|
+
? cached.lastMentionedSegment
|
|
6025
|
+
: serverMention !== null && serverMention !== void 0 ? serverMention : null;
|
|
6026
|
+
const readForCalc = readToSegment !== null && readToSegment !== void 0 ? readToSegment : 0;
|
|
6027
|
+
unreadCount = Math.max(lastSegment - readForCalc, 0);
|
|
6028
|
+
isMentioned =
|
|
6029
|
+
typeof lastMentionedSegment === 'number' && readForCalc < lastMentionedSegment;
|
|
6011
6030
|
}
|
|
6012
6031
|
const cacheChannelUnread = {
|
|
6013
6032
|
channelId: channels[i].channelId,
|
|
6014
|
-
lastSegment
|
|
6033
|
+
lastSegment,
|
|
6015
6034
|
readToSegment,
|
|
6016
6035
|
lastMentionedSegment,
|
|
6017
6036
|
unreadCount,
|
|
@@ -6021,6 +6040,8 @@ const updateChannelUnread = ({ currentUserId, channels, channelUsers, }) => {
|
|
|
6021
6040
|
pushToCache(cacheKey, cacheChannelUnread);
|
|
6022
6041
|
channelsUnread.push(cacheChannelUnread);
|
|
6023
6042
|
}
|
|
6043
|
+
}
|
|
6044
|
+
if (channelsUnread.length > 0) {
|
|
6024
6045
|
fireEvent('local.channelUnread.updated', channelsUnread);
|
|
6025
6046
|
}
|
|
6026
6047
|
};
|
|
@@ -10006,16 +10027,13 @@ const onMessageCreatedMqtt = (callback) => {
|
|
|
10006
10027
|
}
|
|
10007
10028
|
if (client.useLegacyUnreadCount) {
|
|
10008
10029
|
rawPayload.messages.forEach(message => {
|
|
10009
|
-
var _a, _b;
|
|
10030
|
+
var _a, _b, _c;
|
|
10010
10031
|
const channelUnread = (_a = pullFromCache([
|
|
10011
10032
|
'channelUnread',
|
|
10012
10033
|
'get',
|
|
10013
10034
|
message.channelId,
|
|
10014
10035
|
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
10015
|
-
if (!channelUnread ||
|
|
10016
|
-
channelUnread.lastSegment >= message.segment ||
|
|
10017
|
-
typeof channelUnread.readToSegment !== 'number' ||
|
|
10018
|
-
typeof channelUnread.lastMentionedSegment !== 'number')
|
|
10036
|
+
if (!channelUnread || channelUnread.lastSegment >= message.segment)
|
|
10019
10037
|
return;
|
|
10020
10038
|
const lastSegment = message.segment;
|
|
10021
10039
|
const isMentionedInMessage = (_b = message.mentionedUsers) === null || _b === void 0 ? void 0 : _b.some(mention => {
|
|
@@ -10027,7 +10045,8 @@ const onMessageCreatedMqtt = (callback) => {
|
|
|
10027
10045
|
const lastMentionedSegment = isMentionedInMessage
|
|
10028
10046
|
? message.segment
|
|
10029
10047
|
: channelUnread.lastMentionedSegment;
|
|
10030
|
-
const
|
|
10048
|
+
const readToSegment = (_c = channelUnread.readToSegment) !== null && _c !== void 0 ? _c : 0;
|
|
10049
|
+
const updatedChannelUnread = Object.assign(Object.assign({}, channelUnread), { lastSegment, unreadCount: Math.max(lastSegment - readToSegment, 0), lastMentionedSegment, isMentioned: typeof lastMentionedSegment === 'number' && readToSegment < lastMentionedSegment });
|
|
10031
10050
|
pushToCache(['channelUnread', 'get', message.channelId], updatedChannelUnread);
|
|
10032
10051
|
fireEvent('local.channelUnread.updated', [updatedChannelUnread]);
|
|
10033
10052
|
});
|
package/dist/index.esm.js
CHANGED
|
@@ -22086,24 +22086,43 @@ const preUpdateChannelCache = (rawPayload, options = { isMessagePreviewUpdated:
|
|
|
22086
22086
|
});
|
|
22087
22087
|
};
|
|
22088
22088
|
const updateChannelUnread = ({ currentUserId, channels, channelUsers, }) => {
|
|
22089
|
+
var _a, _b;
|
|
22089
22090
|
const channelsUnread = [];
|
|
22090
22091
|
for (let i = 0; i < channels.length; i += 1) {
|
|
22091
22092
|
if (isUnreadCountSupport(channels[i])) {
|
|
22092
22093
|
const cacheKey = ['channelUnread', 'get', channels[i].channelId];
|
|
22093
22094
|
const channelUser = channelUsers.find(channelUser => channelUser.channelId === channels[i].channelId && channelUser.userId === currentUserId);
|
|
22094
|
-
|
|
22095
|
+
// readToSegment, lastMentionedSegment and lastSegment are monotonically non-decreasing;
|
|
22096
|
+
// prefer cached values when ahead of the server so a refetch returning stale data cannot
|
|
22097
|
+
// revert updates already written by MessageReadReceiptSyncEngine.markRead (readToSegment)
|
|
22098
|
+
// or onMessageCreatedMqtt (lastSegment).
|
|
22099
|
+
const cached = (_a = pullFromCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
22100
|
+
const lastSegment = Math.max((_b = cached === null || cached === void 0 ? void 0 : cached.lastSegment) !== null && _b !== void 0 ? _b : 0, channels[i].messageCount);
|
|
22095
22101
|
let readToSegment = null;
|
|
22096
22102
|
let lastMentionedSegment = null;
|
|
22103
|
+
let unreadCount = 0;
|
|
22097
22104
|
let isMentioned = false;
|
|
22098
22105
|
if (channelUser) {
|
|
22099
|
-
|
|
22100
|
-
|
|
22101
|
-
|
|
22102
|
-
|
|
22106
|
+
const serverRead = channelUser.readToSegment;
|
|
22107
|
+
const serverMention = channelUser.lastMentionedSegment;
|
|
22108
|
+
readToSegment =
|
|
22109
|
+
typeof (cached === null || cached === void 0 ? void 0 : cached.readToSegment) === 'number' &&
|
|
22110
|
+
(typeof serverRead !== 'number' || cached.readToSegment > serverRead)
|
|
22111
|
+
? cached.readToSegment
|
|
22112
|
+
: serverRead !== null && serverRead !== void 0 ? serverRead : null;
|
|
22113
|
+
lastMentionedSegment =
|
|
22114
|
+
typeof (cached === null || cached === void 0 ? void 0 : cached.lastMentionedSegment) === 'number' &&
|
|
22115
|
+
(typeof serverMention !== 'number' || cached.lastMentionedSegment > serverMention)
|
|
22116
|
+
? cached.lastMentionedSegment
|
|
22117
|
+
: serverMention !== null && serverMention !== void 0 ? serverMention : null;
|
|
22118
|
+
const readForCalc = readToSegment !== null && readToSegment !== void 0 ? readToSegment : 0;
|
|
22119
|
+
unreadCount = Math.max(lastSegment - readForCalc, 0);
|
|
22120
|
+
isMentioned =
|
|
22121
|
+
typeof lastMentionedSegment === 'number' && readForCalc < lastMentionedSegment;
|
|
22103
22122
|
}
|
|
22104
22123
|
const cacheChannelUnread = {
|
|
22105
22124
|
channelId: channels[i].channelId,
|
|
22106
|
-
lastSegment
|
|
22125
|
+
lastSegment,
|
|
22107
22126
|
readToSegment,
|
|
22108
22127
|
lastMentionedSegment,
|
|
22109
22128
|
unreadCount,
|
|
@@ -22113,6 +22132,8 @@ const updateChannelUnread = ({ currentUserId, channels, channelUsers, }) => {
|
|
|
22113
22132
|
pushToCache(cacheKey, cacheChannelUnread);
|
|
22114
22133
|
channelsUnread.push(cacheChannelUnread);
|
|
22115
22134
|
}
|
|
22135
|
+
}
|
|
22136
|
+
if (channelsUnread.length > 0) {
|
|
22116
22137
|
fireEvent('local.channelUnread.updated', channelsUnread);
|
|
22117
22138
|
}
|
|
22118
22139
|
};
|
|
@@ -26098,16 +26119,13 @@ const onMessageCreatedMqtt = (callback) => {
|
|
|
26098
26119
|
}
|
|
26099
26120
|
if (client.useLegacyUnreadCount) {
|
|
26100
26121
|
rawPayload.messages.forEach(message => {
|
|
26101
|
-
var _a, _b;
|
|
26122
|
+
var _a, _b, _c;
|
|
26102
26123
|
const channelUnread = (_a = pullFromCache([
|
|
26103
26124
|
'channelUnread',
|
|
26104
26125
|
'get',
|
|
26105
26126
|
message.channelId,
|
|
26106
26127
|
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
26107
|
-
if (!channelUnread ||
|
|
26108
|
-
channelUnread.lastSegment >= message.segment ||
|
|
26109
|
-
typeof channelUnread.readToSegment !== 'number' ||
|
|
26110
|
-
typeof channelUnread.lastMentionedSegment !== 'number')
|
|
26128
|
+
if (!channelUnread || channelUnread.lastSegment >= message.segment)
|
|
26111
26129
|
return;
|
|
26112
26130
|
const lastSegment = message.segment;
|
|
26113
26131
|
const isMentionedInMessage = (_b = message.mentionedUsers) === null || _b === void 0 ? void 0 : _b.some(mention => {
|
|
@@ -26119,7 +26137,8 @@ const onMessageCreatedMqtt = (callback) => {
|
|
|
26119
26137
|
const lastMentionedSegment = isMentionedInMessage
|
|
26120
26138
|
? message.segment
|
|
26121
26139
|
: channelUnread.lastMentionedSegment;
|
|
26122
|
-
const
|
|
26140
|
+
const readToSegment = (_c = channelUnread.readToSegment) !== null && _c !== void 0 ? _c : 0;
|
|
26141
|
+
const updatedChannelUnread = Object.assign(Object.assign({}, channelUnread), { lastSegment, unreadCount: Math.max(lastSegment - readToSegment, 0), lastMentionedSegment, isMentioned: typeof lastMentionedSegment === 'number' && readToSegment < lastMentionedSegment });
|
|
26123
26142
|
pushToCache(['channelUnread', 'get', message.channelId], updatedChannelUnread);
|
|
26124
26143
|
fireEvent('local.channelUnread.updated', [updatedChannelUnread]);
|
|
26125
26144
|
});
|