@amityco/ts-sdk 7.1.1-1d526d8.0 → 7.1.1-279cf96.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 (87) hide show
  1. package/dist/@types/core/events.d.ts +2 -1
  2. package/dist/@types/core/events.d.ts.map +1 -1
  3. package/dist/@types/core/model.d.ts +2 -0
  4. package/dist/@types/core/model.d.ts.map +1 -1
  5. package/dist/@types/core/readReceipt.d.ts +12 -1
  6. package/dist/@types/core/readReceipt.d.ts.map +1 -1
  7. package/dist/@types/domains/channel.d.ts +10 -0
  8. package/dist/@types/domains/channel.d.ts.map +1 -1
  9. package/dist/@types/domains/client.d.ts +2 -0
  10. package/dist/@types/domains/client.d.ts.map +1 -1
  11. package/dist/channelRepository/api/markChannelsAsReadBySegment.d.ts +16 -0
  12. package/dist/channelRepository/api/markChannelsAsReadBySegment.d.ts.map +1 -0
  13. package/dist/channelRepository/events/onChannelDeleted.d.ts.map +1 -1
  14. package/dist/channelRepository/events/onChannelLeft.d.ts.map +1 -1
  15. package/dist/{marker → channelRepository}/events/onChannelUnreadUpdatedLocal.d.ts +2 -2
  16. package/dist/channelRepository/events/onChannelUnreadUpdatedLocal.d.ts.map +1 -0
  17. package/dist/channelRepository/internalApi/getTotalChannelsUnread.d.ts +11 -0
  18. package/dist/channelRepository/internalApi/getTotalChannelsUnread.d.ts.map +1 -0
  19. package/dist/channelRepository/observers/getChannel.d.ts.map +1 -1
  20. package/dist/channelRepository/observers/getChannels/ChannelLiveCollectionController.d.ts.map +1 -1
  21. package/dist/channelRepository/observers/getTotalChannelsUnread.d.ts +20 -0
  22. package/dist/channelRepository/observers/getTotalChannelsUnread.d.ts.map +1 -0
  23. package/dist/channelRepository/observers/index.d.ts +1 -0
  24. package/dist/channelRepository/observers/index.d.ts.map +1 -1
  25. package/dist/channelRepository/utils/constructChannelDynamicValue.d.ts.map +1 -1
  26. package/dist/channelRepository/utils/getLegacyChannelUnread.d.ts +2 -0
  27. package/dist/channelRepository/utils/getLegacyChannelUnread.d.ts.map +1 -0
  28. package/dist/channelRepository/utils/prepareChannelPayload.d.ts.map +1 -1
  29. package/dist/client/api/createClient.d.ts +1 -0
  30. package/dist/client/api/createClient.d.ts.map +1 -1
  31. package/dist/client/api/enableUnreadCount.d.ts.map +1 -1
  32. package/dist/client/api/login.d.ts.map +1 -1
  33. package/dist/client/utils/ReadReceiptSync/legacyReadReceiptSyncEngine.d.ts +33 -0
  34. package/dist/client/utils/ReadReceiptSync/legacyReadReceiptSyncEngine.d.ts.map +1 -0
  35. package/dist/client/utils/ReadReceiptSync/legacyReadReceiptSyncEngineOnLoginHandler.d.ts +3 -0
  36. package/dist/client/utils/ReadReceiptSync/legacyReadReceiptSyncEngineOnLoginHandler.d.ts.map +1 -0
  37. package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngine.d.ts +2 -4
  38. package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngine.d.ts.map +1 -1
  39. package/dist/client/utils/endpoints.d.ts +1 -0
  40. package/dist/client/utils/endpoints.d.ts.map +1 -1
  41. package/dist/client/utils/setClientToken.d.ts.map +1 -1
  42. package/dist/core/events.d.ts +3 -3
  43. package/dist/core/events.d.ts.map +1 -1
  44. package/dist/core/model/idResolvers.d.ts.map +1 -1
  45. package/dist/index.cjs.js +551 -55
  46. package/dist/index.esm.js +551 -55
  47. package/dist/index.umd.js +4 -4
  48. package/dist/marker/events/onChannelUnreadInfoUpdatedLocal.d.ts +12 -0
  49. package/dist/marker/events/onChannelUnreadInfoUpdatedLocal.d.ts.map +1 -0
  50. package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
  51. package/dist/messageRepository/observers/getMessage.d.ts.map +1 -1
  52. package/dist/messageRepository/utils/markReadMessage.d.ts.map +1 -1
  53. package/package.json +1 -1
  54. package/src/@types/core/events.ts +2 -1
  55. package/src/@types/core/model.ts +4 -0
  56. package/src/@types/core/readReceipt.ts +14 -1
  57. package/src/@types/domains/channel.ts +13 -0
  58. package/src/@types/domains/client.ts +3 -0
  59. package/src/channelRepository/api/markChannelsAsReadBySegment.ts +29 -0
  60. package/src/channelRepository/events/onChannelDeleted.ts +17 -4
  61. package/src/channelRepository/events/onChannelLeft.ts +11 -3
  62. package/src/{marker → channelRepository}/events/onChannelUnreadUpdatedLocal.ts +3 -3
  63. package/src/channelRepository/internalApi/getTotalChannelsUnread.ts +38 -0
  64. package/src/channelRepository/observers/getChannel.ts +3 -1
  65. package/src/channelRepository/observers/getChannels/ChannelLiveCollectionController.ts +6 -1
  66. package/src/channelRepository/observers/getTotalChannelsUnread.ts +129 -0
  67. package/src/channelRepository/observers/index.ts +1 -0
  68. package/src/channelRepository/utils/constructChannelDynamicValue.ts +12 -2
  69. package/src/channelRepository/utils/getLegacyChannelUnread.ts +5 -0
  70. package/src/channelRepository/utils/prepareChannelPayload.ts +66 -17
  71. package/src/client/api/createClient.ts +7 -1
  72. package/src/client/api/enableUnreadCount.ts +1 -0
  73. package/src/client/api/login.ts +5 -1
  74. package/src/client/utils/ReadReceiptSync/legacyReadReceiptSyncEngine.ts +267 -0
  75. package/src/client/utils/ReadReceiptSync/legacyReadReceiptSyncEngineOnLoginHandler.ts +21 -0
  76. package/src/client/utils/ReadReceiptSync/readReceiptSyncEngine.ts +74 -99
  77. package/src/client/utils/endpoints.ts +1 -0
  78. package/src/client/utils/setClientToken.ts +8 -0
  79. package/src/core/model/idResolvers.ts +2 -0
  80. package/src/fileRepository/api/uploadFile.ts +1 -1
  81. package/src/fileRepository/api/uploadImage.ts +1 -1
  82. package/src/fileRepository/api/uploadVideo.ts +1 -1
  83. package/src/marker/events/onChannelUnreadInfoUpdatedLocal.ts +29 -0
  84. package/src/messageRepository/events/onMessageCreated.ts +45 -1
  85. package/src/messageRepository/observers/getMessage.ts +0 -1
  86. package/src/messageRepository/utils/markReadMessage.ts +10 -3
  87. package/dist/marker/events/onChannelUnreadUpdatedLocal.d.ts.map +0 -1
@@ -48,7 +48,7 @@ export const uploadVideo = async (
48
48
  ? (formData as any).getHeaders()
49
49
  : { 'content-type': 'multipart/form-data' };
50
50
 
51
- const { data } = await client.http.post<Amity.CreateFilePayload<'video'>>(
51
+ const { data } = await client.upload.post<Amity.CreateFilePayload<'video'>>(
52
52
  '/api/v4/videos',
53
53
  formData,
54
54
  {
@@ -0,0 +1,29 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+ import { createEventSubscriber } from '~/core/events';
3
+
4
+ /**
5
+ * Internal used only
6
+ *
7
+ * Fired when an {@link Amity.channelUnreadInfo} has been updated.
8
+ *
9
+ * @param callback The function to call when the event was fired
10
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
11
+ *
12
+ * @category ChannelMarker Events
13
+ */
14
+ export const onChannelUnreadInfoUpdatedLocal = (
15
+ callback: Amity.Listener<Amity.Events['local.channelUnreadInfo.updated']>,
16
+ ): Amity.Unsubscriber => {
17
+ const client = getActiveClient();
18
+
19
+ const filter = (payload: Amity.Events['local.channelUnreadInfo.updated']) => {
20
+ callback(payload);
21
+ };
22
+
23
+ return createEventSubscriber(
24
+ client,
25
+ 'channelMarker/onChannelUnreadInfoUpdatedLocal',
26
+ 'local.channelUnreadInfo.updated',
27
+ filter,
28
+ );
29
+ };
@@ -1,11 +1,12 @@
1
1
  import { getActiveClient } from '~/client/api/activeClient';
2
- import { createEventSubscriber } from '~/core/events';
2
+ import { createEventSubscriber, fireEvent } from '~/core/events';
3
3
  import { ingestInCache } from '~/cache/api/ingestInCache';
4
4
  import { updateSubChannelUnreadFromMessage } from '~/marker/utils/updateSubChannelUnreadFromMessage';
5
5
  import { reCalculateChannelUnreadInfo } from '~/marker/utils/reCalculateChannelUnreadInfo';
6
6
  import { getActiveUser } from '~/client/api/activeUser';
7
7
  import { markReadMessage } from '../utils/markReadMessage';
8
8
  import { prepareMessagePayload } from '../utils';
9
+ import { pullFromCache, pushToCache } from '~/cache/api';
9
10
 
10
11
  /**
11
12
  * ```js
@@ -40,6 +41,49 @@ export const onMessageCreatedMqtt = (
40
41
  });
41
42
  }
42
43
 
44
+ if (client.useLegacyUnreadCount) {
45
+ rawPayload.messages.forEach(message => {
46
+ const channelUnread = pullFromCache<Amity.ChannelUnread>([
47
+ 'channelUnread',
48
+ 'get',
49
+ message.channelId,
50
+ ])?.data;
51
+
52
+ if (
53
+ !channelUnread ||
54
+ channelUnread.lastSegment >= message.segment ||
55
+ typeof channelUnread.readToSegment !== 'number' ||
56
+ typeof channelUnread.lastMentionSegment !== 'number'
57
+ )
58
+ return;
59
+
60
+ const lastSegment = message.segment;
61
+ const isMentionedInMessage = message.mentionedUsers?.some(mention => {
62
+ return (
63
+ mention.type === 'channel' ||
64
+ (mention.type === 'user' &&
65
+ client.userId &&
66
+ mention.userPublicIds.includes(client.userId))
67
+ );
68
+ });
69
+
70
+ const lastMentionSegment = isMentionedInMessage
71
+ ? message.segment
72
+ : channelUnread.lastMentionSegment;
73
+
74
+ const updatedChannelUnread = {
75
+ ...channelUnread,
76
+ lastSegment,
77
+ unreadCount: Math.max(lastSegment - channelUnread.readToSegment, 0),
78
+ lastMentionSegment,
79
+ isMentioned: !(channelUnread.readToSegment >= lastMentionSegment),
80
+ };
81
+
82
+ pushToCache(['channelUnread', 'get', message.channelId], updatedChannelUnread);
83
+ fireEvent('local.channelUnread.updated', updatedChannelUnread);
84
+ });
85
+ }
86
+
43
87
  // Update in cache
44
88
  ingestInCache(payload);
45
89
 
@@ -13,7 +13,6 @@ import {
13
13
  } from '../events';
14
14
  import { onMessageFetched } from '../events/onMessageFetched';
15
15
  import { LinkedObject } from '~/utils/linkedObject';
16
- import { date } from '~/utils/tests';
17
16
 
18
17
  /* begin_public_function
19
18
  id: message.get
@@ -1,8 +1,15 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
1
2
  import ReadReceiptSyncEngine from '~/client/utils/ReadReceiptSync/readReceiptSyncEngine';
3
+ import LegacyReadReceiptSyncEngine from '~/client/utils/ReadReceiptSync/legacyReadReceiptSyncEngine';
2
4
 
3
5
  export const markReadMessage = (message: Amity.InternalMessage) => {
4
- const { subChannelId, channelSegment } = message;
5
- const markReadReceiptEngine = ReadReceiptSyncEngine.getInstance();
6
+ const client = getActiveClient();
6
7
 
7
- markReadReceiptEngine.markRead(subChannelId, channelSegment);
8
+ if (client.useLegacyUnreadCount) {
9
+ const markReadReceiptEngine = ReadReceiptSyncEngine.getInstance();
10
+ markReadReceiptEngine.markRead(message.channelId, message.channelSegment);
11
+ } else {
12
+ const markReadReceiptEngine = LegacyReadReceiptSyncEngine.getInstance();
13
+ markReadReceiptEngine.markRead(message.subChannelId, message.channelSegment);
14
+ }
8
15
  };
@@ -1 +0,0 @@
1
- {"version":3,"file":"onChannelUnreadUpdatedLocal.d.ts","sourceRoot":"","sources":["../../../src/marker/events/onChannelUnreadUpdatedLocal.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,aAC5B,MAAM,QAAQ,CAAC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC,KACpE,MAAM,YAaR,CAAC"}