@amityco/ts-sdk-react-native 6.17.0 → 6.17.3
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 +15 -4
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/payload.d.ts +1 -0
- package/dist/@types/core/payload.d.ts.map +1 -1
- package/dist/@types/core/permissions.d.ts +5 -0
- package/dist/@types/core/permissions.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/story.d.ts +7 -1
- package/dist/@types/domains/story.d.ts.map +1 -1
- package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.d.ts.map +1 -0
- package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.d.ts.map +1 -0
- package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberQueryStreamController.d.ts.map +1 -0
- package/dist/channelRepository/channelMembership/observers/getMembers/getMembers.d.ts.map +1 -0
- package/dist/channelRepository/channelMembership/observers/getMembers/index.d.ts +2 -0
- package/dist/channelRepository/channelMembership/observers/getMembers/index.d.ts.map +1 -0
- package/dist/channelRepository/observers/getChannel.d.ts.map +1 -1
- package/dist/channelRepository/observers/getChannels/ChannelLiveCollectionController.d.ts.map +1 -0
- package/dist/channelRepository/observers/getChannels/ChannelPaginationController.d.ts.map +1 -0
- package/dist/channelRepository/observers/getChannels/ChannelPagnationNoPageController.d.ts.map +1 -0
- package/dist/channelRepository/observers/getChannels/ChannelQueryStreamController.d.ts.map +1 -0
- package/dist/channelRepository/observers/getChannels/getChannels.d.ts.map +1 -0
- package/dist/channelRepository/observers/getChannels/index.d.ts +2 -0
- package/dist/channelRepository/observers/getChannels/index.d.ts.map +1 -0
- package/dist/client/api/createClient.d.ts.map +1 -1
- package/dist/client/api/login.d.ts.map +1 -1
- package/dist/client/api/logout.d.ts.map +1 -1
- package/dist/client/observers/getTotalUnreadCount.d.ts.map +1 -1
- package/dist/client/observers/getUserUnread.d.ts.map +1 -1
- package/dist/client/utils/hasPermission/checkChannelPermission.d.ts +2 -0
- package/dist/client/utils/hasPermission/checkChannelPermission.d.ts.map +1 -0
- package/dist/client/utils/hasPermission/checkCommunityPermission.d.ts +2 -0
- package/dist/client/utils/hasPermission/checkCommunityPermission.d.ts.map +1 -0
- package/dist/client/utils/hasPermission/checkUserPermission.d.ts +2 -0
- package/dist/client/utils/hasPermission/checkUserPermission.d.ts.map +1 -0
- package/dist/client/utils/hasPermission/hasPermission.d.ts +6 -0
- package/dist/client/utils/hasPermission/hasPermission.d.ts.map +1 -0
- package/dist/client/utils/hasPermission/index.d.ts +2 -0
- package/dist/client/utils/hasPermission/index.d.ts.map +1 -0
- package/dist/client/utils/markerSyncEngine.d.ts.map +1 -1
- package/dist/client/utils/setClientToken.d.ts +1 -1
- package/dist/client/utils/setClientToken.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityJoined.d.ts +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityJoined.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityLeft.d.ts +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityLeft.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserAdded.d.ts +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserAdded.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserBanned.d.ts +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserBanned.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserChanged.d.ts +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserChanged.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserRemoved.d.ts +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserRemoved.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserRoleAdded.d.ts +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserRoleAdded.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserRoleRemoved.d.ts +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserRoleRemoved.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserUnbanned.d.ts +1 -1
- package/dist/communityRepository/communityMembership/events/onCommunityUserUnbanned.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/events/utils.d.ts +1 -1
- package/dist/communityRepository/communityMembership/events/utils.d.ts.map +1 -1
- package/dist/communityRepository/communityMembership/observers/getMembers.d.ts.map +1 -1
- package/dist/core/events.d.ts +3 -3
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/liveCollection/LiveCollectionController.d.ts +1 -1
- package/dist/core/liveCollection/LiveCollectionController.d.ts.map +1 -1
- package/dist/core/liveCollection/QueryStreamController.d.ts +1 -1
- package/dist/core/liveCollection/QueryStreamController.d.ts.map +1 -1
- package/dist/core/subscription.d.ts +2 -0
- package/dist/core/subscription.d.ts.map +1 -1
- package/dist/index.cjs.js +734 -114
- package/dist/index.esm.js +732 -115
- package/dist/index.umd.js +4 -4
- package/dist/marker/api/getUserMarker.d.ts +1 -1
- package/dist/marker/api/getUserMarker.d.ts.map +1 -1
- package/dist/marker/events/onChannelMarkerFetched.d.ts.map +1 -1
- package/dist/marker/events/onUserMarkerFetched.d.ts +2 -1
- package/dist/marker/events/onUserMarkerFetched.d.ts.map +1 -1
- package/dist/messageRepository/events/onMessageCreated.d.ts +2 -1
- package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
- package/dist/messageRepository/observers/getMessages/MessageLiveCollectionController.d.ts.map +1 -0
- package/dist/messageRepository/observers/getMessages/MessagePaginationController.d.ts.map +1 -0
- package/dist/messageRepository/observers/getMessages/MessageQueryStreamController.d.ts.map +1 -0
- package/dist/messageRepository/observers/getMessages/getMessages.d.ts.map +1 -0
- package/dist/messageRepository/observers/getMessages/index.d.ts +2 -0
- package/dist/messageRepository/observers/getMessages/index.d.ts.map +1 -0
- package/dist/messageRepository/observers/observeMessages.d.ts.map +1 -1
- package/dist/messageRepository/utils/prepareMessagePayload.d.ts.map +1 -1
- package/dist/storyRepository/constants.d.ts +1 -0
- package/dist/storyRepository/constants.d.ts.map +1 -1
- package/dist/storyRepository/events/onStoryCreated.d.ts +2 -1
- package/dist/storyRepository/events/onStoryCreated.d.ts.map +1 -1
- package/dist/storyRepository/events/onStoryDeleted.d.ts +2 -1
- package/dist/storyRepository/events/onStoryDeleted.d.ts.map +1 -1
- package/dist/storyRepository/events/onStoryReactionAdded.d.ts +3 -0
- package/dist/storyRepository/events/onStoryReactionAdded.d.ts.map +1 -0
- package/dist/storyRepository/events/onStoryReactionRemoved.d.ts +3 -0
- package/dist/storyRepository/events/onStoryReactionRemoved.d.ts.map +1 -0
- package/dist/storyRepository/events/onStoryUpdated.d.ts +2 -1
- package/dist/storyRepository/events/onStoryUpdated.d.ts.map +1 -1
- package/dist/storyRepository/observers/getActiveStoriesByTarget.d.ts +20 -0
- package/dist/storyRepository/observers/getActiveStoriesByTarget.d.ts.map +1 -1
- package/dist/storyRepository/observers/getStoriesByTargetIds/StoryLiveCollectionController.d.ts +14 -0
- package/dist/storyRepository/observers/getStoriesByTargetIds/StoryLiveCollectionController.d.ts.map +1 -0
- package/dist/storyRepository/observers/getStoriesByTargetIds/StoryPaginationNoPageController.d.ts +5 -0
- package/dist/storyRepository/observers/getStoriesByTargetIds/StoryPaginationNoPageController.d.ts.map +1 -0
- package/dist/storyRepository/observers/getStoriesByTargetIds/StoryQueryStreamController.d.ts +16 -0
- package/dist/storyRepository/observers/getStoriesByTargetIds/StoryQueryStreamController.d.ts.map +1 -0
- package/dist/storyRepository/observers/getStoriesByTargetIds/getStoriesByTargetIds.d.ts +5 -0
- package/dist/storyRepository/observers/getStoriesByTargetIds/getStoriesByTargetIds.d.ts.map +1 -0
- package/dist/storyRepository/observers/getStoriesByTargetIds/index.d.ts +2 -0
- package/dist/storyRepository/observers/getStoriesByTargetIds/index.d.ts.map +1 -0
- package/dist/storyRepository/observers/getStoryByStoryId.d.ts.map +1 -1
- package/dist/storyRepository/observers/index.d.ts +1 -0
- package/dist/storyRepository/observers/index.d.ts.map +1 -1
- package/dist/subChannelRepository/observers/getSubChannel.d.ts.map +1 -1
- package/dist/subChannelRepository/observers/{liveCollection → getSubChannels}/SubChannelLiveCollectionController.d.ts.map +1 -1
- package/dist/subChannelRepository/observers/{liveCollection → getSubChannels}/SubChannelPaginationController.d.ts.map +1 -1
- package/dist/subChannelRepository/observers/{liveCollection → getSubChannels}/SubChannelQueryStreamController.d.ts.map +1 -1
- package/dist/subChannelRepository/observers/getSubChannels/getSubChannels.d.ts.map +1 -0
- package/dist/subChannelRepository/observers/getSubChannels/index.d.ts +2 -0
- package/dist/subChannelRepository/observers/getSubChannels/index.d.ts.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/core/events.ts +16 -4
- package/src/@types/core/payload.ts +1 -0
- package/src/@types/core/permissions.ts +6 -0
- package/src/@types/domains/client.ts +2 -0
- package/src/@types/domains/story.ts +7 -0
- package/src/analytic/api/queryReachUser.ts +1 -1
- package/src/analytic/service/analytic/AnalyticsEventCapturer.ts +1 -1
- package/src/channelRepository/channelMembership/observers/{getMembers.ts → getMembers/getMembers.ts} +1 -1
- package/src/channelRepository/channelMembership/observers/getMembers/index.ts +1 -0
- package/src/channelRepository/observers/getChannel.ts +30 -2
- package/src/channelRepository/observers/{liveCollection → getChannels}/ChannelLiveCollectionController.ts +65 -3
- package/src/channelRepository/observers/{getChannels.ts → getChannels/getChannels.ts} +1 -1
- package/src/channelRepository/observers/getChannels/index.ts +1 -0
- package/src/client/api/createClient.ts +3 -1
- package/src/client/api/login.ts +29 -6
- package/src/client/api/logout.ts +5 -0
- package/src/client/observers/getTotalUnreadCount.ts +14 -4
- package/src/client/observers/getUserUnread.ts +95 -11
- package/src/client/utils/hasPermission/checkChannelPermission.ts +22 -0
- package/src/client/utils/hasPermission/checkCommunityPermission.ts +22 -0
- package/src/client/utils/hasPermission/checkUserPermission.ts +12 -0
- package/src/client/utils/hasPermission/hasPermission.ts +18 -0
- package/src/client/utils/hasPermission/index.ts +1 -0
- package/src/client/utils/markerSyncEngine.ts +46 -32
- package/src/client/utils/setClientToken.ts +1 -1
- package/src/communityRepository/communityMembership/events/onCommunityJoined.ts +1 -1
- package/src/communityRepository/communityMembership/events/onCommunityLeft.ts +1 -1
- package/src/communityRepository/communityMembership/events/onCommunityUserAdded.ts +1 -1
- package/src/communityRepository/communityMembership/events/onCommunityUserBanned.ts +1 -1
- package/src/communityRepository/communityMembership/events/onCommunityUserChanged.ts +1 -1
- package/src/communityRepository/communityMembership/events/onCommunityUserRemoved.ts +1 -1
- package/src/communityRepository/communityMembership/events/onCommunityUserRoleAdded.ts +1 -1
- package/src/communityRepository/communityMembership/events/onCommunityUserRoleRemoved.ts +1 -1
- package/src/communityRepository/communityMembership/events/onCommunityUserUnbanned.ts +1 -1
- package/src/communityRepository/communityMembership/events/utils.ts +19 -13
- package/src/communityRepository/communityMembership/observers/getMembers.ts +18 -9
- package/src/core/liveCollection/LiveCollectionController.ts +2 -2
- package/src/core/liveCollection/QueryStreamController.ts +1 -1
- package/src/core/subscription.ts +19 -0
- package/src/marker/api/getUserMarker.ts +15 -4
- package/src/marker/events/onChannelMarkerFetched.ts +3 -1
- package/src/marker/events/onUserMarkerFetched.ts +17 -0
- package/src/messageRepository/api/tests/createMessage.test.ts +4 -4
- package/src/messageRepository/events/onMessageCreated.ts +20 -8
- package/src/messageRepository/events/tests/events.test.ts +2 -2
- package/src/messageRepository/observers/{liveCollection → getMessages}/MessageLiveCollectionController.ts +2 -2
- package/src/messageRepository/observers/{getMessages.ts → getMessages/getMessages.ts} +4 -26
- package/src/messageRepository/observers/getMessages/index.ts +1 -0
- package/src/messageRepository/observers/observeMessages.ts +8 -2
- package/src/messageRepository/utils/prepareMessagePayload.ts +14 -4
- package/src/storyRepository/api/createImageStory.ts +3 -3
- package/src/storyRepository/api/createVideoStory.ts +3 -3
- package/src/storyRepository/constants.ts +1 -0
- package/src/storyRepository/events/onStoryCreated.ts +25 -1
- package/src/storyRepository/events/onStoryDeleted.ts +22 -1
- package/src/storyRepository/events/onStoryError.ts +1 -1
- package/src/storyRepository/events/onStoryLocalDataUpdated.ts +1 -1
- package/src/storyRepository/events/onStoryReactionAdded.ts +39 -0
- package/src/storyRepository/events/onStoryReactionRemoved.ts +39 -0
- package/src/storyRepository/events/onStoryUpdated.ts +25 -1
- package/src/storyRepository/internalApi/createStory.ts +1 -1
- package/src/storyRepository/observers/getActiveStoriesByTarget.ts +40 -3
- package/src/storyRepository/observers/getStoriesByTargetIds/StoryLiveCollectionController.ts +113 -0
- package/src/storyRepository/observers/getStoriesByTargetIds/StoryPaginationNoPageController.ts +18 -0
- package/src/storyRepository/observers/getStoriesByTargetIds/StoryQueryStreamController.ts +97 -0
- package/src/storyRepository/observers/getStoriesByTargetIds/getStoriesByTargetIds.ts +32 -0
- package/src/storyRepository/observers/getStoriesByTargetIds/index.ts +1 -0
- package/src/storyRepository/observers/getStoryByStoryId.ts +22 -2
- package/src/storyRepository/observers/index.ts +1 -0
- package/src/subChannelRepository/observers/getSubChannel.ts +35 -2
- package/src/subChannelRepository/observers/{liveCollection → getSubChannels}/SubChannelLiveCollectionController.ts +53 -2
- package/src/subChannelRepository/observers/{getSubChannels.ts → getSubChannels/getSubChannels.ts} +1 -1
- package/src/subChannelRepository/observers/getSubChannels/index.ts +1 -0
- package/src/utils/index.ts +4 -0
- package/dist/channelRepository/channelMembership/observers/getMembers.d.ts.map +0 -1
- package/dist/channelRepository/channelMembership/observers/liveCollection/ChannelMemberLiveCollectionController.d.ts.map +0 -1
- package/dist/channelRepository/channelMembership/observers/liveCollection/ChannelMemberPaginationController.d.ts.map +0 -1
- package/dist/channelRepository/channelMembership/observers/liveCollection/ChannelMemberQueryStreamController.d.ts.map +0 -1
- package/dist/channelRepository/observers/getChannels.d.ts.map +0 -1
- package/dist/channelRepository/observers/liveCollection/ChannelLiveCollectionController.d.ts.map +0 -1
- package/dist/channelRepository/observers/liveCollection/ChannelPaginationController.d.ts.map +0 -1
- package/dist/channelRepository/observers/liveCollection/ChannelPagnationNoPageController.d.ts.map +0 -1
- package/dist/channelRepository/observers/liveCollection/ChannelQueryStreamController.d.ts.map +0 -1
- package/dist/messageRepository/observers/getMessages.d.ts.map +0 -1
- package/dist/messageRepository/observers/liveCollection/MessageLiveCollectionController.d.ts.map +0 -1
- package/dist/messageRepository/observers/liveCollection/MessagePaginationController.d.ts.map +0 -1
- package/dist/messageRepository/observers/liveCollection/MessageQueryStreamController.d.ts.map +0 -1
- package/dist/subChannelRepository/observers/getSubChannels.d.ts.map +0 -1
- /package/dist/channelRepository/channelMembership/observers/{liveCollection → getMembers}/ChannelMemberLiveCollectionController.d.ts +0 -0
- /package/dist/channelRepository/channelMembership/observers/{liveCollection → getMembers}/ChannelMemberPaginationController.d.ts +0 -0
- /package/dist/channelRepository/channelMembership/observers/{liveCollection → getMembers}/ChannelMemberQueryStreamController.d.ts +0 -0
- /package/dist/channelRepository/channelMembership/observers/{getMembers.d.ts → getMembers/getMembers.d.ts} +0 -0
- /package/dist/channelRepository/observers/{liveCollection → getChannels}/ChannelLiveCollectionController.d.ts +0 -0
- /package/dist/channelRepository/observers/{liveCollection → getChannels}/ChannelPaginationController.d.ts +0 -0
- /package/dist/channelRepository/observers/{liveCollection → getChannels}/ChannelPagnationNoPageController.d.ts +0 -0
- /package/dist/channelRepository/observers/{liveCollection → getChannels}/ChannelQueryStreamController.d.ts +0 -0
- /package/dist/channelRepository/observers/{getChannels.d.ts → getChannels/getChannels.d.ts} +0 -0
- /package/dist/messageRepository/observers/{liveCollection → getMessages}/MessageLiveCollectionController.d.ts +0 -0
- /package/dist/messageRepository/observers/{liveCollection → getMessages}/MessagePaginationController.d.ts +0 -0
- /package/dist/messageRepository/observers/{liveCollection → getMessages}/MessageQueryStreamController.d.ts +0 -0
- /package/dist/messageRepository/observers/{getMessages.d.ts → getMessages/getMessages.d.ts} +0 -0
- /package/dist/subChannelRepository/observers/{liveCollection → getSubChannels}/SubChannelLiveCollectionController.d.ts +0 -0
- /package/dist/subChannelRepository/observers/{liveCollection → getSubChannels}/SubChannelPaginationController.d.ts +0 -0
- /package/dist/subChannelRepository/observers/{liveCollection → getSubChannels}/SubChannelQueryStreamController.d.ts +0 -0
- /package/dist/subChannelRepository/observers/{getSubChannels.d.ts → getSubChannels/getSubChannels.d.ts} +0 -0
- /package/src/channelRepository/channelMembership/observers/{liveCollection → getMembers}/ChannelMemberLiveCollectionController.ts +0 -0
- /package/src/channelRepository/channelMembership/observers/{liveCollection → getMembers}/ChannelMemberPaginationController.ts +0 -0
- /package/src/channelRepository/channelMembership/observers/{liveCollection → getMembers}/ChannelMemberQueryStreamController.ts +0 -0
- /package/src/channelRepository/observers/{liveCollection → getChannels}/ChannelPaginationController.ts +0 -0
- /package/src/channelRepository/observers/{liveCollection → getChannels}/ChannelPagnationNoPageController.ts +0 -0
- /package/src/channelRepository/observers/{liveCollection → getChannels}/ChannelQueryStreamController.ts +0 -0
- /package/src/messageRepository/observers/{liveCollection → getMessages}/MessagePaginationController.ts +0 -0
- /package/src/messageRepository/observers/{liveCollection → getMessages}/MessageQueryStreamController.ts +0 -0
- /package/src/subChannelRepository/observers/{liveCollection → getSubChannels}/SubChannelPaginationController.ts +0 -0
- /package/src/subChannelRepository/observers/{liveCollection → getSubChannels}/SubChannelQueryStreamController.ts +0 -0
package/dist/index.esm.js
CHANGED
|
@@ -84,8 +84,8 @@ const PostContentType = Object.freeze({
|
|
|
84
84
|
|
|
85
85
|
function getVersion() {
|
|
86
86
|
try {
|
|
87
|
-
// the string ''v6.17.
|
|
88
|
-
return 'v6.17.
|
|
87
|
+
// the string ''v6.17.3-esm'' should be replaced by actual value by @rollup/plugin-replace
|
|
88
|
+
return 'v6.17.3-esm';
|
|
89
89
|
}
|
|
90
90
|
catch (error) {
|
|
91
91
|
return '__dev__';
|
|
@@ -1420,6 +1420,16 @@ const getPostTopic = ({ path }, level = SubscriptionLevels.POST) => {
|
|
|
1420
1420
|
const getCommentTopic = ({ path }) => {
|
|
1421
1421
|
return path;
|
|
1422
1422
|
};
|
|
1423
|
+
// Subscribe on comment and story update on a single story
|
|
1424
|
+
const getStoryTopic = ({ targetId, targetType, storyId, }) => {
|
|
1425
|
+
const user = getActiveUser();
|
|
1426
|
+
return `${getNetworkId(user)}/social/${targetType}/${targetId}/story/${storyId}/#`;
|
|
1427
|
+
};
|
|
1428
|
+
// Subscribe on comment and story update on stories under community
|
|
1429
|
+
const getCommunityStoriesTopic = ({ targetId, targetType, }) => {
|
|
1430
|
+
const user = getActiveUser();
|
|
1431
|
+
return `${getNetworkId(user)}/social/${targetType}/${targetId}/story/#`;
|
|
1432
|
+
};
|
|
1423
1433
|
const getMyFollowersTopic = () => {
|
|
1424
1434
|
const user = getActiveUser();
|
|
1425
1435
|
return `${getNetworkId(user)}/membership/${user._id}/+/+`;
|
|
@@ -21060,7 +21070,7 @@ class AnalyticsEventCapturer {
|
|
|
21060
21070
|
return;
|
|
21061
21071
|
this._throttleStoryTimer = setTimeout(() => {
|
|
21062
21072
|
clearTimeout(this._throttleStoryTimer);
|
|
21063
|
-
fireEvent('local.story.
|
|
21073
|
+
fireEvent('local.story.reload', { referenceIds: this._bufferNewSeenStoryReferenceIds });
|
|
21064
21074
|
this._bufferNewSeenStoryReferenceIds = [];
|
|
21065
21075
|
}, 300);
|
|
21066
21076
|
}
|
|
@@ -21925,7 +21935,14 @@ const getUserMarker = async () => {
|
|
|
21925
21935
|
if (client.cache)
|
|
21926
21936
|
ingestInCache({ userMarkers }, { cachedAt });
|
|
21927
21937
|
fireEvent('local.userMarker.fetched', { userMarkers });
|
|
21928
|
-
|
|
21938
|
+
const latestUserMarker = userMarkers.reduce((maxUserMarker, userMarker) => {
|
|
21939
|
+
if (maxUserMarker == null ||
|
|
21940
|
+
new Date(maxUserMarker.lastSyncAt).getTime() < new Date(userMarker.lastSyncAt).getTime()) {
|
|
21941
|
+
return userMarker;
|
|
21942
|
+
}
|
|
21943
|
+
return maxUserMarker;
|
|
21944
|
+
}, null);
|
|
21945
|
+
return { data: latestUserMarker, cachedAt };
|
|
21929
21946
|
};
|
|
21930
21947
|
|
|
21931
21948
|
/** @hidden */
|
|
@@ -22100,17 +22117,25 @@ const preUpdateMessageCache = (rawPayload) => {
|
|
|
22100
22117
|
messages: rawPayload.messages.map(message => convertFromRaw(message, rawPayload.reactions)),
|
|
22101
22118
|
});
|
|
22102
22119
|
};
|
|
22120
|
+
const DEBOUNCE_TIME = 2000;
|
|
22121
|
+
const currentDebounceMap = {};
|
|
22103
22122
|
const prepareMessagePayload = async (payload, event) => {
|
|
22104
22123
|
const markerIds = payload.messages.map(({ messageId }) => messageId);
|
|
22105
22124
|
if (markerIds.length > 0) {
|
|
22106
22125
|
// since the get markers method requires a channel cache to function with the reducer.
|
|
22107
22126
|
preUpdateMessageCache(payload);
|
|
22108
|
-
|
|
22109
|
-
|
|
22110
|
-
|
|
22111
|
-
catch (e) {
|
|
22112
|
-
// empty block (from the spec, allow marker fetch to fail without having to do anything)
|
|
22127
|
+
const markerIdsKey = markerIds.join('');
|
|
22128
|
+
if (currentDebounceMap[markerIdsKey]) {
|
|
22129
|
+
clearTimeout(currentDebounceMap[markerIdsKey]);
|
|
22113
22130
|
}
|
|
22131
|
+
currentDebounceMap[markerIdsKey] = setTimeout(() => {
|
|
22132
|
+
try {
|
|
22133
|
+
getMessageMarkers(markerIds);
|
|
22134
|
+
}
|
|
22135
|
+
catch (_error) {
|
|
22136
|
+
// do nothing
|
|
22137
|
+
}
|
|
22138
|
+
}, DEBOUNCE_TIME);
|
|
22114
22139
|
}
|
|
22115
22140
|
const { messageFeeds } = payload, restPayload = __rest(payload, ["messageFeeds"]);
|
|
22116
22141
|
// upsert messageFeeds to subchannel cache because messageFeeds from event payload not include messagePreviewId
|
|
@@ -22731,43 +22756,92 @@ const initializeMessagePreviewSetting = async () => {
|
|
|
22731
22756
|
|
|
22732
22757
|
/**
|
|
22733
22758
|
* ```js
|
|
22734
|
-
* import {
|
|
22735
|
-
* const
|
|
22736
|
-
* const postFeedSetting = feedSettings.post
|
|
22759
|
+
* import { getSocialSettings } from '@amityco/ts-sdk-react-native'
|
|
22760
|
+
* const socialSettings = await getSocialSettings()
|
|
22737
22761
|
* ```
|
|
22738
22762
|
*
|
|
22739
|
-
* Fetches a {@link Amity.
|
|
22763
|
+
* Fetches a {@link Amity.SocialSettings} object
|
|
22740
22764
|
*
|
|
22741
|
-
* @returns A Promise of {@link Amity.
|
|
22765
|
+
* @returns A Promise of {@link Amity.SocialSettings} object
|
|
22742
22766
|
*
|
|
22743
22767
|
* @category Client API
|
|
22744
22768
|
* @async
|
|
22745
22769
|
*/
|
|
22746
|
-
const
|
|
22770
|
+
const getSocialSettings = async () => {
|
|
22747
22771
|
const client = getActiveClient();
|
|
22748
|
-
const { data } = await client.http.get(`/api/v3/network-settings/
|
|
22749
|
-
return
|
|
22750
|
-
|
|
22751
|
-
|
|
22772
|
+
const { data } = await client.http.get(`/api/v3/network-settings/social`);
|
|
22773
|
+
return data.socialNetworkSetting;
|
|
22774
|
+
};
|
|
22775
|
+
|
|
22776
|
+
const checkUserPermission = (userId, permission) => {
|
|
22777
|
+
var _a;
|
|
22778
|
+
const user = (_a = pullFromCache(['users', 'get', userId])) === null || _a === void 0 ? void 0 : _a.data;
|
|
22779
|
+
if (!user)
|
|
22780
|
+
return false;
|
|
22781
|
+
return user.permissions.some(x => x === permission);
|
|
22782
|
+
};
|
|
22783
|
+
|
|
22784
|
+
const checkCommunityPermission = (userId, permission, communityId) => {
|
|
22785
|
+
var _a;
|
|
22786
|
+
if (!userId)
|
|
22787
|
+
return false;
|
|
22788
|
+
const member = (_a = pullFromCache([
|
|
22789
|
+
'communityUsers',
|
|
22790
|
+
'get',
|
|
22791
|
+
`${communityId}#${userId}`,
|
|
22792
|
+
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
22793
|
+
if (!member)
|
|
22794
|
+
return false;
|
|
22795
|
+
if (member.permissions.some(x => x === permission))
|
|
22796
|
+
return true;
|
|
22797
|
+
return checkUserPermission(userId, permission);
|
|
22798
|
+
};
|
|
22799
|
+
|
|
22800
|
+
const checkChannelPermission = (userId, permission, channelId) => {
|
|
22801
|
+
var _a;
|
|
22802
|
+
if (!userId)
|
|
22803
|
+
return false;
|
|
22804
|
+
const member = (_a = pullFromCache([
|
|
22805
|
+
'channelUsers',
|
|
22806
|
+
'get',
|
|
22807
|
+
`${channelId}#${userId}`,
|
|
22808
|
+
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
22809
|
+
if (!member)
|
|
22810
|
+
return false;
|
|
22811
|
+
if (member.permissions.some(x => x === permission))
|
|
22812
|
+
return true;
|
|
22813
|
+
return checkUserPermission(userId, permission);
|
|
22814
|
+
};
|
|
22815
|
+
|
|
22816
|
+
const hasPermission$1 = (permission) => {
|
|
22817
|
+
const { userId } = getActiveClient();
|
|
22818
|
+
return {
|
|
22819
|
+
currentUser: () => checkUserPermission(userId, permission),
|
|
22820
|
+
community: (communityId) => checkCommunityPermission(userId, permission, communityId),
|
|
22821
|
+
channel: (channelId) => checkChannelPermission(userId, permission, channelId),
|
|
22822
|
+
};
|
|
22752
22823
|
};
|
|
22753
22824
|
|
|
22754
22825
|
/**
|
|
22755
22826
|
* ```js
|
|
22756
|
-
* import {
|
|
22757
|
-
* const
|
|
22827
|
+
* import { getFeedSettings } from '@amityco/ts-sdk-react-native'
|
|
22828
|
+
* const feedSettings = await getFeedSettings()
|
|
22829
|
+
* const postFeedSetting = feedSettings.post
|
|
22758
22830
|
* ```
|
|
22759
22831
|
*
|
|
22760
|
-
* Fetches a {@link Amity.
|
|
22832
|
+
* Fetches a {@link Amity.FeedSettings} object
|
|
22761
22833
|
*
|
|
22762
|
-
* @returns A Promise of {@link Amity.
|
|
22834
|
+
* @returns A Promise of {@link Amity.FeedSettings} object
|
|
22763
22835
|
*
|
|
22764
22836
|
* @category Client API
|
|
22765
22837
|
* @async
|
|
22766
22838
|
*/
|
|
22767
|
-
const
|
|
22839
|
+
const getFeedSettings = async () => {
|
|
22768
22840
|
const client = getActiveClient();
|
|
22769
|
-
const { data } = await client.http.get(`/api/v3/network-settings/
|
|
22770
|
-
return data.
|
|
22841
|
+
const { data } = await client.http.get(`/api/v3/network-settings/feed-setting`);
|
|
22842
|
+
return Object.fromEntries(data.feedSettings.map(({ feedType, contentSettings }) => {
|
|
22843
|
+
return [feedType, contentSettings];
|
|
22844
|
+
}));
|
|
22771
22845
|
};
|
|
22772
22846
|
|
|
22773
22847
|
/*
|
|
@@ -23029,6 +23103,11 @@ const logout = async () => {
|
|
|
23029
23103
|
client.userId = undefined;
|
|
23030
23104
|
client.token = undefined;
|
|
23031
23105
|
client.http.defaults.headers.common.Authorization = '';
|
|
23106
|
+
client.http.defaults.metadata = {
|
|
23107
|
+
tokenExpiry: '',
|
|
23108
|
+
isGlobalBanned: false,
|
|
23109
|
+
isUserDeleted: false,
|
|
23110
|
+
};
|
|
23032
23111
|
client.ws.io.opts.query = { token: '' };
|
|
23033
23112
|
/*
|
|
23034
23113
|
* Cache should be usable if tokenExpired
|
|
@@ -23213,7 +23292,7 @@ async function runMqtt() {
|
|
|
23213
23292
|
* @async
|
|
23214
23293
|
*/
|
|
23215
23294
|
const login = async (params, sessionHandler, config) => {
|
|
23216
|
-
var _a, _b
|
|
23295
|
+
var _a, _b;
|
|
23217
23296
|
const client = getActiveClient();
|
|
23218
23297
|
let unsubWatcher;
|
|
23219
23298
|
client.log('client/api/connectClient', Object.assign({ apiKey: client.apiKey, sessionState: client.sessionState }, params));
|
|
@@ -23225,25 +23304,35 @@ const login = async (params, sessionHandler, config) => {
|
|
|
23225
23304
|
subscriptions = [];
|
|
23226
23305
|
}
|
|
23227
23306
|
// default values
|
|
23228
|
-
|
|
23307
|
+
const defaultDeviceId = await getDeviceId();
|
|
23229
23308
|
try {
|
|
23230
|
-
|
|
23231
|
-
|
|
23232
|
-
|
|
23309
|
+
const { users } = await setClientToken(Object.assign(Object.assign({}, params), { displayName: (params === null || params === void 0 ? void 0 : params.displayName) || params.userId, deviceId: (params === null || params === void 0 ? void 0 : params.deviceId) || defaultDeviceId }));
|
|
23310
|
+
const user = users.find(u => u.userId === params.userId);
|
|
23311
|
+
if (user == null) {
|
|
23312
|
+
throw new ASCError(`${params.userId} has not been founded`, 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
23313
|
+
}
|
|
23314
|
+
if (user.isDeleted) {
|
|
23315
|
+
terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
|
|
23316
|
+
return false;
|
|
23317
|
+
}
|
|
23318
|
+
if (user.isGlobalBanned) {
|
|
23319
|
+
terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
|
|
23320
|
+
return false;
|
|
23321
|
+
}
|
|
23233
23322
|
// FIXME: events are duplicated if connectClient is called few times without disconnectClient
|
|
23234
23323
|
// wire websocket events to our event emitter
|
|
23235
23324
|
proxyWebsocketEvents(client.ws, client.emitter);
|
|
23236
23325
|
client.ws.once('connect', () => {
|
|
23237
23326
|
client.ws.open();
|
|
23238
23327
|
});
|
|
23239
|
-
client.userId =
|
|
23328
|
+
client.userId = user.userId;
|
|
23240
23329
|
client.sessionHandler = sessionHandler;
|
|
23241
23330
|
/*
|
|
23242
23331
|
* Cannot push to subscriptions as watcher needs to continue working even if
|
|
23243
23332
|
* token expires
|
|
23244
23333
|
*/
|
|
23245
|
-
unsubWatcher = client.accessTokenExpiryWatcher((
|
|
23246
|
-
setActiveUser(
|
|
23334
|
+
unsubWatcher = client.accessTokenExpiryWatcher((_a = client.token) === null || _a === void 0 ? void 0 : _a.expiresAt, (_b = client.token) === null || _b === void 0 ? void 0 : _b.issuedAt, sessionHandler);
|
|
23335
|
+
setActiveUser(user);
|
|
23247
23336
|
}
|
|
23248
23337
|
catch (error) {
|
|
23249
23338
|
/*
|
|
@@ -23472,6 +23561,7 @@ const createClient = (apiKey, apiRegion = API_REGIONS.SG, { debugSession = DEFAU
|
|
|
23472
23561
|
sessionState,
|
|
23473
23562
|
accessTokenExpiryWatcher,
|
|
23474
23563
|
sessionHandler,
|
|
23564
|
+
hasPermission: hasPermission$1,
|
|
23475
23565
|
getFeedSettings,
|
|
23476
23566
|
getSocialSettings,
|
|
23477
23567
|
getMessagePreviewSetting,
|
|
@@ -23566,7 +23656,9 @@ const markerSync = async (deviceLastSyncAt) => {
|
|
|
23566
23656
|
const onChannelMarkerFetched = (callback) => {
|
|
23567
23657
|
const client = getActiveClient();
|
|
23568
23658
|
const filter = (payload) => {
|
|
23569
|
-
|
|
23659
|
+
payload.userEntityMarkers.forEach(marker => {
|
|
23660
|
+
callback(marker);
|
|
23661
|
+
});
|
|
23570
23662
|
};
|
|
23571
23663
|
return createEventSubscriber(client, 'channelMarker/onChannelMarkerFetched', 'local.channelMarker.fetched', filter);
|
|
23572
23664
|
};
|
|
@@ -23680,6 +23772,13 @@ const onFeedMarkerUpdated = (callback) => {
|
|
|
23680
23772
|
* @category UserMarker Events
|
|
23681
23773
|
*/
|
|
23682
23774
|
const onUserMarkerFetched = (callback) => {
|
|
23775
|
+
const client = getActiveClient();
|
|
23776
|
+
const filter = (payload) => {
|
|
23777
|
+
callback(payload.userMarkers);
|
|
23778
|
+
};
|
|
23779
|
+
return createEventSubscriber(client, 'userMarker/onUserMarkerFetched', 'local.userMarker.fetched', filter);
|
|
23780
|
+
};
|
|
23781
|
+
const onUserMarkerFetchedLegacy = (callback) => {
|
|
23683
23782
|
const client = getActiveClient();
|
|
23684
23783
|
const filter = (payload) => {
|
|
23685
23784
|
callback(payload.userMarkers[0]);
|
|
@@ -23935,7 +24034,10 @@ const getTotalUnreadCount = (callback) => {
|
|
|
23935
24034
|
if (!userId)
|
|
23936
24035
|
throw new ASCError('The _id has not been defined in ActiveUser', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
23937
24036
|
const callbackDataSelector = (data) => { var _a; return (_a = data === null || data === void 0 ? void 0 : data.unreadCount) !== null && _a !== void 0 ? _a : 0; };
|
|
23938
|
-
return liveObject(userId, callback, 'userId',
|
|
24037
|
+
return liveObject(userId, callback, 'userId', async () => {
|
|
24038
|
+
const { data: userMarker, cachedAt } = await getUserMarker();
|
|
24039
|
+
return { data: userMarker, cachedAt };
|
|
24040
|
+
}, [onUserMarkerFetchedLegacy], {
|
|
23939
24041
|
callbackDataSelector,
|
|
23940
24042
|
});
|
|
23941
24043
|
};
|
|
@@ -23961,16 +24063,77 @@ const getUserUnread = (callback) => {
|
|
|
23961
24063
|
const { _id: userId } = getActiveUser();
|
|
23962
24064
|
if (!userId)
|
|
23963
24065
|
throw new ASCError('The _id has not been defined in ActiveUser', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
23964
|
-
const
|
|
24066
|
+
const { log, cache } = getActiveClient();
|
|
24067
|
+
if (!cache) {
|
|
24068
|
+
console.log('For using Live Object feature you need to enable Cache!');
|
|
24069
|
+
}
|
|
24070
|
+
const timestamp = Date.now();
|
|
24071
|
+
log(`liveUserUnread(tmpid: ${timestamp}) > listen`);
|
|
24072
|
+
const disposers = [];
|
|
24073
|
+
let isUnsyncedModel = false; // for messages
|
|
24074
|
+
const dispatcher = (data) => {
|
|
24075
|
+
const userUnread = data.data;
|
|
24076
|
+
callback({
|
|
24077
|
+
data: {
|
|
24078
|
+
hasMentioned: userUnread.hasMentioned,
|
|
24079
|
+
unreadCount: userUnread.unreadCount,
|
|
24080
|
+
},
|
|
24081
|
+
loading: data.loading,
|
|
24082
|
+
error: data.error,
|
|
24083
|
+
});
|
|
24084
|
+
};
|
|
24085
|
+
const realtimeRouter = (userMarkers) => {
|
|
23965
24086
|
var _a;
|
|
23966
|
-
|
|
23967
|
-
|
|
23968
|
-
|
|
23969
|
-
|
|
24087
|
+
const filterUserMarkers = userMarkers.filter(userMarker => userId === userMarker.userId);
|
|
24088
|
+
const latestUserMarker = filterUserMarkers.reduce((currentMaxUserMarker, userMarker) => {
|
|
24089
|
+
if (currentMaxUserMarker == null ||
|
|
24090
|
+
new Date(userMarker.lastSyncAt).getTime() >
|
|
24091
|
+
new Date(currentMaxUserMarker.lastSyncAt).getTime()) {
|
|
24092
|
+
return userMarker;
|
|
24093
|
+
}
|
|
24094
|
+
return currentMaxUserMarker;
|
|
24095
|
+
}, null);
|
|
24096
|
+
dispatcher({
|
|
24097
|
+
loading: false,
|
|
24098
|
+
data: {
|
|
24099
|
+
unreadCount: (_a = latestUserMarker === null || latestUserMarker === void 0 ? void 0 : latestUserMarker.unreadCount) !== null && _a !== void 0 ? _a : 0,
|
|
24100
|
+
hasMentioned: filterUserMarkers.some(userMarker => !!userMarker.hasMentioned),
|
|
24101
|
+
},
|
|
24102
|
+
});
|
|
24103
|
+
};
|
|
24104
|
+
function isAmityUserMarkerData(data) {
|
|
24105
|
+
if (data == null)
|
|
24106
|
+
return false;
|
|
24107
|
+
return (data === null || data === void 0 ? void 0 : data.data) != null;
|
|
24108
|
+
}
|
|
24109
|
+
const onFetch = () => {
|
|
24110
|
+
const query = createQuery(getUserMarker);
|
|
24111
|
+
runQuery(query, ({ error, data, loading, origin, cachedAt }) => {
|
|
24112
|
+
if (!isAmityUserMarkerData(data))
|
|
24113
|
+
return;
|
|
24114
|
+
if (cachedAt === UNSYNCED_OBJECT_CACHED_AT_VALUE) {
|
|
24115
|
+
dispatcher({
|
|
24116
|
+
data,
|
|
24117
|
+
origin,
|
|
24118
|
+
loading: false,
|
|
24119
|
+
error: new ASCApiError(UNSYNCED_OBJECT_CACHED_AT_MESSAGE, 800800 /* Amity.ClientError.DISALOOW_UNSYNCED_OBJECT */, "error" /* Amity.ErrorLevel.ERROR */),
|
|
24120
|
+
});
|
|
24121
|
+
isUnsyncedModel = true;
|
|
24122
|
+
disposers.forEach(fn => fn());
|
|
24123
|
+
}
|
|
24124
|
+
else if (!isUnsyncedModel) {
|
|
24125
|
+
dispatcher({ loading, data, origin, error });
|
|
24126
|
+
}
|
|
24127
|
+
if (error) {
|
|
24128
|
+
disposers.forEach(fn => fn());
|
|
24129
|
+
}
|
|
24130
|
+
});
|
|
24131
|
+
};
|
|
24132
|
+
disposers.push(onUserMarkerFetched(userMarkers => realtimeRouter(userMarkers)));
|
|
24133
|
+
onFetch();
|
|
24134
|
+
return () => {
|
|
24135
|
+
disposers.forEach(fn => fn());
|
|
23970
24136
|
};
|
|
23971
|
-
return liveObject(userId, callback, 'userId', getUserMarker, [onUserMarkerFetched], {
|
|
23972
|
-
callbackDataSelector,
|
|
23973
|
-
});
|
|
23974
24137
|
};
|
|
23975
24138
|
|
|
23976
24139
|
/**
|
|
@@ -24281,21 +24444,30 @@ const onUserMarkerSync = (callback) => {
|
|
|
24281
24444
|
*
|
|
24282
24445
|
* @category Message Events
|
|
24283
24446
|
*/
|
|
24284
|
-
const
|
|
24447
|
+
const onMessageCreatedMqtt = (callback) => {
|
|
24285
24448
|
const client = getActiveClient();
|
|
24286
24449
|
const filter = async (rawPayload) => {
|
|
24287
24450
|
const payload = await prepareMessagePayload(rawPayload);
|
|
24288
|
-
const message = payload.messages[0];
|
|
24289
24451
|
// Update in cache
|
|
24290
24452
|
ingestInCache(payload);
|
|
24291
|
-
|
|
24453
|
+
payload.messages.forEach(message => {
|
|
24454
|
+
callback(message);
|
|
24455
|
+
});
|
|
24292
24456
|
};
|
|
24293
24457
|
const disposers = [
|
|
24294
24458
|
createEventSubscriber(client, 'message/onMessageCreated', 'message.created', filter),
|
|
24295
24459
|
];
|
|
24296
|
-
|
|
24297
|
-
|
|
24298
|
-
}
|
|
24460
|
+
return () => {
|
|
24461
|
+
disposers.forEach(fn => fn());
|
|
24462
|
+
};
|
|
24463
|
+
};
|
|
24464
|
+
const onMessageCreatedLocal = (callback) => {
|
|
24465
|
+
const client = getActiveClient();
|
|
24466
|
+
const disposers = [
|
|
24467
|
+
createEventSubscriber(client, 'message/onMessageCreated', 'local.message.created', payload => payload.messages.forEach(message => {
|
|
24468
|
+
callback(message);
|
|
24469
|
+
})),
|
|
24470
|
+
];
|
|
24299
24471
|
return () => {
|
|
24300
24472
|
disposers.forEach(fn => fn());
|
|
24301
24473
|
};
|
|
@@ -24609,18 +24781,22 @@ let isWaitingForResponse = false;
|
|
|
24609
24781
|
let deviceLastSyncAt = null;
|
|
24610
24782
|
const getDeviceLastSyncAt = () => {
|
|
24611
24783
|
if (deviceLastSyncAt == null) {
|
|
24612
|
-
return new Date()
|
|
24784
|
+
return new Date();
|
|
24613
24785
|
}
|
|
24614
24786
|
return deviceLastSyncAt;
|
|
24615
24787
|
};
|
|
24616
24788
|
const saveDeviceLastSyncAt = (lastSyncAt) => {
|
|
24617
|
-
if (
|
|
24789
|
+
if (lastSyncAt == null)
|
|
24790
|
+
return;
|
|
24791
|
+
if (!deviceLastSyncAt || lastSyncAt.getTime() > deviceLastSyncAt.getTime()) {
|
|
24618
24792
|
deviceLastSyncAt = lastSyncAt;
|
|
24619
24793
|
}
|
|
24620
24794
|
};
|
|
24621
24795
|
const fetchDeviceLastSyncAt = async () => {
|
|
24622
24796
|
const { data: userMarker } = await getUserMarker();
|
|
24623
|
-
|
|
24797
|
+
if (userMarker == null)
|
|
24798
|
+
return;
|
|
24799
|
+
saveDeviceLastSyncAt(new Date(userMarker.lastSyncAt));
|
|
24624
24800
|
};
|
|
24625
24801
|
/**
|
|
24626
24802
|
* list of conditions that make timer still trigger the syncing process.
|
|
@@ -24658,18 +24834,33 @@ const markerSyncTrigger = async () => {
|
|
|
24658
24834
|
// no event that require to call marker sync API
|
|
24659
24835
|
return;
|
|
24660
24836
|
}
|
|
24661
|
-
|
|
24662
|
-
|
|
24663
|
-
|
|
24664
|
-
|
|
24665
|
-
|
|
24666
|
-
|
|
24667
|
-
|
|
24668
|
-
|
|
24669
|
-
|
|
24670
|
-
|
|
24671
|
-
|
|
24672
|
-
|
|
24837
|
+
try {
|
|
24838
|
+
isWaitingForResponse = true;
|
|
24839
|
+
// any past events are considered processed here.
|
|
24840
|
+
// however during waiting for the response, RTE could add the new message event;
|
|
24841
|
+
// which will make the engine trigger another call next round.
|
|
24842
|
+
events = [];
|
|
24843
|
+
const response = await markerSync(getDeviceLastSyncAt().toISOString());
|
|
24844
|
+
const latestLastSyncAt = response.data.userMarkers.reduce((maxLastSyncAt, userMarker) => {
|
|
24845
|
+
if (maxLastSyncAt == null ||
|
|
24846
|
+
maxLastSyncAt.getTime() < new Date(userMarker.lastSyncAt).getTime()) {
|
|
24847
|
+
return new Date(userMarker.lastSyncAt);
|
|
24848
|
+
}
|
|
24849
|
+
return maxLastSyncAt;
|
|
24850
|
+
}, null);
|
|
24851
|
+
saveDeviceLastSyncAt(latestLastSyncAt);
|
|
24852
|
+
if (response.hasMore) {
|
|
24853
|
+
events.push("has_more" /* Amity.MarkerSyncEvent.HAS_MORE */);
|
|
24854
|
+
}
|
|
24855
|
+
}
|
|
24856
|
+
catch (_a) {
|
|
24857
|
+
// prevent sync from stopping
|
|
24858
|
+
}
|
|
24859
|
+
finally {
|
|
24860
|
+
if (isWaitingForResponse) {
|
|
24861
|
+
isWaitingForResponse = false;
|
|
24862
|
+
}
|
|
24863
|
+
}
|
|
24673
24864
|
};
|
|
24674
24865
|
const registerEventListeners = () => {
|
|
24675
24866
|
if (disposers.length > 0) {
|
|
@@ -24683,14 +24874,11 @@ const registerEventListeners = () => {
|
|
|
24683
24874
|
disposers.push(onOnline(() => {
|
|
24684
24875
|
// should add RESUME to the event to trigger marker syncing again
|
|
24685
24876
|
events.push("resume" /* Amity.MarkerSyncEvent.RESUME */);
|
|
24686
|
-
}),
|
|
24877
|
+
}), onMessageCreatedMqtt(message => {
|
|
24687
24878
|
// only conversation, community and broadcast types can sync
|
|
24688
24879
|
if (isUnreadCountSupport(message))
|
|
24689
24880
|
events.push("new message" /* Amity.MarkerSyncEvent.NEW_MESSAGE */);
|
|
24690
|
-
},
|
|
24691
|
-
// only trigger sync from remote events to prevent an unread count equal `-1`
|
|
24692
|
-
// when an optimistic message creation is performed.
|
|
24693
|
-
false), onChannelCreated(() => events.push("subchannel is created" /* Amity.MarkerSyncEvent.CHANNEL_CREATED */)), onChannelDeleted(() => events.push("subchannel is deleted" /* Amity.MarkerSyncEvent.CHANNEL_DELETED */)), onChannelJoined(() => events.push("subchannel is joined" /* Amity.MarkerSyncEvent.CHANNEL_JOINED */)), onChannelLeft(() => events.push("subchannel is left" /* Amity.MarkerSyncEvent.CHANNEL_LEFT */)), onSubChannelCreated(() => events.push("subchannel is created" /* Amity.MarkerSyncEvent.SUB_CHANNEL_CREATED */)), onSubChannelDeleted(() =>
|
|
24881
|
+
}), onChannelCreated(() => events.push("subchannel is created" /* Amity.MarkerSyncEvent.CHANNEL_CREATED */)), onChannelDeleted(() => events.push("subchannel is deleted" /* Amity.MarkerSyncEvent.CHANNEL_DELETED */)), onChannelJoined(() => events.push("subchannel is joined" /* Amity.MarkerSyncEvent.CHANNEL_JOINED */)), onChannelLeft(() => events.push("subchannel is left" /* Amity.MarkerSyncEvent.CHANNEL_LEFT */)), onSubChannelCreated(() => events.push("subchannel is created" /* Amity.MarkerSyncEvent.SUB_CHANNEL_CREATED */)), onSubChannelDeleted(() =>
|
|
24694
24882
|
/*
|
|
24695
24883
|
workaround: when receiving the event for sub-channel deletion,
|
|
24696
24884
|
before triggering marker update, the SDK will have to add a 2-second delay.
|
|
@@ -29231,7 +29419,26 @@ const getChannel = (channelId, callback) => {
|
|
|
29231
29419
|
});
|
|
29232
29420
|
callback(message);
|
|
29233
29421
|
};
|
|
29234
|
-
return
|
|
29422
|
+
return onMessageCreatedMqtt(updateMessagePreview);
|
|
29423
|
+
}, 'channelId', 'channel'),
|
|
29424
|
+
convertEventPayload((callback) => {
|
|
29425
|
+
const updateMessagePreview = async (message) => {
|
|
29426
|
+
var _a;
|
|
29427
|
+
const messagePreviewSetting = await client.getMessagePreviewSetting(false);
|
|
29428
|
+
if (messagePreviewSetting === "no-message-preview" /* Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW */)
|
|
29429
|
+
return;
|
|
29430
|
+
await handleMessageCreated(message);
|
|
29431
|
+
if (message.channelId !== channelId)
|
|
29432
|
+
return;
|
|
29433
|
+
const channel = (_a = pullFromCache(['channel', 'get', channelId])) === null || _a === void 0 ? void 0 : _a.data;
|
|
29434
|
+
if (!channel)
|
|
29435
|
+
return;
|
|
29436
|
+
updateChannelCache(channel, {
|
|
29437
|
+
messagePreviewId: message.messageId,
|
|
29438
|
+
});
|
|
29439
|
+
callback(message);
|
|
29440
|
+
};
|
|
29441
|
+
return onMessageCreatedLocal(updateMessagePreview);
|
|
29235
29442
|
}, 'channelId', 'channel'),
|
|
29236
29443
|
convertEventPayload((callback) => {
|
|
29237
29444
|
const updateMessagePreview = async (message) => {
|
|
@@ -29670,7 +29877,27 @@ class ChannelLiveCollectionController extends LiveCollectionController {
|
|
|
29670
29877
|
{
|
|
29671
29878
|
// TODO: merge this code to another onMessageCreated in this file
|
|
29672
29879
|
fn: convertEventPayload((callback) => {
|
|
29673
|
-
return
|
|
29880
|
+
return onMessageCreatedMqtt(message => {
|
|
29881
|
+
var _a;
|
|
29882
|
+
const cacheData = (_a = pullFromCache([
|
|
29883
|
+
'channel',
|
|
29884
|
+
'get',
|
|
29885
|
+
message.channelId,
|
|
29886
|
+
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
29887
|
+
if (!cacheData)
|
|
29888
|
+
return;
|
|
29889
|
+
updateChannelCache(cacheData, {
|
|
29890
|
+
lastActivity: message.createdAt,
|
|
29891
|
+
});
|
|
29892
|
+
callback(message);
|
|
29893
|
+
});
|
|
29894
|
+
}, 'messageId', 'channel'),
|
|
29895
|
+
action: 'onUpdate',
|
|
29896
|
+
},
|
|
29897
|
+
{
|
|
29898
|
+
// TODO: merge this code to another onMessageCreated in this file
|
|
29899
|
+
fn: convertEventPayload((callback) => {
|
|
29900
|
+
return onMessageCreatedLocal(message => {
|
|
29674
29901
|
var _a;
|
|
29675
29902
|
const cacheData = (_a = pullFromCache([
|
|
29676
29903
|
'channel',
|
|
@@ -29724,7 +29951,33 @@ class ChannelLiveCollectionController extends LiveCollectionController {
|
|
|
29724
29951
|
});
|
|
29725
29952
|
callback(message);
|
|
29726
29953
|
};
|
|
29727
|
-
return
|
|
29954
|
+
return onMessageCreatedMqtt(updateMessagePreview);
|
|
29955
|
+
}, 'channelId', 'channel'),
|
|
29956
|
+
action: 'onUpdate',
|
|
29957
|
+
},
|
|
29958
|
+
{
|
|
29959
|
+
fn: convertEventPayload((callback) => {
|
|
29960
|
+
const updateMessagePreview = async (message) => {
|
|
29961
|
+
var _a;
|
|
29962
|
+
const messagePreviewSetting = await ChannelLiveCollectionController.getMessagePreviewSetting();
|
|
29963
|
+
if (messagePreviewSetting === "no-message-preview" /* Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW */)
|
|
29964
|
+
return;
|
|
29965
|
+
handleMessageCreated(message);
|
|
29966
|
+
if (this.shouldAbort(message.channelId))
|
|
29967
|
+
return;
|
|
29968
|
+
const channel = (_a = pullFromCache([
|
|
29969
|
+
'channel',
|
|
29970
|
+
'get',
|
|
29971
|
+
message.channelId,
|
|
29972
|
+
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
29973
|
+
if (!channel)
|
|
29974
|
+
return;
|
|
29975
|
+
updateChannelCache(channel, {
|
|
29976
|
+
messagePreviewId: message.messageId,
|
|
29977
|
+
});
|
|
29978
|
+
callback(message);
|
|
29979
|
+
};
|
|
29980
|
+
return onMessageCreatedLocal(updateMessagePreview);
|
|
29728
29981
|
}, 'channelId', 'channel'),
|
|
29729
29982
|
action: 'onUpdate',
|
|
29730
29983
|
},
|
|
@@ -31226,7 +31479,7 @@ class MessageLiveCollectionController extends LiveCollectionController {
|
|
|
31226
31479
|
}
|
|
31227
31480
|
startSubscription() {
|
|
31228
31481
|
return this.queryStreamController.subscribeRTE([
|
|
31229
|
-
{ fn:
|
|
31482
|
+
{ fn: onMessageCreatedMqtt, action: 'onCreate' },
|
|
31230
31483
|
{ fn: onMessageDeleted, action: 'onDelete' },
|
|
31231
31484
|
{ fn: onMessageUpdated, action: 'onUpdate' },
|
|
31232
31485
|
{ fn: onMessageFlagged, action: 'onFlagged' },
|
|
@@ -31304,6 +31557,7 @@ class MessageLiveCollectionController extends LiveCollectionController {
|
|
|
31304
31557
|
}
|
|
31305
31558
|
}
|
|
31306
31559
|
|
|
31560
|
+
/* eslint-disable no-use-before-define */
|
|
31307
31561
|
/* begin_public_function
|
|
31308
31562
|
id: message.query
|
|
31309
31563
|
*/
|
|
@@ -31424,7 +31678,7 @@ const observeMessages = (subChannelId, callback) => {
|
|
|
31424
31678
|
(_b = callback.onEvent) === null || _b === void 0 ? void 0 : _b.call(callback, action, message);
|
|
31425
31679
|
(_c = callback[action]) === null || _c === void 0 ? void 0 : _c.call(callback, message);
|
|
31426
31680
|
};
|
|
31427
|
-
disposers.push(
|
|
31681
|
+
disposers.push(onMessageCreatedMqtt(data => router({ data, loading: false, origin: 'event' }, 'onCreate')), onMessageCreatedLocal(data => router({ data, loading: false, origin: 'event' }, 'onCreate')), onMessageUpdated(data => router({ data, loading: false, origin: 'event' }, 'onUpdate')), onMessageDeleted(data => router({ data, loading: false, origin: 'event' }, 'onDelete')), convertEventPayload(onMessageMarkerFetched, 'contentId', 'message')(data => router({ data, loading: false, origin: 'event' }, 'onCreate')), convertEventPayload(onMessageMarked, 'contentId', 'message')(data => router({ data, loading: false, origin: 'event' }, 'onCreate')));
|
|
31428
31682
|
return () => {
|
|
31429
31683
|
log(`observeMessages(tmpid: ${timestamp}) > dispose`);
|
|
31430
31684
|
disposers.forEach(fn => fn());
|
|
@@ -31445,7 +31699,8 @@ var index$c = /*#__PURE__*/Object.freeze({
|
|
|
31445
31699
|
flagMessage: flagMessage,
|
|
31446
31700
|
unflagMessage: unflagMessage,
|
|
31447
31701
|
isMessageFlaggedByMe: isMessageFlaggedByMe,
|
|
31448
|
-
|
|
31702
|
+
onMessageCreatedMqtt: onMessageCreatedMqtt,
|
|
31703
|
+
onMessageCreatedLocal: onMessageCreatedLocal,
|
|
31449
31704
|
onMessageUpdated: onMessageUpdated,
|
|
31450
31705
|
onMessageDeleted: onMessageDeleted,
|
|
31451
31706
|
onMessageFlagged: onMessageFlagged,
|
|
@@ -31713,7 +31968,30 @@ const getSubChannel = (subChannelId, callback) => {
|
|
|
31713
31968
|
});
|
|
31714
31969
|
callback(message);
|
|
31715
31970
|
};
|
|
31716
|
-
return
|
|
31971
|
+
return onMessageCreatedMqtt(updateMessagePreview);
|
|
31972
|
+
}, 'subChannelId', 'subChannel'),
|
|
31973
|
+
convertEventPayload((callback) => {
|
|
31974
|
+
const updateMessagePreview = async (message) => {
|
|
31975
|
+
var _a;
|
|
31976
|
+
const messagePreviewSetting = await client.getMessagePreviewSetting(false);
|
|
31977
|
+
if (messagePreviewSetting === "no-message-preview" /* Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW */)
|
|
31978
|
+
return;
|
|
31979
|
+
await handleMessageCreated(message);
|
|
31980
|
+
if (message.subChannelId !== subChannelId)
|
|
31981
|
+
return;
|
|
31982
|
+
const subChannel = (_a = pullFromCache([
|
|
31983
|
+
'subChannel',
|
|
31984
|
+
'get',
|
|
31985
|
+
subChannelId,
|
|
31986
|
+
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
31987
|
+
if (!subChannel)
|
|
31988
|
+
return;
|
|
31989
|
+
updateSubChannelCache(message.subChannelId, subChannel, {
|
|
31990
|
+
messagePreviewId: message.messageId,
|
|
31991
|
+
});
|
|
31992
|
+
callback(message);
|
|
31993
|
+
};
|
|
31994
|
+
return onMessageCreatedLocal(updateMessagePreview);
|
|
31717
31995
|
}, 'subChannelId', 'subChannel'),
|
|
31718
31996
|
convertEventPayload((callback) => {
|
|
31719
31997
|
const updateMessagePreview = async (message) => {
|
|
@@ -31878,7 +32156,42 @@ class SubChannelLiveCollectionController extends LiveCollectionController {
|
|
|
31878
32156
|
},
|
|
31879
32157
|
{
|
|
31880
32158
|
fn: callback => {
|
|
31881
|
-
return
|
|
32159
|
+
return onMessageCreatedMqtt(async (message) => {
|
|
32160
|
+
var _a, _b;
|
|
32161
|
+
const cacheData = pullFromCache([
|
|
32162
|
+
'subChannel',
|
|
32163
|
+
'get',
|
|
32164
|
+
message.subChannelId,
|
|
32165
|
+
]);
|
|
32166
|
+
if (!cacheData)
|
|
32167
|
+
return;
|
|
32168
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
32169
|
+
if (!collection || !collection.data.includes(message.subChannelId))
|
|
32170
|
+
return;
|
|
32171
|
+
const client = getActiveClient();
|
|
32172
|
+
const messagePreviewSetting = await client.getMessagePreviewSetting(false);
|
|
32173
|
+
if (messagePreviewSetting === "no-message-preview" /* Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW */)
|
|
32174
|
+
return;
|
|
32175
|
+
handleMessageCreated(message);
|
|
32176
|
+
const subChannelCache = (_b = pullFromCache([
|
|
32177
|
+
'subChannel',
|
|
32178
|
+
'get',
|
|
32179
|
+
message.subChannelId,
|
|
32180
|
+
])) === null || _b === void 0 ? void 0 : _b.data;
|
|
32181
|
+
if (!subChannelCache)
|
|
32182
|
+
return;
|
|
32183
|
+
updateSubChannelCache(message.subChannelId, subChannelCache, {
|
|
32184
|
+
lastActivity: message.createdAt,
|
|
32185
|
+
messagePreviewId: message.messageId,
|
|
32186
|
+
});
|
|
32187
|
+
callback(Object.assign(Object.assign({}, cacheData.data), { messagePreviewId: message.messageId, subChannelId: message.subChannelId, lastActivity: message.createdAt }));
|
|
32188
|
+
});
|
|
32189
|
+
},
|
|
32190
|
+
action: 'onUpdate',
|
|
32191
|
+
},
|
|
32192
|
+
{
|
|
32193
|
+
fn: callback => {
|
|
32194
|
+
return onMessageCreatedLocal(async (message) => {
|
|
31882
32195
|
var _a, _b;
|
|
31883
32196
|
const cacheData = pullFromCache([
|
|
31884
32197
|
'subChannel',
|
|
@@ -32543,6 +32856,10 @@ const onCommunityUpdated = (callback) => createCommunityEventSubscriber('communi
|
|
|
32543
32856
|
*/
|
|
32544
32857
|
const onCommunityDeleted = (callback) => createCommunityEventSubscriber('community.deleted', callback);
|
|
32545
32858
|
|
|
32859
|
+
function isNonNullable(value) {
|
|
32860
|
+
return value != null;
|
|
32861
|
+
}
|
|
32862
|
+
|
|
32546
32863
|
function hasPermission(member, payload, permission) {
|
|
32547
32864
|
if (member.permissions.some(x => x === permission)) {
|
|
32548
32865
|
return true;
|
|
@@ -32553,21 +32870,21 @@ function hasPermission(member, payload, permission) {
|
|
|
32553
32870
|
}
|
|
32554
32871
|
function getEventRelatedMember(event, payload) {
|
|
32555
32872
|
if (event === 'community.joined' || event === 'community.left') {
|
|
32556
|
-
return payload.communityUsers
|
|
32873
|
+
return payload.communityUsers;
|
|
32557
32874
|
}
|
|
32558
32875
|
// NOTE: backend returns the one who took the action and the one on whom
|
|
32559
32876
|
// the action was taken. We need the 2nd one
|
|
32560
32877
|
if (event === 'community.userRemoved') {
|
|
32561
|
-
return payload.communityUsers.filter(x => x.communityMembership === 'none')
|
|
32878
|
+
return payload.communityUsers.filter(x => x.communityMembership === 'none');
|
|
32562
32879
|
}
|
|
32563
32880
|
if (event === 'community.userBanned') {
|
|
32564
|
-
return payload.communityUsers.filter(x => x.communityMembership === 'banned')
|
|
32881
|
+
return payload.communityUsers.filter(x => x.communityMembership === 'banned');
|
|
32565
32882
|
}
|
|
32566
32883
|
// NOTE: it might be that in certain edge cases permission check won't be enough
|
|
32567
32884
|
if (event === 'community.userUnbanned') {
|
|
32568
|
-
return payload.communityUsers.filter(x => !hasPermission(x, payload, 'BAN_COMMUNITY_USER'))
|
|
32885
|
+
return payload.communityUsers.filter(x => !hasPermission(x, payload, 'BAN_COMMUNITY_USER'));
|
|
32569
32886
|
}
|
|
32570
|
-
return payload.communityUsers.filter(x => !hasPermission(x, payload, 'ADD_COMMUNITY_USER'))
|
|
32887
|
+
return payload.communityUsers.filter(x => !hasPermission(x, payload, 'ADD_COMMUNITY_USER'));
|
|
32571
32888
|
}
|
|
32572
32889
|
const createCommunityMemberEventSubscriber = (event, callback) => {
|
|
32573
32890
|
const client = getActiveClient();
|
|
@@ -32591,12 +32908,17 @@ const createCommunityMemberEventSubscriber = (event, callback) => {
|
|
|
32591
32908
|
'get',
|
|
32592
32909
|
preparedPayload.communities[0].communityId,
|
|
32593
32910
|
]);
|
|
32594
|
-
const
|
|
32595
|
-
|
|
32596
|
-
|
|
32597
|
-
|
|
32598
|
-
|
|
32599
|
-
|
|
32911
|
+
const members = getEventRelatedMember(event, preparedPayload)
|
|
32912
|
+
.map(member => {
|
|
32913
|
+
const memberCache = pullFromCache([
|
|
32914
|
+
'communityUsers',
|
|
32915
|
+
'get',
|
|
32916
|
+
getResolver('communityUsers')(member),
|
|
32917
|
+
]);
|
|
32918
|
+
return memberCache === null || memberCache === void 0 ? void 0 : memberCache.data;
|
|
32919
|
+
})
|
|
32920
|
+
.filter(isNonNullable);
|
|
32921
|
+
callback(community.data, members);
|
|
32600
32922
|
}
|
|
32601
32923
|
};
|
|
32602
32924
|
return createEventSubscriber(client, event, event, filter);
|
|
@@ -33641,19 +33963,25 @@ const getMembers = (params, callback, config) => {
|
|
|
33641
33963
|
error: data.error,
|
|
33642
33964
|
});
|
|
33643
33965
|
};
|
|
33644
|
-
const realtimeRouter = (_) => (_,
|
|
33966
|
+
const realtimeRouter = (_) => (_, communityMembers) => {
|
|
33645
33967
|
var _a;
|
|
33646
|
-
if (params.communityId !== communityMember.communityId) {
|
|
33647
|
-
return;
|
|
33648
|
-
}
|
|
33649
33968
|
const collection = (_a = pullFromCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
33650
|
-
if (!collection)
|
|
33969
|
+
if (!collection) {
|
|
33651
33970
|
return;
|
|
33652
|
-
|
|
33653
|
-
|
|
33654
|
-
|
|
33655
|
-
|
|
33656
|
-
|
|
33971
|
+
}
|
|
33972
|
+
const communityMemberCacheIds = communityMembers
|
|
33973
|
+
.map(communityMember => {
|
|
33974
|
+
if (params.communityId !== communityMember.communityId) {
|
|
33975
|
+
return;
|
|
33976
|
+
}
|
|
33977
|
+
const communityMemberCacheId = getResolver('communityUsers')({
|
|
33978
|
+
communityId: params.communityId,
|
|
33979
|
+
userId: communityMember.userId,
|
|
33980
|
+
});
|
|
33981
|
+
return communityMemberCacheId;
|
|
33982
|
+
})
|
|
33983
|
+
.filter(isNonNullable);
|
|
33984
|
+
collection.data = [...new Set([...communityMemberCacheIds, ...collection.data])];
|
|
33657
33985
|
pushToCache(cacheKey, collection);
|
|
33658
33986
|
pushToCache(cacheByCommunityIdKey, collection);
|
|
33659
33987
|
responder(collection, true);
|
|
@@ -36960,7 +37288,7 @@ const createStory = async (payload) => {
|
|
|
36960
37288
|
if (client.cache)
|
|
36961
37289
|
ingestInCache(convertedResponse);
|
|
36962
37290
|
pushToCache(["story-sync-state" /* STORY_KEY_CACHE.SYNC_STATE */, payload.targetId], "synced" /* Amity.SyncState.Synced */);
|
|
36963
|
-
fireEvent('story.created', convertedResponse);
|
|
37291
|
+
fireEvent('local.story.created', convertedResponse);
|
|
36964
37292
|
const cachedAt = client.cache && Date.now();
|
|
36965
37293
|
return {
|
|
36966
37294
|
data: convertedResponse.stories.length > 0 ? convertedResponse.stories[0] : undefined,
|
|
@@ -37005,7 +37333,7 @@ const createImageStory = async (targetType, targetId, formData, metadata = {}, i
|
|
|
37005
37333
|
pushToCache(["story-sync-state" /* STORY_KEY_CACHE.SYNC_STATE */, targetId], "syncing" /* Amity.SyncState.Syncing */);
|
|
37006
37334
|
// Fire optimistic event
|
|
37007
37335
|
createOptimisticEvent({ payload, formData }, optimisticData => {
|
|
37008
|
-
fireEvent('story.created', optimisticData);
|
|
37336
|
+
fireEvent('local.story.created', optimisticData);
|
|
37009
37337
|
});
|
|
37010
37338
|
try {
|
|
37011
37339
|
const { data } = await uploadImage(formData);
|
|
@@ -37016,7 +37344,7 @@ const createImageStory = async (targetType, targetId, formData, metadata = {}, i
|
|
|
37016
37344
|
payload = Object.assign(Object.assign({}, payload), { data: Object.assign(Object.assign({}, payload.data), { fileId }) });
|
|
37017
37345
|
// Fire optimistic event - update fileId
|
|
37018
37346
|
createOptimisticEvent({ payload, formData }, optimisticData => {
|
|
37019
|
-
fireEvent('story.created', optimisticData);
|
|
37347
|
+
fireEvent('local.story.created', optimisticData);
|
|
37020
37348
|
});
|
|
37021
37349
|
const result = await createStory(payload);
|
|
37022
37350
|
if (!result.data)
|
|
@@ -37027,7 +37355,7 @@ const createImageStory = async (targetType, targetId, formData, metadata = {}, i
|
|
|
37027
37355
|
pushToCache(["story-sync-state" /* STORY_KEY_CACHE.SYNC_STATE */, targetId], "error" /* Amity.SyncState.Error */);
|
|
37028
37356
|
// Fire optimistic event - failed to upload image
|
|
37029
37357
|
createOptimisticEvent({ payload: Object.assign(Object.assign({}, payload), { syncState: "error" /* Amity.SyncState.Error */ }), formData }, optimisticData => {
|
|
37030
|
-
fireEvent('story.error', optimisticData);
|
|
37358
|
+
fireEvent('local.story.error', optimisticData);
|
|
37031
37359
|
});
|
|
37032
37360
|
throw error;
|
|
37033
37361
|
}
|
|
@@ -37066,7 +37394,7 @@ const createVideoStory = async (targetType, targetId, formData, metadata = {}, i
|
|
|
37066
37394
|
pushToCache(["story-sync-state" /* STORY_KEY_CACHE.SYNC_STATE */, targetId], "syncing" /* Amity.SyncState.Syncing */);
|
|
37067
37395
|
// Fire optimistic event
|
|
37068
37396
|
createOptimisticEvent({ payload, formData, isVideo: true }, optimisticData => {
|
|
37069
|
-
fireEvent('story.created', optimisticData);
|
|
37397
|
+
fireEvent('local.story.created', optimisticData);
|
|
37070
37398
|
});
|
|
37071
37399
|
try {
|
|
37072
37400
|
const { data } = await uploadVideo(formData, ContentFeedType.STORY);
|
|
@@ -37077,7 +37405,7 @@ const createVideoStory = async (targetType, targetId, formData, metadata = {}, i
|
|
|
37077
37405
|
payload = Object.assign(Object.assign({}, payload), { data: Object.assign(Object.assign({}, payload.data), { fileId, videoFileId: { original: fileId } }) });
|
|
37078
37406
|
// Fire optimistic event - update fileId
|
|
37079
37407
|
createOptimisticEvent({ payload, formData, isVideo: true }, optimisticData => {
|
|
37080
|
-
fireEvent('story.created', optimisticData);
|
|
37408
|
+
fireEvent('local.story.created', optimisticData);
|
|
37081
37409
|
});
|
|
37082
37410
|
const result = await createStory(payload);
|
|
37083
37411
|
if (!result.data)
|
|
@@ -37088,7 +37416,7 @@ const createVideoStory = async (targetType, targetId, formData, metadata = {}, i
|
|
|
37088
37416
|
pushToCache(["story-sync-state" /* STORY_KEY_CACHE.SYNC_STATE */, targetId], "error" /* Amity.SyncState.Error */);
|
|
37089
37417
|
// Fire optimistic upload failed
|
|
37090
37418
|
createOptimisticEvent({ payload: Object.assign(Object.assign({}, payload), { syncState: "error" /* Amity.SyncState.Error */ }), formData, isVideo: true }, optimisticData => {
|
|
37091
|
-
fireEvent('story.error', optimisticData);
|
|
37419
|
+
fireEvent('local.story.error', optimisticData);
|
|
37092
37420
|
});
|
|
37093
37421
|
throw error;
|
|
37094
37422
|
}
|
|
@@ -37136,12 +37464,86 @@ const softDeleteStory = async (storyId) => {
|
|
|
37136
37464
|
};
|
|
37137
37465
|
|
|
37138
37466
|
const onStoryUpdated = (callback) => {
|
|
37467
|
+
const client = getActiveClient();
|
|
37468
|
+
const filter = async (payload) => {
|
|
37469
|
+
// Apply the necessary field for story payload
|
|
37470
|
+
const convertPayload = convertStoryRawToInternal(payload);
|
|
37471
|
+
ingestInCache(convertPayload);
|
|
37472
|
+
callback(convertPayload.stories);
|
|
37473
|
+
};
|
|
37474
|
+
const disposers = [createEventSubscriber(client, 'onStoryUpdated', 'story.updated', filter)];
|
|
37475
|
+
return () => {
|
|
37476
|
+
disposers.forEach(fn => fn());
|
|
37477
|
+
};
|
|
37478
|
+
};
|
|
37479
|
+
const onStoryUpdatedLocal = (callback) => {
|
|
37139
37480
|
const client = getActiveClient();
|
|
37140
37481
|
const filter = async (payload) => {
|
|
37141
37482
|
ingestInCache(payload);
|
|
37142
37483
|
callback(payload.stories);
|
|
37143
37484
|
};
|
|
37144
|
-
|
|
37485
|
+
const disposers = [
|
|
37486
|
+
createEventSubscriber(client, 'onStoryUpdated', 'local.story.updated', filter),
|
|
37487
|
+
];
|
|
37488
|
+
return () => {
|
|
37489
|
+
disposers.forEach(fn => fn());
|
|
37490
|
+
};
|
|
37491
|
+
};
|
|
37492
|
+
|
|
37493
|
+
const onStoryReactionAdded = (callback) => {
|
|
37494
|
+
const client = getActiveClient();
|
|
37495
|
+
const filter = async (payload) => {
|
|
37496
|
+
const convertPayload = convertStoryRawToInternal(payload);
|
|
37497
|
+
ingestInCache(convertPayload);
|
|
37498
|
+
callback(convertPayload.stories);
|
|
37499
|
+
};
|
|
37500
|
+
const disposers = [
|
|
37501
|
+
createEventSubscriber(client, 'onStoryReactionAdded', 'story.reactionAdded', filter),
|
|
37502
|
+
];
|
|
37503
|
+
return () => {
|
|
37504
|
+
disposers.forEach(fn => fn());
|
|
37505
|
+
};
|
|
37506
|
+
};
|
|
37507
|
+
const onStoryReactionAddedLocal = (callback) => {
|
|
37508
|
+
const client = getActiveClient();
|
|
37509
|
+
const filter = async (payload) => {
|
|
37510
|
+
ingestInCache(payload);
|
|
37511
|
+
callback(payload.stories);
|
|
37512
|
+
};
|
|
37513
|
+
const disposers = [
|
|
37514
|
+
createEventSubscriber(client, 'onStoryReactionAdded', 'local.story.reactionAdded', filter),
|
|
37515
|
+
];
|
|
37516
|
+
return () => {
|
|
37517
|
+
disposers.forEach(fn => fn());
|
|
37518
|
+
};
|
|
37519
|
+
};
|
|
37520
|
+
|
|
37521
|
+
const onStoryReactionRemoved = (callback) => {
|
|
37522
|
+
const client = getActiveClient();
|
|
37523
|
+
const filter = async (payload) => {
|
|
37524
|
+
const convertPayload = convertStoryRawToInternal(payload);
|
|
37525
|
+
ingestInCache(convertPayload);
|
|
37526
|
+
callback(convertPayload.stories);
|
|
37527
|
+
};
|
|
37528
|
+
const disposers = [
|
|
37529
|
+
createEventSubscriber(client, 'onStoryReactionRemoved', 'story.reactionRemoved', filter),
|
|
37530
|
+
];
|
|
37531
|
+
return () => {
|
|
37532
|
+
disposers.forEach(fn => fn());
|
|
37533
|
+
};
|
|
37534
|
+
};
|
|
37535
|
+
const onStoryReactionRemovedLocal = (callback) => {
|
|
37536
|
+
const client = getActiveClient();
|
|
37537
|
+
const filter = async (payload) => {
|
|
37538
|
+
ingestInCache(payload);
|
|
37539
|
+
callback(payload.stories);
|
|
37540
|
+
};
|
|
37541
|
+
const disposers = [
|
|
37542
|
+
createEventSubscriber(client, 'onStoryReactionRemoved', 'local.story.reactionRemoved', filter),
|
|
37543
|
+
];
|
|
37544
|
+
return () => {
|
|
37545
|
+
disposers.forEach(fn => fn());
|
|
37546
|
+
};
|
|
37145
37547
|
};
|
|
37146
37548
|
|
|
37147
37549
|
const updateLocalLastStoryExpires = (stories) => {
|
|
@@ -37191,21 +37593,54 @@ const getActiveStoriesByTarget$1 = async ({ targetType, targetId, options, }) =>
|
|
|
37191
37593
|
};
|
|
37192
37594
|
|
|
37193
37595
|
const onStoryCreated = (callback) => {
|
|
37596
|
+
const client = getActiveClient();
|
|
37597
|
+
const filter = async (payload) => {
|
|
37598
|
+
// Apply the necessary field for story payload
|
|
37599
|
+
const convertPayload = convertStoryRawToInternal(payload);
|
|
37600
|
+
ingestInCache(convertPayload);
|
|
37601
|
+
callback(convertPayload.stories);
|
|
37602
|
+
};
|
|
37603
|
+
const disposers = [createEventSubscriber(client, 'onStoryCreated', 'story.created', filter)];
|
|
37604
|
+
return () => {
|
|
37605
|
+
disposers.forEach(fn => fn());
|
|
37606
|
+
};
|
|
37607
|
+
};
|
|
37608
|
+
const onStoryCreatedLocal = (callback) => {
|
|
37194
37609
|
const client = getActiveClient();
|
|
37195
37610
|
const filter = async (payload) => {
|
|
37196
37611
|
ingestInCache(payload);
|
|
37197
37612
|
callback(payload.stories);
|
|
37198
37613
|
};
|
|
37199
|
-
|
|
37614
|
+
const disposers = [
|
|
37615
|
+
createEventSubscriber(client, 'onStoryCreated', 'local.story.created', filter),
|
|
37616
|
+
];
|
|
37617
|
+
return () => {
|
|
37618
|
+
disposers.forEach(fn => fn());
|
|
37619
|
+
};
|
|
37200
37620
|
};
|
|
37201
37621
|
|
|
37202
37622
|
const onStoryDeleted = (callback) => {
|
|
37623
|
+
const client = getActiveClient();
|
|
37624
|
+
const filter = async (payload) => {
|
|
37625
|
+
const convertPayload = convertStoryRawToInternal(payload);
|
|
37626
|
+
ingestInCache(convertPayload);
|
|
37627
|
+
callback(convertPayload.stories);
|
|
37628
|
+
};
|
|
37629
|
+
const disposer = [createEventSubscriber(client, 'onStoryDeleted', 'story.deleted', filter)];
|
|
37630
|
+
return () => {
|
|
37631
|
+
disposer.forEach(fn => fn());
|
|
37632
|
+
};
|
|
37633
|
+
};
|
|
37634
|
+
const onStoryDeletedLocal = (callback) => {
|
|
37203
37635
|
const client = getActiveClient();
|
|
37204
37636
|
const filter = async (payload) => {
|
|
37205
37637
|
ingestInCache(payload);
|
|
37206
37638
|
callback(payload.stories);
|
|
37207
37639
|
};
|
|
37208
|
-
|
|
37640
|
+
const disposer = [createEventSubscriber(client, 'onStoryDeleted', 'local.story.deleted', filter)];
|
|
37641
|
+
return () => {
|
|
37642
|
+
disposer.forEach(fn => fn());
|
|
37643
|
+
};
|
|
37209
37644
|
};
|
|
37210
37645
|
|
|
37211
37646
|
const onStoryError = (callback) => {
|
|
@@ -37214,7 +37649,7 @@ const onStoryError = (callback) => {
|
|
|
37214
37649
|
ingestInCache(payload);
|
|
37215
37650
|
callback(payload.stories);
|
|
37216
37651
|
};
|
|
37217
|
-
return createEventSubscriber(client, 'onStoryError', 'story.error', filter);
|
|
37652
|
+
return createEventSubscriber(client, 'onStoryError', 'local.story.error', filter);
|
|
37218
37653
|
};
|
|
37219
37654
|
|
|
37220
37655
|
const onStoryLocalDataUpdated = (callback) => {
|
|
@@ -37222,9 +37657,29 @@ const onStoryLocalDataUpdated = (callback) => {
|
|
|
37222
37657
|
const filter = (payload) => {
|
|
37223
37658
|
callback(payload);
|
|
37224
37659
|
};
|
|
37225
|
-
return createEventSubscriber(client, 'onStoryLocalDataUpdated', 'local.story.
|
|
37660
|
+
return createEventSubscriber(client, 'onStoryLocalDataUpdated', 'local.story.reload', filter);
|
|
37226
37661
|
};
|
|
37227
37662
|
|
|
37663
|
+
/**
|
|
37664
|
+
* ```js
|
|
37665
|
+
* import { StoryRepository } from '@amityco/js-sdk';
|
|
37666
|
+
* let storiesData;
|
|
37667
|
+
*
|
|
37668
|
+
* const unsubscribe = StoryRepository.getActiveStoriesByTarget({ targetId, targetType }, response => {
|
|
37669
|
+
* storiesData = response.data;
|
|
37670
|
+
* });
|
|
37671
|
+
*
|
|
37672
|
+
* unsubscribe();
|
|
37673
|
+
* ```
|
|
37674
|
+
*
|
|
37675
|
+
* Observe all mutations on a given {@link Amity.Story}
|
|
37676
|
+
*
|
|
37677
|
+
* @param params for querying stories from a community
|
|
37678
|
+
* @param callback the function to call when new data are available
|
|
37679
|
+
* @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the story
|
|
37680
|
+
*
|
|
37681
|
+
* @category SubChannel Live Object
|
|
37682
|
+
*/
|
|
37228
37683
|
const getActiveStoriesByTarget = (params, callback) => {
|
|
37229
37684
|
const { log, cache } = getActiveClient();
|
|
37230
37685
|
const disposers = [];
|
|
@@ -37340,7 +37795,7 @@ const getActiveStoriesByTarget = (params, callback) => {
|
|
|
37340
37795
|
});
|
|
37341
37796
|
};
|
|
37342
37797
|
onFetch(true);
|
|
37343
|
-
disposers.push(onStoryCreated(realtimeRouter()), onStoryUpdated(realtimeRouter()), onStoryDeleted(realtimeRouter()), onStoryError(realtimeRouter()), onStoryLocalDataUpdated(reloadData()), () => dropFromCache(cacheKey));
|
|
37798
|
+
disposers.push(onStoryCreated(realtimeRouter()), onStoryUpdated(realtimeRouter()), onStoryDeleted(realtimeRouter()), onStoryReactionAdded(realtimeRouter()), onStoryReactionRemoved(realtimeRouter()), onStoryError(realtimeRouter()), onStoryCreatedLocal(realtimeRouter()), onStoryUpdatedLocal(realtimeRouter()), onStoryDeletedLocal(realtimeRouter()), onStoryReactionAddedLocal(realtimeRouter()), onStoryReactionRemovedLocal(realtimeRouter()), onStoryLocalDataUpdated(reloadData()), () => dropFromCache(cacheKey));
|
|
37344
37799
|
return () => {
|
|
37345
37800
|
log(`getActiveStoriesByTarget(tmpid: ${timestamp}) > dispose`);
|
|
37346
37801
|
disposers.forEach(fn => fn());
|
|
@@ -37409,7 +37864,17 @@ const getStoryByStoryId = (storyId, callback) => {
|
|
|
37409
37864
|
return;
|
|
37410
37865
|
}
|
|
37411
37866
|
callback(Object.assign(Object.assign({}, data), { data: LinkedObject.story(data.data) }));
|
|
37412
|
-
}, 'storyId', getStoryByStoryId$1, [
|
|
37867
|
+
}, 'storyId', getStoryByStoryId$1, [
|
|
37868
|
+
getSingleItemFromArray(onStoryUpdated),
|
|
37869
|
+
getSingleItemFromArray(onStoryDeleted),
|
|
37870
|
+
getSingleItemFromArray(onStoryReactionAdded),
|
|
37871
|
+
getSingleItemFromArray(onStoryReactionRemoved),
|
|
37872
|
+
getSingleItemFromArray(onStoryError),
|
|
37873
|
+
getSingleItemFromArray(onStoryUpdatedLocal),
|
|
37874
|
+
getSingleItemFromArray(onStoryDeletedLocal),
|
|
37875
|
+
getSingleItemFromArray(onStoryReactionAddedLocal),
|
|
37876
|
+
getSingleItemFromArray(onStoryReactionRemovedLocal),
|
|
37877
|
+
]);
|
|
37413
37878
|
};
|
|
37414
37879
|
|
|
37415
37880
|
const getTargetsByTargetIds$1 = async (targets) => {
|
|
@@ -37502,6 +37967,157 @@ const getTargetsByTargetIds = (params, callback) => {
|
|
|
37502
37967
|
};
|
|
37503
37968
|
};
|
|
37504
37969
|
|
|
37970
|
+
class StoryQueryStreamController extends QueryStreamController {
|
|
37971
|
+
constructor(query, cacheKey, notifyChange, paginationController) {
|
|
37972
|
+
super(query, cacheKey);
|
|
37973
|
+
this.notifyChange = notifyChange;
|
|
37974
|
+
this.paginationController = paginationController;
|
|
37975
|
+
}
|
|
37976
|
+
// eslint-disable-next-line class-methods-use-this
|
|
37977
|
+
saveToMainDB(response) {
|
|
37978
|
+
const client = getActiveClient();
|
|
37979
|
+
const cachedAt = client.cache && Date.now();
|
|
37980
|
+
const convertedData = convertStoryRawToInternal(response);
|
|
37981
|
+
if (client.cache) {
|
|
37982
|
+
ingestInCache(convertedData, { cachedAt });
|
|
37983
|
+
// Update local last story expires
|
|
37984
|
+
updateLocalLastStoryExpires(convertedData.stories);
|
|
37985
|
+
// Map storyId to referenceId
|
|
37986
|
+
mappingStoryIdToReferenceId(convertedData.stories);
|
|
37987
|
+
}
|
|
37988
|
+
}
|
|
37989
|
+
// eslint-disable-next-line class-methods-use-this
|
|
37990
|
+
getStoryReferenceIds(story) {
|
|
37991
|
+
if (story === null || story === void 0 ? void 0 : story.referenceId) {
|
|
37992
|
+
return story.referenceId;
|
|
37993
|
+
}
|
|
37994
|
+
return story.storyId;
|
|
37995
|
+
}
|
|
37996
|
+
appendToQueryStream(response, direction, refresh = false) {
|
|
37997
|
+
var _a, _b;
|
|
37998
|
+
if (refresh) {
|
|
37999
|
+
pushToCache(this.cacheKey, {
|
|
38000
|
+
data: response.stories.map(this.getStoryReferenceIds),
|
|
38001
|
+
});
|
|
38002
|
+
}
|
|
38003
|
+
else {
|
|
38004
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
38005
|
+
const stories = (_b = collection === null || collection === void 0 ? void 0 : collection.data) !== null && _b !== void 0 ? _b : [];
|
|
38006
|
+
pushToCache(this.cacheKey, Object.assign(Object.assign({}, collection), { data: [...new Set([...stories, ...response.stories.map(this.getStoryReferenceIds)])] }));
|
|
38007
|
+
}
|
|
38008
|
+
}
|
|
38009
|
+
reactor(action) {
|
|
38010
|
+
return (payload) => {
|
|
38011
|
+
var _a;
|
|
38012
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
38013
|
+
if (!collection)
|
|
38014
|
+
return;
|
|
38015
|
+
const newReferenceIds = payload.map(({ referenceId }) => referenceId);
|
|
38016
|
+
collection.data = [...new Set([...newReferenceIds, ...collection.data])];
|
|
38017
|
+
pushToCache(this.cacheKey, collection);
|
|
38018
|
+
this.notifyChange({ origin: "event" /* Amity.LiveDataOrigin.EVENT */, loading: false });
|
|
38019
|
+
};
|
|
38020
|
+
}
|
|
38021
|
+
subscribeRTE(createSubscriber) {
|
|
38022
|
+
return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
|
|
38023
|
+
}
|
|
38024
|
+
}
|
|
38025
|
+
|
|
38026
|
+
/* eslint-disable no-use-before-define */
|
|
38027
|
+
class StoryPaginationNoPageController extends PaginationNoPageController {
|
|
38028
|
+
async getRequest(queryParams) {
|
|
38029
|
+
const { data: queryResponse } = await this.http.get('/api/v4/stories-by-targets', {
|
|
38030
|
+
params: Object.assign({}, queryParams),
|
|
38031
|
+
});
|
|
38032
|
+
return queryResponse;
|
|
38033
|
+
}
|
|
38034
|
+
}
|
|
38035
|
+
|
|
38036
|
+
class StoryLiveCollectionController extends LiveCollectionController {
|
|
38037
|
+
constructor(query, callback) {
|
|
38038
|
+
const queryStreamId = hash(query);
|
|
38039
|
+
const cacheKey = ["story-target-ids" /* STORY_KEY_CACHE.STORY_TARGET_IDS */, 'collection', queryStreamId];
|
|
38040
|
+
const paginationController = new StoryPaginationNoPageController(query);
|
|
38041
|
+
super(paginationController, queryStreamId, cacheKey, callback);
|
|
38042
|
+
this.query = query;
|
|
38043
|
+
this.queryStreamController = new StoryQueryStreamController(this.query, this.cacheKey, this.notifyChange.bind(this), paginationController);
|
|
38044
|
+
this.paginationController = paginationController;
|
|
38045
|
+
this.callback = callback.bind(this);
|
|
38046
|
+
this.loadPage(true);
|
|
38047
|
+
}
|
|
38048
|
+
setup() {
|
|
38049
|
+
var _a;
|
|
38050
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
38051
|
+
if (!collection) {
|
|
38052
|
+
pushToCache(this.cacheKey, {
|
|
38053
|
+
data: [],
|
|
38054
|
+
params: {},
|
|
38055
|
+
});
|
|
38056
|
+
}
|
|
38057
|
+
}
|
|
38058
|
+
persistModel(response) {
|
|
38059
|
+
this.queryStreamController.saveToMainDB(response);
|
|
38060
|
+
}
|
|
38061
|
+
persistQueryStream({ response, direction, refresh, }) {
|
|
38062
|
+
this.queryStreamController.appendToQueryStream(response, direction, refresh);
|
|
38063
|
+
}
|
|
38064
|
+
notifyChange({ origin, loading, error }) {
|
|
38065
|
+
var _a;
|
|
38066
|
+
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
38067
|
+
if (!collection)
|
|
38068
|
+
return;
|
|
38069
|
+
let data = collection.data
|
|
38070
|
+
.map(referenceId => pullFromCache(["story" /* STORY_KEY_CACHE.STORY */, 'get', referenceId]))
|
|
38071
|
+
.filter(Boolean)
|
|
38072
|
+
.map(internStory => LinkedObject.story(internStory.data));
|
|
38073
|
+
if (!this.shouldNotify(data) && origin === 'event')
|
|
38074
|
+
return;
|
|
38075
|
+
data = this.applyFilter(data);
|
|
38076
|
+
this.callback({
|
|
38077
|
+
onNextPage: undefined,
|
|
38078
|
+
data,
|
|
38079
|
+
hasNextPage: false,
|
|
38080
|
+
loading,
|
|
38081
|
+
error,
|
|
38082
|
+
});
|
|
38083
|
+
}
|
|
38084
|
+
applyFilter(data) {
|
|
38085
|
+
var _a, _b;
|
|
38086
|
+
const internalStories = data;
|
|
38087
|
+
const orderBy = ((_b = (_a = this.query) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.orderBy) || 'desc';
|
|
38088
|
+
return orderBy === 'asc'
|
|
38089
|
+
? internalStories.sort(sortByFirstCreated)
|
|
38090
|
+
: internalStories.sort(sortByLastCreated);
|
|
38091
|
+
}
|
|
38092
|
+
startSubscription() {
|
|
38093
|
+
return this.queryStreamController.subscribeRTE([
|
|
38094
|
+
{ fn: onStoryCreated, action: "onCreate" /* Amity.StoryActionType.OnCreate */ },
|
|
38095
|
+
{ fn: onStoryUpdated, action: "onUpdate" /* Amity.StoryActionType.OnUpdate */ },
|
|
38096
|
+
{ fn: onStoryDeleted, action: "onDelete" /* Amity.StoryActionType.OnDelete */ },
|
|
38097
|
+
{ fn: onStoryError, action: "onError" /* Amity.StoryActionType.OnError */ },
|
|
38098
|
+
]);
|
|
38099
|
+
}
|
|
38100
|
+
}
|
|
38101
|
+
|
|
38102
|
+
const getStoriesByTargetIds = (params, callback, config) => {
|
|
38103
|
+
const { log, cache, userId } = getActiveClient();
|
|
38104
|
+
if (!cache) {
|
|
38105
|
+
console.log(ENABLE_CACHE_MESSAGE);
|
|
38106
|
+
}
|
|
38107
|
+
const timestamp = Date.now();
|
|
38108
|
+
log(`getStoriesByTargetIds(tmpid: ${timestamp}) > listen`);
|
|
38109
|
+
const storyLiveCollection = new StoryLiveCollectionController(params, callback);
|
|
38110
|
+
const disposers = storyLiveCollection.startSubscription();
|
|
38111
|
+
const cacheKey = storyLiveCollection.getCacheKey();
|
|
38112
|
+
disposers.push(() => {
|
|
38113
|
+
dropFromCache(cacheKey);
|
|
38114
|
+
});
|
|
38115
|
+
return () => {
|
|
38116
|
+
log(`getStoriesByTargetIds(tmpid: ${timestamp}) > dispose`);
|
|
38117
|
+
disposers.forEach(fn => fn());
|
|
38118
|
+
};
|
|
38119
|
+
};
|
|
38120
|
+
|
|
37505
38121
|
var index = /*#__PURE__*/Object.freeze({
|
|
37506
38122
|
__proto__: null,
|
|
37507
38123
|
createImageStory: createImageStory,
|
|
@@ -37511,7 +38127,8 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
37511
38127
|
getActiveStoriesByTarget: getActiveStoriesByTarget,
|
|
37512
38128
|
getStoryByStoryId: getStoryByStoryId,
|
|
37513
38129
|
getTargetById: getTargetById,
|
|
37514
|
-
getTargetsByTargetIds: getTargetsByTargetIds
|
|
38130
|
+
getTargetsByTargetIds: getTargetsByTargetIds,
|
|
38131
|
+
getStoriesByTargetIds: getStoriesByTargetIds
|
|
37515
38132
|
});
|
|
37516
38133
|
|
|
37517
38134
|
/**
|
|
@@ -37536,4 +38153,4 @@ const createUserToken = async (apiKey, apiRegion, params) => {
|
|
|
37536
38153
|
return { accessToken: data.accessToken };
|
|
37537
38154
|
};
|
|
37538
38155
|
|
|
37539
|
-
export { API_REGIONS, index$7 as CategoryRepository, index$d as ChannelRepository, index$k as Client, index$4 as CommentRepository, CommunityPostSettingMaps, CommunityPostSettings, index$8 as CommunityRepository, ContentFeedType, DefaultCommunityPostSetting, index$6 as FeedRepository, index$h as FileRepository, FileType, index$1 as LiveStreamPlayer, MessageContentType, index$c as MessageRepository, index$2 as PollRepository, PostContentType, index$5 as PostRepository, index$g as ReactionRepository, index as StoryRepository, index$3 as StreamRepository, index$b as SubChannelRepository, SubscriptionLevels, index$i as UserRepository, VERSION, VideoResolution, VideoSize, VideoTranscodingStatus, backupCache, createQuery, createReport, createUserToken, deleteReport, disableCache, dropFromCache, enableCache, filterByChannelMembership, filterByCommunityMembership, filterByFeedType, filterByPostDataTypes, filterByPropEquality, filterByPropInclusion, filterByPropIntersection, filterBySearchTerm, filterByStringComparePartially, getChannelTopic, getCommentTopic, getCommunityTopic, getMarkedMessageTopic, getMessageTopic, getMyFollowersTopic, getMyFollowingsTopic, getNetworkTopic, getPostTopic, getRole, getSmartFeedChannelTopic, getSmartFeedMessageTopic, getSmartFeedSubChannelTopic, getSubChannelTopic, getUserTopic, isAfterBefore, isAfterBeforeRaw, isCachable, isFetcher, isFresh, isLocal, isMutator, isOffline, isPaged, isReportedByMe, isSkip, mergeInCache, onChannelMarkerFetched, onFeedMarkerFetched, onFeedMarkerUpdated, onMessageMarked, onMessageMarkerFetched, onSubChannelMarkerFetched, onSubChannelMarkerUpdated, onUserMarkerFetched, pullFromCache, pushToCache, queryCache, queryOptions, queryRoles, restoreCache, runQuery, sortByChannelSegment, sortByDisplayName, sortByFirstCreated, sortByFirstUpdated, sortByLastActivity, sortByLastCreated, sortByLastUpdated, sortByName, sortBySegmentNumber, subscribeTopic, toPage, toPageRaw, toToken, upsertInCache, wipeCache };
|
|
38156
|
+
export { API_REGIONS, index$7 as CategoryRepository, index$d as ChannelRepository, index$k as Client, index$4 as CommentRepository, CommunityPostSettingMaps, CommunityPostSettings, index$8 as CommunityRepository, ContentFeedType, DefaultCommunityPostSetting, index$6 as FeedRepository, index$h as FileRepository, FileType, index$1 as LiveStreamPlayer, MessageContentType, index$c as MessageRepository, index$2 as PollRepository, PostContentType, index$5 as PostRepository, index$g as ReactionRepository, index as StoryRepository, index$3 as StreamRepository, index$b as SubChannelRepository, SubscriptionLevels, index$i as UserRepository, VERSION, VideoResolution, VideoSize, VideoTranscodingStatus, backupCache, createQuery, createReport, createUserToken, deleteReport, disableCache, dropFromCache, enableCache, filterByChannelMembership, filterByCommunityMembership, filterByFeedType, filterByPostDataTypes, filterByPropEquality, filterByPropInclusion, filterByPropIntersection, filterBySearchTerm, filterByStringComparePartially, getChannelTopic, getCommentTopic, getCommunityStoriesTopic, getCommunityTopic, getMarkedMessageTopic, getMessageTopic, getMyFollowersTopic, getMyFollowingsTopic, getNetworkTopic, getPostTopic, getRole, getSmartFeedChannelTopic, getSmartFeedMessageTopic, getSmartFeedSubChannelTopic, getStoryTopic, getSubChannelTopic, getUserTopic, isAfterBefore, isAfterBeforeRaw, isCachable, isFetcher, isFresh, isLocal, isMutator, isOffline, isPaged, isReportedByMe, isSkip, mergeInCache, onChannelMarkerFetched, onFeedMarkerFetched, onFeedMarkerUpdated, onMessageMarked, onMessageMarkerFetched, onSubChannelMarkerFetched, onSubChannelMarkerUpdated, onUserMarkerFetched, onUserMarkerFetchedLegacy, pullFromCache, pushToCache, queryCache, queryOptions, queryRoles, restoreCache, runQuery, sortByChannelSegment, sortByDisplayName, sortByFirstCreated, sortByFirstUpdated, sortByLastActivity, sortByLastCreated, sortByLastUpdated, sortByName, sortBySegmentNumber, subscribeTopic, toPage, toPageRaw, toToken, upsertInCache, wipeCache };
|