@amityco/ts-sdk-react-native 6.26.3 → 6.27.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/model.d.ts +5 -5
- package/dist/@types/core/model.d.ts.map +1 -1
- package/dist/@types/domains/ad.d.ts +14 -2
- package/dist/@types/domains/ad.d.ts.map +1 -1
- package/dist/@types/domains/message.d.ts +4 -1
- package/dist/@types/domains/message.d.ts.map +1 -1
- package/dist/adRepository/api/getNetworkAds.d.ts.map +1 -1
- package/dist/analytic/service/analytic/AnalyticsEngine.d.ts +2 -2
- package/dist/analytic/service/analytic/AnalyticsEngine.d.ts.map +1 -1
- package/dist/analytic/service/analytic/AnalyticsEventCapturer.d.ts +11 -5
- package/dist/analytic/service/analytic/AnalyticsEventCapturer.d.ts.map +1 -1
- package/dist/index.cjs.js +283 -264
- package/dist/index.esm.js +283 -264
- package/dist/index.umd.js +2 -2
- package/dist/messageRepository/api/createMessage.d.ts +7 -25
- package/dist/messageRepository/api/createMessage.d.ts.map +1 -1
- package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
- package/dist/messageRepository/observers/getMessages/MessageLiveCollectionController.d.ts +4 -4
- package/dist/messageRepository/observers/getMessages/MessageLiveCollectionController.d.ts.map +1 -1
- package/dist/messageRepository/observers/getMessages/MessageQueryStreamController.d.ts.map +1 -1
- package/dist/messageRepository/utils/prepareMessagePayload.d.ts.map +1 -1
- package/dist/postRepository/observers/getPost.d.ts.map +1 -1
- package/dist/utils/linkedObject/adLinkedObject.d.ts +1 -1
- package/dist/utils/linkedObject/adLinkedObject.d.ts.map +1 -1
- package/dist/utils/linkedObject/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/@types/core/model.ts +5 -5
- package/src/@types/domains/ad.ts +17 -6
- package/src/@types/domains/message.ts +6 -1
- package/src/adRepository/api/getNetworkAds.ts +22 -8
- package/src/analytic/service/analytic/AnalyticsEngine.ts +2 -2
- package/src/analytic/service/analytic/AnalyticsEventCapturer.ts +45 -27
- package/src/core/model/idResolvers.ts +1 -1
- package/src/messageRepository/api/createMessage.ts +83 -98
- package/src/messageRepository/events/onMessageCreated.ts +12 -6
- package/src/messageRepository/observers/getMessages/MessageLiveCollectionController.ts +26 -24
- package/src/messageRepository/observers/getMessages/MessageQueryStreamController.ts +3 -2
- package/src/messageRepository/observers/observeMessages.ts +3 -3
- package/src/messageRepository/utils/prepareMessagePayload.ts +1 -1
- package/src/postRepository/observers/getPost.ts +8 -1
- package/src/utils/linkedObject/adLinkedObject.ts +11 -11
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
2
|
import { createEventSubscriber } from '~/core/events';
|
|
3
3
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
|
-
import { prepareMessagePayload } from '../utils';
|
|
5
4
|
import { updateSubChannelUnreadFromMessage } from '~/marker/utils/updateSubChannelUnreadFromMessage';
|
|
6
5
|
import { reCalculateChannelUnreadInfo } from '~/marker/utils/reCalculateChannelUnreadInfo';
|
|
7
|
-
import { markReadMessage } from '../utils/markReadMessage';
|
|
8
6
|
import { getActiveUser } from '~/client/api/activeUser';
|
|
7
|
+
import { markReadMessage } from '../utils/markReadMessage';
|
|
8
|
+
import { prepareMessagePayload } from '../utils';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* ```js
|
|
@@ -64,10 +64,16 @@ export const onMessageCreatedLocal = (
|
|
|
64
64
|
const client = getActiveClient();
|
|
65
65
|
|
|
66
66
|
const disposers = [
|
|
67
|
-
createEventSubscriber(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
createEventSubscriber(
|
|
68
|
+
client,
|
|
69
|
+
'message/onMessageCreated',
|
|
70
|
+
'local.message.created',
|
|
71
|
+
async payload => {
|
|
72
|
+
ingestInCache(payload);
|
|
73
|
+
return payload.messages.forEach(message => {
|
|
74
|
+
callback(message);
|
|
75
|
+
});
|
|
76
|
+
},
|
|
71
77
|
),
|
|
72
78
|
];
|
|
73
79
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import hash from 'object-hash';
|
|
2
2
|
import { pullFromCache, pushToCache } from '~/cache/api';
|
|
3
|
-
import { MessagePaginationController } from './MessagePaginationController';
|
|
4
|
-
import { MessageQueryStreamController } from './MessageQueryStreamController';
|
|
5
3
|
import {
|
|
4
|
+
onMessageCreatedLocal,
|
|
6
5
|
onMessageCreatedMqtt,
|
|
7
6
|
onMessageDeleted,
|
|
8
7
|
onMessageFlagCleared,
|
|
@@ -18,6 +17,8 @@ import { onMessageMarked, onMessageMarkerFetched } from '~/marker/events';
|
|
|
18
17
|
import { filterByPropEquality } from '~/core/query';
|
|
19
18
|
import { prepareMessagePayload } from '~/messageRepository/utils';
|
|
20
19
|
import { LinkedObject } from '~/utils/linkedObject';
|
|
20
|
+
import { MessageQueryStreamController } from './MessageQueryStreamController';
|
|
21
|
+
import { MessagePaginationController } from './MessagePaginationController';
|
|
21
22
|
|
|
22
23
|
export class MessageLiveCollectionController extends LiveCollectionController<
|
|
23
24
|
'message',
|
|
@@ -52,31 +53,10 @@ export class MessageLiveCollectionController extends LiveCollectionController<
|
|
|
52
53
|
this.loadPage({ initial: true });
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
protected setup() {
|
|
56
|
-
const collection = pullFromCache<Amity.MessageLiveCollectionCache>(this.cacheKey)?.data;
|
|
57
|
-
if (!collection) {
|
|
58
|
-
pushToCache(this.cacheKey, {
|
|
59
|
-
data: [],
|
|
60
|
-
query: this.query,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
protected async persistModel(response: Amity.MessagePayload & Amity.Pagination) {
|
|
66
|
-
await this.queryStreamController.saveToMainDB(response);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
protected persistQueryStream({
|
|
70
|
-
response,
|
|
71
|
-
direction,
|
|
72
|
-
refresh,
|
|
73
|
-
}: Amity.LiveCollectionPersistQueryStreamParams<'message'>) {
|
|
74
|
-
this.queryStreamController.appendToQueryStream(response, direction, refresh);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
56
|
startSubscription() {
|
|
78
57
|
return this.queryStreamController.subscribeRTE([
|
|
79
58
|
{ fn: onMessageCreatedMqtt, action: 'onCreate' },
|
|
59
|
+
{ fn: onMessageCreatedLocal, action: 'onCreate' },
|
|
80
60
|
{ fn: onMessageDeleted, action: 'onDelete' },
|
|
81
61
|
{ fn: onMessageUpdated, action: 'onUpdate' },
|
|
82
62
|
{ fn: onMessageFlagged, action: 'onFlagged' },
|
|
@@ -160,4 +140,26 @@ export class MessageLiveCollectionController extends LiveCollectionController<
|
|
|
160
140
|
|
|
161
141
|
return messages;
|
|
162
142
|
}
|
|
143
|
+
|
|
144
|
+
protected setup() {
|
|
145
|
+
const collection = pullFromCache<Amity.MessageLiveCollectionCache>(this.cacheKey)?.data;
|
|
146
|
+
if (!collection) {
|
|
147
|
+
pushToCache(this.cacheKey, {
|
|
148
|
+
data: [],
|
|
149
|
+
query: this.query,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
protected async persistModel(response: Amity.MessagePayload & Amity.Pagination) {
|
|
155
|
+
await this.queryStreamController.saveToMainDB(response);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
protected persistQueryStream({
|
|
159
|
+
response,
|
|
160
|
+
direction,
|
|
161
|
+
refresh,
|
|
162
|
+
}: Amity.LiveCollectionPersistQueryStreamParams<'message'>) {
|
|
163
|
+
this.queryStreamController.appendToQueryStream(response, direction, refresh);
|
|
164
|
+
}
|
|
163
165
|
}
|
|
@@ -72,6 +72,7 @@ export class MessageQueryStreamController extends QueryStreamController<
|
|
|
72
72
|
return (payload: Amity.InternalMessage) => {
|
|
73
73
|
if (action === 'onCreate') {
|
|
74
74
|
const collection = pullFromCache<Amity.MessageLiveCollectionCache>(this.cacheKey)?.data;
|
|
75
|
+
const { referenceId } = payload;
|
|
75
76
|
|
|
76
77
|
if (!collection) return;
|
|
77
78
|
if (this.query.subChannelId !== payload?.subChannelId || !collection) return;
|
|
@@ -115,11 +116,11 @@ export class MessageQueryStreamController extends QueryStreamController<
|
|
|
115
116
|
(!this.query.sortBy || this.query.sortBy === 'segmentDesc') &&
|
|
116
117
|
!this.paginationController.getPrevToken()
|
|
117
118
|
) {
|
|
118
|
-
collection.data = [...new Set([payload.messageId, ...collection.data])];
|
|
119
|
+
collection.data = [...new Set([referenceId ?? payload.messageId, ...collection.data])];
|
|
119
120
|
}
|
|
120
121
|
|
|
121
122
|
if (this.query.sortBy === 'segmentAsc' && !this.paginationController.getNextToken()) {
|
|
122
|
-
collection.data = [...new Set([...collection.data, payload.messageId])];
|
|
123
|
+
collection.data = [...new Set([...collection.data, referenceId ?? payload.messageId])];
|
|
123
124
|
}
|
|
124
125
|
|
|
125
126
|
pushToCache(this.cacheKey, collection);
|
|
@@ -2,13 +2,13 @@ import { getActiveClient } from '~/client/api';
|
|
|
2
2
|
import { onMessageMarked, onMessageMarkerFetched } from '~/marker/events';
|
|
3
3
|
import { convertEventPayload } from '~/utils/event';
|
|
4
4
|
|
|
5
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
5
6
|
import {
|
|
7
|
+
onMessageCreatedLocal,
|
|
6
8
|
onMessageCreatedMqtt,
|
|
7
|
-
onMessageUpdated,
|
|
8
9
|
onMessageDeleted,
|
|
9
|
-
|
|
10
|
+
onMessageUpdated,
|
|
10
11
|
} from '../events';
|
|
11
|
-
import { LinkedObject } from '~/utils/linkedObject';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* ```js
|
|
@@ -8,7 +8,6 @@ import { MessageContentType } from '~/@types';
|
|
|
8
8
|
import { convertFromRaw as convertSubChannelFromRaw } from '~/subChannelRepository/utils/convertSubChannelFromRaw';
|
|
9
9
|
import { updateSubChannelCache } from '~/subChannelRepository/utils/updateSubChannelCache';
|
|
10
10
|
import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
|
|
11
|
-
import { getMessageReadCount } from './getMessageReadCount';
|
|
12
11
|
|
|
13
12
|
export function convertFromRaw(
|
|
14
13
|
message: Amity.RawMessage,
|
|
@@ -62,6 +61,7 @@ export function convertFromRaw(
|
|
|
62
61
|
subChannelId: messageFeedId,
|
|
63
62
|
uniqueId: cache ? cache.data.uniqueId : messageId,
|
|
64
63
|
referenceId,
|
|
64
|
+
syncState: Amity.SyncState.Synced,
|
|
65
65
|
};
|
|
66
66
|
|
|
67
67
|
if (mentionedUsers) {
|
|
@@ -42,7 +42,14 @@ export const getPost = (
|
|
|
42
42
|
postId: Amity.Post['postId'],
|
|
43
43
|
callback: Amity.LiveObjectCallback<Amity.Post>,
|
|
44
44
|
): Amity.Unsubscriber => {
|
|
45
|
-
|
|
45
|
+
const responder: Amity.LiveObjectCallback<Amity.InternalPost> = (
|
|
46
|
+
snapshot: Amity.LiveObject<Amity.InternalPost>,
|
|
47
|
+
) => {
|
|
48
|
+
const { data } = snapshot;
|
|
49
|
+
callback({ ...snapshot, data: data ? LinkedObject.post(snapshot.data) : data });
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
return liveObject(postId, responder, 'postId', _getPost, [
|
|
46
53
|
onPostApproved,
|
|
47
54
|
onPostDeclined,
|
|
48
55
|
(callback: Amity.Listener<Amity.InternalPost>) => {
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { pullFromCache } from '~/cache/api';
|
|
2
|
-
|
|
2
|
+
import AnalyticsEngine from '~/analytic/service/analytic/AnalyticsEngine';
|
|
3
3
|
|
|
4
|
-
export const adLinkedObject = (ad: Amity.
|
|
5
|
-
|
|
4
|
+
export const adLinkedObject = (ad: Amity.InternalAd): Amity.Ad => {
|
|
5
|
+
const analyticsEngineInstance = AnalyticsEngine.getInstance();
|
|
6
6
|
const { image9_16: image916, image1_1: image11, ...restAds } = ad;
|
|
7
7
|
return {
|
|
8
8
|
...restAds,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
analytics: {
|
|
10
|
+
markAsSeen: (placement: Amity.AdPlacement) => {
|
|
11
|
+
analyticsEngineInstance.markAdAsViewed(ad, placement);
|
|
12
|
+
},
|
|
13
|
+
markLinkAsClicked: (placement: Amity.AdPlacement) => {
|
|
14
|
+
analyticsEngineInstance.markAdAsClicked(ad, placement);
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
17
|
get advertiser(): Amity.Advertiser | undefined {
|
|
18
18
|
const advertiserData = pullFromCache<Amity.RawAdvertiser>([
|
|
19
19
|
'advertiser',
|