@amityco/ts-sdk 6.7.2-bd796de.0 → 6.7.2-c5c263a.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.
- package/dist/@types/core/events.d.ts +9 -3
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/marker.d.ts +3 -0
- package/dist/@types/core/marker.d.ts.map +1 -1
- package/dist/@types/core/payload.d.ts +36 -33
- package/dist/@types/core/payload.d.ts.map +1 -1
- package/dist/@types/domains/channel.d.ts +1 -0
- package/dist/@types/domains/channel.d.ts.map +1 -1
- package/dist/@types/domains/client.d.ts +1 -0
- package/dist/@types/domains/client.d.ts.map +1 -1
- package/dist/@types/domains/partials.d.ts +3 -0
- package/dist/@types/domains/partials.d.ts.map +1 -1
- package/dist/@types/domains/subChannel.d.ts +1 -0
- package/dist/@types/domains/subChannel.d.ts.map +1 -1
- package/dist/channelRepsitory/api/markAsRead.d.ts.map +1 -1
- package/dist/channelRepsitory/observers/getChannels.d.ts.map +1 -1
- package/dist/channelRepsitory/utils/getChannelHasMentioned.d.ts +7 -0
- package/dist/channelRepsitory/utils/getChannelHasMentioned.d.ts.map +1 -0
- package/dist/channelRepsitory/utils/prepareChannelPayload.d.ts.map +1 -1
- package/dist/client/api/markerSync.d.ts.map +1 -1
- package/dist/client/observers/getTotalUnreadCount.d.ts +2 -0
- package/dist/client/observers/getTotalUnreadCount.d.ts.map +1 -1
- package/dist/client/observers/getUserUnread.d.ts +19 -0
- package/dist/client/observers/getUserUnread.d.ts.map +1 -0
- package/dist/client/observers/index.d.ts +1 -0
- package/dist/client/observers/index.d.ts.map +1 -1
- package/dist/index.cjs.js +167 -31
- package/dist/index.esm.js +167 -31
- package/dist/index.umd.js +4 -4
- package/dist/marker/api/getChannelMarkers.d.ts.map +1 -1
- package/dist/marker/api/getMessageMarkers.d.ts.map +1 -1
- package/dist/marker/api/getSubChannelMarkers.d.ts.map +1 -1
- package/dist/marker/api/getUserMarker.d.ts.map +1 -1
- package/dist/marker/events/onUserMarkerSync.d.ts.map +1 -1
- package/dist/messageRepository/api/getDeliveredUsers.d.ts.map +1 -1
- package/dist/messageRepository/api/getReadUsers.d.ts.map +1 -1
- package/dist/messageRepository/api/markAsDelivered.d.ts.map +1 -1
- package/dist/subChannelRepository/api/readingAPI.d.ts.map +1 -1
- package/dist/subChannelRepository/api/startReadingAPI.d.ts.map +1 -1
- package/dist/subChannelRepository/api/stopReadingAPI.d.ts.map +1 -1
- package/dist/subChannelRepository/utils/getSubChannelHasMentioned.d.ts +2 -0
- package/dist/subChannelRepository/utils/getSubChannelHasMentioned.d.ts.map +1 -0
- package/dist/subChannelRepository/utils/prepareSubChannelPayload.d.ts.map +1 -1
- package/dist/utils/marker.d.ts +4 -0
- package/dist/utils/marker.d.ts.map +1 -0
- package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
- package/dist/utils/tests/dummy/marker.d.ts +3 -0
- package/dist/utils/tests/dummy/marker.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/core/events.ts +3 -9
- package/src/@types/core/marker.ts +3 -0
- package/src/@types/core/payload.ts +37 -33
- package/src/@types/domains/channel.ts +1 -0
- package/src/@types/domains/client.ts +2 -0
- package/src/@types/domains/partials.ts +4 -0
- package/src/@types/domains/subChannel.ts +1 -0
- package/src/channelRepsitory/api/markAsRead.ts +22 -1
- package/src/channelRepsitory/observers/getChannels.ts +3 -2
- package/src/channelRepsitory/observers/tests/getChannels.test.ts +6 -2
- package/src/channelRepsitory/utils/getChannelHasMentioned.ts +28 -0
- package/src/channelRepsitory/utils/prepareChannelPayload.ts +4 -0
- package/src/channelRepsitory/utils/tests/prepareChannelPayload.test.ts +3 -0
- package/src/client/api/markerSync.ts +17 -2
- package/src/client/observers/getTotalUnreadCount.ts +2 -0
- package/src/client/observers/getUserUnread.ts +47 -0
- package/src/client/observers/index.ts +1 -0
- package/src/marker/api/getChannelMarkers.ts +9 -3
- package/src/marker/api/getMessageMarkers.ts +5 -2
- package/src/marker/api/getSubChannelMarkers.ts +16 -2
- package/src/marker/api/getUserMarker.ts +9 -2
- package/src/marker/api/tests/getMessageMarkers.test.ts +3 -1
- package/src/marker/api/tests/getSubChannelMarkers.test.ts +16 -8
- package/src/marker/events/onUserMarkerSync.ts +18 -2
- package/src/messageRepository/api/getDeliveredUsers.ts +9 -2
- package/src/messageRepository/api/getReadUsers.ts +6 -2
- package/src/messageRepository/api/markAsDelivered.ts +17 -1
- package/src/messageRepository/api/tests/markAsDelivered.test.ts +11 -4
- package/src/subChannelRepository/api/readingAPI.ts +17 -2
- package/src/subChannelRepository/api/startReadingAPI.ts +17 -2
- package/src/subChannelRepository/api/stopReadingAPI.ts +17 -2
- package/src/subChannelRepository/utils/getSubChannelHasMentioned.ts +34 -0
- package/src/subChannelRepository/utils/prepareSubChannelPayload.ts +4 -0
- package/src/utils/marker.ts +29 -0
- package/src/utils/tests/dummy/channel.ts +2 -0
- package/src/utils/tests/dummy/marker.ts +46 -0
package/dist/index.cjs.js
CHANGED
|
@@ -4725,6 +4725,22 @@ const prepareMembershipPayload = (payload, memberProp, userIdProp = 'userId', us
|
|
|
4725
4725
|
return Object.assign(Object.assign({}, rest), { [memberProp]: members });
|
|
4726
4726
|
};
|
|
4727
4727
|
|
|
4728
|
+
function doConvert(markerResponses) {
|
|
4729
|
+
return markerResponses.map((_a) => {
|
|
4730
|
+
var { isMentioned } = _a, rest = __rest(_a, ["isMentioned"]);
|
|
4731
|
+
return (Object.assign({ hasMentioned: isMentioned }, rest));
|
|
4732
|
+
});
|
|
4733
|
+
}
|
|
4734
|
+
function convertUserMarkerResponse(userMarkerResponse) {
|
|
4735
|
+
return doConvert(userMarkerResponse);
|
|
4736
|
+
}
|
|
4737
|
+
function convertChannelMarkerResponse(channelMarkerResponse) {
|
|
4738
|
+
return doConvert(channelMarkerResponse);
|
|
4739
|
+
}
|
|
4740
|
+
function convertSubChannelMarkerResponse(subChannelMarkerResponse) {
|
|
4741
|
+
return doConvert(subChannelMarkerResponse);
|
|
4742
|
+
}
|
|
4743
|
+
|
|
4728
4744
|
/**
|
|
4729
4745
|
* ```js
|
|
4730
4746
|
* import { getChannelMarker } from '@amityco/ts-sdk'
|
|
@@ -4753,18 +4769,22 @@ const getChannelMarkers = async (channelIds, page = { limit: 100 }) => {
|
|
|
4753
4769
|
},
|
|
4754
4770
|
});
|
|
4755
4771
|
const { paging } = queryPayload, payload = __rest(queryPayload, ["paging"]);
|
|
4756
|
-
const { userEntityMarkers, userMarkers } = payload;
|
|
4772
|
+
const { userEntityMarkers: userEntityMarkersPayload, userMarkers: userMarkersPayload } = payload;
|
|
4773
|
+
const userMarkers = convertUserMarkerResponse(userMarkersPayload);
|
|
4774
|
+
const userEntityMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
|
|
4757
4775
|
const cachedAt = client.cache && Date.now();
|
|
4758
4776
|
if (client.cache)
|
|
4759
|
-
ingestInCache(
|
|
4760
|
-
fireEvent('local.channelMarker.fetched', {
|
|
4777
|
+
ingestInCache({ userEntityMarkers, userMarkers }, { cachedAt });
|
|
4778
|
+
fireEvent('local.channelMarker.fetched', {
|
|
4779
|
+
userEntityMarkers,
|
|
4780
|
+
});
|
|
4761
4781
|
fireEvent('local.userMarker.fetched', { userMarkers });
|
|
4762
4782
|
const nextPage = toPage(paging.next);
|
|
4763
4783
|
const prevPage = toPage(paging.previous);
|
|
4764
4784
|
return { data: userEntityMarkers, cachedAt, prevPage, nextPage };
|
|
4765
4785
|
};
|
|
4766
4786
|
|
|
4767
|
-
const getCachedMarker$
|
|
4787
|
+
const getCachedMarker$2 = (entityId) => {
|
|
4768
4788
|
var _a;
|
|
4769
4789
|
const key = {
|
|
4770
4790
|
entityId,
|
|
@@ -4784,7 +4804,31 @@ const getChannelUnreadCount = (channel, marker) => {
|
|
|
4784
4804
|
// from a channel or the channel is deleted the channel's unread count will reset to zero
|
|
4785
4805
|
return 0;
|
|
4786
4806
|
}
|
|
4787
|
-
return (_c = (_a = marker === null || marker === void 0 ? void 0 : marker.unreadCount) !== null && _a !== void 0 ? _a : (_b = getCachedMarker$
|
|
4807
|
+
return (_c = (_a = marker === null || marker === void 0 ? void 0 : marker.unreadCount) !== null && _a !== void 0 ? _a : (_b = getCachedMarker$2(channel.channelId)) === null || _b === void 0 ? void 0 : _b.unreadCount) !== null && _c !== void 0 ? _c : 0;
|
|
4808
|
+
};
|
|
4809
|
+
|
|
4810
|
+
const getCachedMarker$1 = (entityId) => {
|
|
4811
|
+
var _a;
|
|
4812
|
+
const key = {
|
|
4813
|
+
entityId,
|
|
4814
|
+
userId: getActiveUser()._id,
|
|
4815
|
+
};
|
|
4816
|
+
return (_a = pullFromCache([
|
|
4817
|
+
'channelMarker',
|
|
4818
|
+
'get',
|
|
4819
|
+
getResolver('channelMarker')(key),
|
|
4820
|
+
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
4821
|
+
};
|
|
4822
|
+
/**
|
|
4823
|
+
* The function use to get value of hasMentioned field.
|
|
4824
|
+
* function will get the value from marker params first, if there is no hasMentioned field, will look in to the cache.
|
|
4825
|
+
* If not found in the cache, use `false` as defaul value.
|
|
4826
|
+
*/
|
|
4827
|
+
const getChannelHasMentioned = (channel, marker) => {
|
|
4828
|
+
var _a, _b;
|
|
4829
|
+
return (marker === null || marker === void 0 ? void 0 : marker.hasMentioned) !== undefined
|
|
4830
|
+
? marker === null || marker === void 0 ? void 0 : marker.hasMentioned
|
|
4831
|
+
: (_b = (_a = getCachedMarker$1(channel.channelId)) === null || _a === void 0 ? void 0 : _a.hasMentioned) !== null && _b !== void 0 ? _b : false;
|
|
4788
4832
|
};
|
|
4789
4833
|
|
|
4790
4834
|
const MARKER_INCLUDED_CHANNEL_TYPE = ['broadcast', 'conversation', 'community'];
|
|
@@ -4792,6 +4836,9 @@ const isUnreadCountSupport$1 = ({ type }) => MARKER_INCLUDED_CHANNEL_TYPE.includ
|
|
|
4792
4836
|
function convertFromRaw$2(channel) {
|
|
4793
4837
|
return Object.assign(Object.assign({ get unreadCount() {
|
|
4794
4838
|
return getChannelUnreadCount(channel);
|
|
4839
|
+
},
|
|
4840
|
+
get hasMentioned() {
|
|
4841
|
+
return getChannelHasMentioned(channel);
|
|
4795
4842
|
} }, channel), { defaultSubChannelId: channel._id, isUnreadCountSupport: isUnreadCountSupport$1(channel) });
|
|
4796
4843
|
}
|
|
4797
4844
|
const preUpdateChannelCache = (rawPayload) => {
|
|
@@ -4993,10 +5040,11 @@ const getMessageMarkers = async (messageIds, page = { limit: 100 }) => {
|
|
|
4993
5040
|
},
|
|
4994
5041
|
});
|
|
4995
5042
|
const { paging } = queryPayload, payload = __rest(queryPayload, ["paging"]);
|
|
4996
|
-
const { contentMarkers, feedMarkers, userMarkers } = payload;
|
|
5043
|
+
const { contentMarkers, feedMarkers, userMarkers: userMarkersPayload } = payload;
|
|
5044
|
+
const userMarkers = convertUserMarkerResponse(userMarkersPayload);
|
|
4997
5045
|
const cachedAt = client.cache && Date.now();
|
|
4998
5046
|
if (client.cache)
|
|
4999
|
-
ingestInCache(
|
|
5047
|
+
ingestInCache({ contentMarkers, feedMarkers, userMarkers }, { cachedAt });
|
|
5000
5048
|
fireEvent('local.feedMarker.fetched', { feedMarkers });
|
|
5001
5049
|
fireEvent('local.messageMarker.fetched', { contentMarkers });
|
|
5002
5050
|
fireEvent('local.userMarker.fetched', { userMarkers });
|
|
@@ -5033,10 +5081,13 @@ const getSubChannelMarkers = async (messageFeedIds, page = { limit: 100 }) => {
|
|
|
5033
5081
|
},
|
|
5034
5082
|
});
|
|
5035
5083
|
const { paging } = queryPayload, payload = __rest(queryPayload, ["paging"]);
|
|
5036
|
-
const { userEntityMarkers, userFeedMarkers, userMarkers } = payload;
|
|
5084
|
+
const { userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload, userMarkers: userMarkersPayload, } = payload;
|
|
5085
|
+
const userMarkers = convertUserMarkerResponse(userMarkersPayload);
|
|
5086
|
+
const userEntityMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
|
|
5087
|
+
const userFeedMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
|
|
5037
5088
|
const cachedAt = client.cache && Date.now();
|
|
5038
5089
|
if (client.cache)
|
|
5039
|
-
ingestInCache(
|
|
5090
|
+
ingestInCache({ userEntityMarkers, userFeedMarkers, userMarkers }, { cachedAt });
|
|
5040
5091
|
fireEvent('local.channelMarker.fetched', { userEntityMarkers });
|
|
5041
5092
|
fireEvent('local.subChannelMarker.fetched', { userFeedMarkers });
|
|
5042
5093
|
fireEvent('local.userMarker.fetched', { userMarkers });
|
|
@@ -5049,10 +5100,14 @@ const getUserMarker = async () => {
|
|
|
5049
5100
|
const client = getActiveClient();
|
|
5050
5101
|
client.log('channel/getUserMarker');
|
|
5051
5102
|
const { data: payload } = await client.http.get(`/api/v1/markers/userMarker`);
|
|
5052
|
-
const { userMarkers } = payload;
|
|
5103
|
+
const { userMarkers: UserMarkersPayload } = payload;
|
|
5104
|
+
/*
|
|
5105
|
+
change field isMentioned from backend to be hasMentioned
|
|
5106
|
+
*/
|
|
5107
|
+
const userMarkers = convertUserMarkerResponse(UserMarkersPayload);
|
|
5053
5108
|
const cachedAt = client.cache && Date.now();
|
|
5054
5109
|
if (client.cache)
|
|
5055
|
-
ingestInCache(
|
|
5110
|
+
ingestInCache({ userMarkers }, { cachedAt });
|
|
5056
5111
|
fireEvent('local.userMarker.fetched', { userMarkers });
|
|
5057
5112
|
return { data: userMarkers[0], cachedAt };
|
|
5058
5113
|
};
|
|
@@ -5222,6 +5277,30 @@ function getSubChannelUnreadCount(channelId, subChannelId, marker) {
|
|
|
5222
5277
|
return 0;
|
|
5223
5278
|
}
|
|
5224
5279
|
|
|
5280
|
+
function getSubChannelHasMentioned(channelId, subChannelId, marker) {
|
|
5281
|
+
var _a;
|
|
5282
|
+
// Look for `unreadCount` in the marker param first
|
|
5283
|
+
if (marker) {
|
|
5284
|
+
return marker.hasMentioned;
|
|
5285
|
+
}
|
|
5286
|
+
const key = {
|
|
5287
|
+
entityId: channelId,
|
|
5288
|
+
feedId: subChannelId,
|
|
5289
|
+
userId: getActiveUser()._id,
|
|
5290
|
+
};
|
|
5291
|
+
// If the marker param is not set, look in the cache
|
|
5292
|
+
const cachedMarker = (_a = pullFromCache([
|
|
5293
|
+
'subChannelMarker',
|
|
5294
|
+
'get',
|
|
5295
|
+
getResolver('subChannelMarker')(key),
|
|
5296
|
+
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
5297
|
+
if (cachedMarker) {
|
|
5298
|
+
return cachedMarker.hasMentioned;
|
|
5299
|
+
}
|
|
5300
|
+
// and if not found in cache use default value `false`
|
|
5301
|
+
return false;
|
|
5302
|
+
}
|
|
5303
|
+
|
|
5225
5304
|
const MARKER_INCLUDED_SUB_CHANNEL_TYPE = ['broadcast', 'conversation', 'community'];
|
|
5226
5305
|
/**
|
|
5227
5306
|
* Filter sub channel by type. Only conversation, community and broadcast type are included.
|
|
@@ -5231,6 +5310,9 @@ function convertFromRaw(_a) {
|
|
|
5231
5310
|
var { channelId, channelPublicId, channelType, childCount, creatorId, creatorPublicId, lastMessageId, lastMessageTimestamp, messageFeedId, name } = _a, rest = __rest(_a, ["channelId", "channelPublicId", "channelType", "childCount", "creatorId", "creatorPublicId", "lastMessageId", "lastMessageTimestamp", "messageFeedId", "name"]);
|
|
5232
5311
|
return Object.assign(Object.assign({ get unreadCount() {
|
|
5233
5312
|
return getSubChannelUnreadCount(channelId, messageFeedId);
|
|
5313
|
+
},
|
|
5314
|
+
get hasMentioned() {
|
|
5315
|
+
return getSubChannelHasMentioned(channelId, messageFeedId);
|
|
5234
5316
|
} }, rest), { channelId: channelPublicId, creatorId: creatorPublicId, displayName: name, lastActivity: lastMessageTimestamp, latestMessageId: lastMessageId, messageCount: childCount, subChannelId: messageFeedId, isUnreadCountSupport: isUnreadCountSupport({ channelType }) });
|
|
5235
5317
|
}
|
|
5236
5318
|
const preUpdateSubChannelCache = (rawPayload) => {
|
|
@@ -5350,10 +5432,13 @@ const readingAPI = async (messageFeedIds) => {
|
|
|
5350
5432
|
const client = getActiveClient();
|
|
5351
5433
|
client.log('subChannel/readingAPI', messageFeedIds);
|
|
5352
5434
|
const { data: payload } = await client.http.post(`/api/v1/markers/message-feeds/reading`, { messageFeedIds });
|
|
5353
|
-
const { userEntityMarkers, userFeedMarkers, feedMarkers, userMarkers } = payload;
|
|
5435
|
+
const { userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload, feedMarkers, userMarkers: userMarkersPayload, } = payload;
|
|
5436
|
+
const userMarkers = convertUserMarkerResponse(userMarkersPayload);
|
|
5437
|
+
const userEntityMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
|
|
5438
|
+
const userFeedMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
|
|
5354
5439
|
const cachedAt = client.cache && Date.now();
|
|
5355
5440
|
if (client.cache)
|
|
5356
|
-
ingestInCache(
|
|
5441
|
+
ingestInCache({ userEntityMarkers, userFeedMarkers, feedMarkers, userMarkers }, { cachedAt });
|
|
5357
5442
|
fireEvent('local.feedMarker.fetched', { feedMarkers });
|
|
5358
5443
|
fireEvent('local.channelMarker.fetched', { userEntityMarkers });
|
|
5359
5444
|
fireEvent('local.subChannelMarker.fetched', { userFeedMarkers });
|
|
@@ -5380,10 +5465,13 @@ const startReadingAPI = async (messageFeedId) => {
|
|
|
5380
5465
|
const client = getActiveClient();
|
|
5381
5466
|
client.log('subChannel/startReadingAPI', messageFeedId);
|
|
5382
5467
|
const { data: payload } = await client.http.post(`/api/v1/markers/message-feeds/${messageFeedId}/start-reading`);
|
|
5383
|
-
const { userEntityMarkers, userFeedMarkers, feedMarkers, userMarkers } = payload;
|
|
5468
|
+
const { userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload, feedMarkers, userMarkers: userMarkersPayload, } = payload;
|
|
5469
|
+
const userMarkers = convertUserMarkerResponse(userMarkersPayload);
|
|
5470
|
+
const userEntityMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
|
|
5471
|
+
const userFeedMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
|
|
5384
5472
|
const cachedAt = client.cache && Date.now();
|
|
5385
5473
|
if (client.cache)
|
|
5386
|
-
ingestInCache(
|
|
5474
|
+
ingestInCache({ userEntityMarkers, userFeedMarkers, feedMarkers, userMarkers }, { cachedAt });
|
|
5387
5475
|
fireEvent('local.feedMarker.fetched', { feedMarkers });
|
|
5388
5476
|
fireEvent('local.channelMarker.fetched', { userEntityMarkers });
|
|
5389
5477
|
fireEvent('local.subChannelMarker.fetched', { userFeedMarkers });
|
|
@@ -5410,10 +5498,13 @@ const stopReadingAPI = async (messageFeedId) => {
|
|
|
5410
5498
|
const client = getActiveClient();
|
|
5411
5499
|
client.log('channel/stopReadingAPI', messageFeedId);
|
|
5412
5500
|
const { data: payload } = await client.http.post(`/api/v1/markers/message-feeds/${messageFeedId}/stop-reading`);
|
|
5413
|
-
const { userEntityMarkers, userFeedMarkers, feedMarkers, userMarkers } = payload;
|
|
5501
|
+
const { userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload, feedMarkers, userMarkers: userMarkersPayload, } = payload;
|
|
5502
|
+
const userMarkers = convertUserMarkerResponse(userMarkersPayload);
|
|
5503
|
+
const userEntityMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
|
|
5504
|
+
const userFeedMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
|
|
5414
5505
|
const cachedAt = client.cache && Date.now();
|
|
5415
5506
|
if (client.cache)
|
|
5416
|
-
ingestInCache(
|
|
5507
|
+
ingestInCache({ userEntityMarkers, userFeedMarkers, feedMarkers, userMarkers }, { cachedAt });
|
|
5417
5508
|
fireEvent('local.feedMarker.fetched', { feedMarkers });
|
|
5418
5509
|
fireEvent('local.channelMarker.fetched', { userEntityMarkers });
|
|
5419
5510
|
fireEvent('local.subChannelMarker.fetched', { userFeedMarkers });
|
|
@@ -6117,10 +6208,13 @@ const markerSync = async (deviceLastSyncAt) => {
|
|
|
6117
6208
|
const client = getActiveClient();
|
|
6118
6209
|
client.log('channel/markerSync');
|
|
6119
6210
|
const { data: payload } = await client.http.post(`/api/v1/markers/sync`, { deviceLastSyncAt });
|
|
6120
|
-
const { userEntityMarkers, userFeedMarkers, feedMarkers, userMarkers } = payload;
|
|
6211
|
+
const { userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload, feedMarkers, userMarkers: userMarkersPayload, } = payload;
|
|
6212
|
+
const userMarkers = convertUserMarkerResponse(userMarkersPayload);
|
|
6213
|
+
const userEntityMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
|
|
6214
|
+
const userFeedMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
|
|
6121
6215
|
const cachedAt = client.cache && Date.now();
|
|
6122
6216
|
if (client.cache)
|
|
6123
|
-
ingestInCache(
|
|
6217
|
+
ingestInCache({ userEntityMarkers, userFeedMarkers, feedMarkers, userMarkers }, { cachedAt });
|
|
6124
6218
|
fireEvent('local.feedMarker.fetched', { feedMarkers });
|
|
6125
6219
|
fireEvent('local.channelMarker.fetched', { userEntityMarkers });
|
|
6126
6220
|
fireEvent('local.subChannelMarker.fetched', { userFeedMarkers });
|
|
@@ -6454,6 +6548,8 @@ const liveObject = (id, callback, key, fetcher, eventHandlers, options) => {
|
|
|
6454
6548
|
};
|
|
6455
6549
|
|
|
6456
6550
|
/**
|
|
6551
|
+
* @deprecated Please use unreadCount from `getUserUnread` instead.
|
|
6552
|
+
*
|
|
6457
6553
|
* ```js
|
|
6458
6554
|
* import { getTotalUnreadCount } from '@amityco/ts-sdk';
|
|
6459
6555
|
*
|
|
@@ -6479,6 +6575,39 @@ const getTotalUnreadCount = (callback) => {
|
|
|
6479
6575
|
});
|
|
6480
6576
|
};
|
|
6481
6577
|
|
|
6578
|
+
/**
|
|
6579
|
+
*
|
|
6580
|
+
* ```js
|
|
6581
|
+
* import { getUserUnread } from '@amityco/ts-sdk';
|
|
6582
|
+
*
|
|
6583
|
+
* const unsubscribe = getUserUnread(response => {
|
|
6584
|
+
* userUnread = response.data;
|
|
6585
|
+
* });
|
|
6586
|
+
* ```
|
|
6587
|
+
*
|
|
6588
|
+
* Observe current user's unread including unreadCount and hasMentioned from {@link Amity.UserMarker}
|
|
6589
|
+
*
|
|
6590
|
+
* @param callback the function to call when new data are available
|
|
6591
|
+
* @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the events
|
|
6592
|
+
*
|
|
6593
|
+
* @category Message Live Object
|
|
6594
|
+
*/
|
|
6595
|
+
const getUserUnread = (callback) => {
|
|
6596
|
+
const { _id: userId } = getActiveUser();
|
|
6597
|
+
if (!userId)
|
|
6598
|
+
throw new ASCError('The _id has not been defined in ActiveUser', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
6599
|
+
const callbackDataSelector = (data) => {
|
|
6600
|
+
var _a;
|
|
6601
|
+
return {
|
|
6602
|
+
unreadCount: (_a = data === null || data === void 0 ? void 0 : data.unreadCount) !== null && _a !== void 0 ? _a : 0,
|
|
6603
|
+
hasMentioned: !!(data === null || data === void 0 ? void 0 : data.hasMentioned),
|
|
6604
|
+
};
|
|
6605
|
+
};
|
|
6606
|
+
return liveObject(userId, callback, 'userId', getUserMarker, [onUserMarkerFetched], {
|
|
6607
|
+
callbackDataSelector,
|
|
6608
|
+
});
|
|
6609
|
+
};
|
|
6610
|
+
|
|
6482
6611
|
/**
|
|
6483
6612
|
* ```js
|
|
6484
6613
|
* import { getChannelByIds } from '@amityco/ts-sdk'
|
|
@@ -6852,9 +6981,10 @@ const markAsRead = async (channelId) => {
|
|
|
6852
6981
|
const client = getActiveClient();
|
|
6853
6982
|
client.log('channel/markAsRead', channelId);
|
|
6854
6983
|
const { data } = await client.http.put(`/api/v1/markers/channels/${channelId}/mark-read`);
|
|
6984
|
+
const { userMarkers: userMarkersPayload, userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload } = data, rest = __rest(data, ["userMarkers", "userEntityMarkers", "userFeedMarkers"]);
|
|
6855
6985
|
const cachedAt = client.cache && Date.now();
|
|
6856
6986
|
if (client.cache)
|
|
6857
|
-
ingestInCache(
|
|
6987
|
+
ingestInCache(Object.assign({ userMarkers: convertUserMarkerResponse(userMarkersPayload), userEntityMarkers: convertChannelMarkerResponse(userEntityMarkersPayload), userFeedMarkers: convertSubChannelMarkerResponse(userFeedMarkersPayload) }, rest), { cachedAt });
|
|
6858
6988
|
return true;
|
|
6859
6989
|
};
|
|
6860
6990
|
|
|
@@ -7240,6 +7370,8 @@ const queryChannels = async (query) => {
|
|
|
7240
7370
|
return { data: channels, cachedAt, prevPage, nextPage };
|
|
7241
7371
|
};
|
|
7242
7372
|
|
|
7373
|
+
const uuid = () => nativeIdGenerator__default["default"].v4().toString();
|
|
7374
|
+
|
|
7243
7375
|
/* begin_public_function
|
|
7244
7376
|
id: channel.query
|
|
7245
7377
|
*/
|
|
@@ -7272,7 +7404,7 @@ const getChannels = (params, callback, config) => {
|
|
|
7272
7404
|
const limit = queryLimit !== null && queryLimit !== void 0 ? queryLimit : COLLECTION_DEFAULT_PAGINATION_LIMIT;
|
|
7273
7405
|
const { policy = COLLECTION_DEFAULT_CACHING_POLICY } = config !== null && config !== void 0 ? config : {};
|
|
7274
7406
|
const disposers = [];
|
|
7275
|
-
const cacheKey = ['channel', 'collection',
|
|
7407
|
+
const cacheKey = ['channel', 'collection', uuid()];
|
|
7276
7408
|
const responder = (data) => {
|
|
7277
7409
|
var _a, _b;
|
|
7278
7410
|
let channels = (_a = data.data
|
|
@@ -7358,7 +7490,7 @@ const getChannels = (params, callback, config) => {
|
|
|
7358
7490
|
};
|
|
7359
7491
|
disposers.push(onChannelCreated(realtimeRouter()), onChannelDeleted(realtimeRouter()), onChannelUpdated(realtimeRouter()), onChannelMuted(realtimeRouter()), onChannelJoined(realtimeRouter()), onChannelLeft(realtimeRouter()), onChannelMemberAdded(realtimeRouter()), onChannelMemberRemoved(realtimeRouter()), convertEventPayload(onChannelMarkerFetched, 'entityId', 'channel')(realtimeRouter()));
|
|
7360
7492
|
onFetch(true);
|
|
7361
|
-
dropFromCache(cacheKey);
|
|
7493
|
+
disposers.push(() => dropFromCache(cacheKey));
|
|
7362
7494
|
return () => {
|
|
7363
7495
|
log(`getChannels(tmpid: ${timestamp}) > dispose`);
|
|
7364
7496
|
disposers.forEach(fn => fn());
|
|
@@ -7887,8 +8019,12 @@ var index$g = /*#__PURE__*/Object.freeze({
|
|
|
7887
8019
|
const onUserMarkerSync = (callback) => {
|
|
7888
8020
|
const client = getActiveClient();
|
|
7889
8021
|
const filter = (payload) => {
|
|
7890
|
-
|
|
7891
|
-
|
|
8022
|
+
const { userMarkers: userMarkersPayload, userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload } = payload, rest = __rest(payload, ["userMarkers", "userEntityMarkers", "userFeedMarkers"]);
|
|
8023
|
+
const userMarkers = convertUserMarkerResponse(userMarkersPayload);
|
|
8024
|
+
const userEntityMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
|
|
8025
|
+
const userFeedMarker = convertSubChannelMarkerResponse(userFeedMarkersPayload);
|
|
8026
|
+
ingestInCache(Object.assign({ userMarkers, userEntityMarkers, userFeedMarker }, rest));
|
|
8027
|
+
callback(userMarkers[0]);
|
|
7892
8028
|
};
|
|
7893
8029
|
return createEventSubscriber(client, 'UserMarker/onUserMarkerSync', 'marker.user-sync', filter);
|
|
7894
8030
|
};
|
|
@@ -8395,6 +8531,7 @@ var index$f = /*#__PURE__*/Object.freeze({
|
|
|
8395
8531
|
onClientBanned: onClientBanned,
|
|
8396
8532
|
onSessionStateChange: onSessionStateChange,
|
|
8397
8533
|
getTotalUnreadCount: getTotalUnreadCount,
|
|
8534
|
+
getUserUnread: getUserUnread,
|
|
8398
8535
|
getMarkerSyncEvents: getMarkerSyncEvents,
|
|
8399
8536
|
setMarkerSyncEvents: setMarkerSyncEvents,
|
|
8400
8537
|
pushMarkerSyncEvent: pushMarkerSyncEvent,
|
|
@@ -12152,8 +12289,6 @@ getMessages$1.locally = (messageIds) => {
|
|
|
12152
12289
|
};
|
|
12153
12290
|
};
|
|
12154
12291
|
|
|
12155
|
-
const uuid = () => nativeIdGenerator__default["default"].v4().toString();
|
|
12156
|
-
|
|
12157
12292
|
const getLocalId = () => `LOCAL_${uuid()}`;
|
|
12158
12293
|
// FIXME: temp solution
|
|
12159
12294
|
let uniqueId;
|
|
@@ -12525,9 +12660,10 @@ const markAsDelivered = async (subChannelId, messageId) => {
|
|
|
12525
12660
|
const client = getActiveClient();
|
|
12526
12661
|
client.log('message/markAsDelivered', subChannelId, messageId);
|
|
12527
12662
|
const { data } = await client.http.put(`/api/v1/markers/message-feeds/${subChannelId}/mark-delivering`, { messageId });
|
|
12663
|
+
const { userMarkers, userEntityMarkers, userFeedMarkers } = data, rest = __rest(data, ["userMarkers", "userEntityMarkers", "userFeedMarkers"]);
|
|
12528
12664
|
const cachedAt = client.cache && Date.now();
|
|
12529
12665
|
if (client.cache)
|
|
12530
|
-
ingestInCache(
|
|
12666
|
+
ingestInCache(Object.assign({ userMarkers: convertUserMarkerResponse(userMarkers), userEntityMarkers: convertChannelMarkerResponse(userEntityMarkers), userFeedMarkers: convertSubChannelMarkerResponse(userFeedMarkers) }, rest), { cachedAt });
|
|
12531
12667
|
return true;
|
|
12532
12668
|
};
|
|
12533
12669
|
|
|
@@ -12557,10 +12693,10 @@ const getReadUsers = async (query) => {
|
|
|
12557
12693
|
token: toToken(page, 'afterbeforeraw'),
|
|
12558
12694
|
} }),
|
|
12559
12695
|
});
|
|
12560
|
-
const { paging, publicUserIds: readUsers } = data, payload = __rest(data, ["paging", "publicUserIds"]);
|
|
12696
|
+
const { paging, publicUserIds: readUsers, userFeedMarkers } = data, payload = __rest(data, ["paging", "publicUserIds", "userFeedMarkers"]);
|
|
12561
12697
|
const cachedAt = client.cache && Date.now();
|
|
12562
12698
|
if (client.cache) {
|
|
12563
|
-
ingestInCache(payload, { cachedAt });
|
|
12699
|
+
ingestInCache(Object.assign(Object.assign({}, payload), { userFeedMarkers: convertSubChannelMarkerResponse(userFeedMarkers) }), { cachedAt });
|
|
12564
12700
|
const cacheKey = [
|
|
12565
12701
|
'read-user',
|
|
12566
12702
|
'query',
|
|
@@ -12638,10 +12774,10 @@ const getDeliveredUsers = async (query) => {
|
|
|
12638
12774
|
token: toToken(page, 'afterbeforeraw'),
|
|
12639
12775
|
} }),
|
|
12640
12776
|
});
|
|
12641
|
-
const { paging, publicUserIds: deliveredUsers } = data, payload = __rest(data, ["paging", "publicUserIds"]);
|
|
12777
|
+
const { paging, publicUserIds: deliveredUsers, userFeedMarkers } = data, payload = __rest(data, ["paging", "publicUserIds", "userFeedMarkers"]);
|
|
12642
12778
|
const cachedAt = client.cache && Date.now();
|
|
12643
12779
|
if (client.cache) {
|
|
12644
|
-
ingestInCache(payload, { cachedAt });
|
|
12780
|
+
ingestInCache(Object.assign(Object.assign({}, payload), { userFeedMarkers: convertSubChannelMarkerResponse(userFeedMarkers) }), { cachedAt });
|
|
12645
12781
|
const cacheKey = [
|
|
12646
12782
|
'delivered-user',
|
|
12647
12783
|
'query',
|