@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.
Files changed (41) hide show
  1. package/dist/@types/core/model.d.ts +5 -5
  2. package/dist/@types/core/model.d.ts.map +1 -1
  3. package/dist/@types/domains/ad.d.ts +14 -2
  4. package/dist/@types/domains/ad.d.ts.map +1 -1
  5. package/dist/@types/domains/message.d.ts +4 -1
  6. package/dist/@types/domains/message.d.ts.map +1 -1
  7. package/dist/adRepository/api/getNetworkAds.d.ts.map +1 -1
  8. package/dist/analytic/service/analytic/AnalyticsEngine.d.ts +2 -2
  9. package/dist/analytic/service/analytic/AnalyticsEngine.d.ts.map +1 -1
  10. package/dist/analytic/service/analytic/AnalyticsEventCapturer.d.ts +11 -5
  11. package/dist/analytic/service/analytic/AnalyticsEventCapturer.d.ts.map +1 -1
  12. package/dist/index.cjs.js +283 -264
  13. package/dist/index.esm.js +283 -264
  14. package/dist/index.umd.js +2 -2
  15. package/dist/messageRepository/api/createMessage.d.ts +7 -25
  16. package/dist/messageRepository/api/createMessage.d.ts.map +1 -1
  17. package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
  18. package/dist/messageRepository/observers/getMessages/MessageLiveCollectionController.d.ts +4 -4
  19. package/dist/messageRepository/observers/getMessages/MessageLiveCollectionController.d.ts.map +1 -1
  20. package/dist/messageRepository/observers/getMessages/MessageQueryStreamController.d.ts.map +1 -1
  21. package/dist/messageRepository/utils/prepareMessagePayload.d.ts.map +1 -1
  22. package/dist/postRepository/observers/getPost.d.ts.map +1 -1
  23. package/dist/utils/linkedObject/adLinkedObject.d.ts +1 -1
  24. package/dist/utils/linkedObject/adLinkedObject.d.ts.map +1 -1
  25. package/dist/utils/linkedObject/index.d.ts +1 -1
  26. package/package.json +1 -1
  27. package/src/@types/core/model.ts +5 -5
  28. package/src/@types/domains/ad.ts +17 -6
  29. package/src/@types/domains/message.ts +6 -1
  30. package/src/adRepository/api/getNetworkAds.ts +22 -8
  31. package/src/analytic/service/analytic/AnalyticsEngine.ts +2 -2
  32. package/src/analytic/service/analytic/AnalyticsEventCapturer.ts +45 -27
  33. package/src/core/model/idResolvers.ts +1 -1
  34. package/src/messageRepository/api/createMessage.ts +83 -98
  35. package/src/messageRepository/events/onMessageCreated.ts +12 -6
  36. package/src/messageRepository/observers/getMessages/MessageLiveCollectionController.ts +26 -24
  37. package/src/messageRepository/observers/getMessages/MessageQueryStreamController.ts +3 -2
  38. package/src/messageRepository/observers/observeMessages.ts +3 -3
  39. package/src/messageRepository/utils/prepareMessagePayload.ts +1 -1
  40. package/src/postRepository/observers/getPost.ts +8 -1
  41. 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(client, 'message/onMessageCreated', 'local.message.created', payload =>
68
- payload.messages.forEach(message => {
69
- callback(message);
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
- onMessageCreatedLocal,
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
- return liveObject(postId, callback, 'postId', _getPost, [
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
- // import AnalyticsEngine from '~/analytic/service/analytic/AnalyticsEngine';
2
+ import AnalyticsEngine from '~/analytic/service/analytic/AnalyticsEngine';
3
3
 
4
- export const adLinkedObject = (ad: Amity.RawAd): Amity.Ad => {
5
- // const analyticsEngineInstance = AnalyticsEngine.getInstance();
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
- // analytics: {
10
- // markAsSeen: (placement: Amity.AdPlacement) => {
11
- // analyticsEngineInstance.markAdAsViewed(ad, placement);
12
- // },
13
- // markLinkAsClicked: (placement: Amity.AdPlacement) => {
14
- // analyticsEngineInstance.markAdAsClicked(ad, placement);
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',