@amityco/ts-sdk 7.1.1-c8d4edca.0 → 7.1.1-dbdbe662.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/domains/channel.d.ts +3 -2
- package/dist/@types/domains/channel.d.ts.map +1 -1
- package/dist/channelRepository/events/onChannelDeleted.d.ts.map +1 -1
- package/dist/channelRepository/events/onChannelLeft.d.ts.map +1 -1
- package/dist/channelRepository/events/onChannelUnreadUpdatedLocal.d.ts +2 -2
- package/dist/channelRepository/internalApi/getTotalChannelsUnread.d.ts +11 -0
- package/dist/channelRepository/internalApi/getTotalChannelsUnread.d.ts.map +1 -0
- package/dist/channelRepository/observers/getTotalChannelsUnread.d.ts +20 -0
- package/dist/channelRepository/observers/getTotalChannelsUnread.d.ts.map +1 -0
- package/dist/channelRepository/observers/index.d.ts +1 -0
- package/dist/channelRepository/observers/index.d.ts.map +1 -1
- package/dist/channelRepository/utils/prepareChannelPayload.d.ts.map +1 -1
- package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngine.d.ts.map +1 -1
- package/dist/index.cjs.js +186 -20
- package/dist/index.esm.js +186 -20
- package/dist/index.umd.js +4 -4
- package/dist/marker/events/onChannelUnreadInfoUpdatedLocal.d.ts +2 -2
- package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
- package/dist/messageRepository/observers/getMessage.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/domains/channel.ts +4 -2
- package/src/channelRepository/events/onChannelDeleted.ts +17 -4
- package/src/channelRepository/events/onChannelLeft.ts +11 -3
- package/src/channelRepository/events/onChannelUnreadUpdatedLocal.ts +2 -2
- package/src/channelRepository/internalApi/getTotalChannelsUnread.ts +38 -0
- package/src/channelRepository/observers/getTotalChannelsUnread.ts +129 -0
- package/src/channelRepository/observers/index.ts +1 -0
- package/src/channelRepository/utils/prepareChannelPayload.ts +16 -7
- package/src/client/utils/ReadReceiptSync/readReceiptSyncEngine.ts +5 -4
- package/src/marker/events/onChannelUnreadInfoUpdatedLocal.ts +2 -2
- package/src/messageRepository/events/onMessageCreated.ts +45 -1
- package/src/messageRepository/observers/getMessage.ts +0 -1
- package/dist/marker/events/onChannelUnreadUpdatedLocal.d.ts +0 -12
- package/dist/marker/events/onChannelUnreadUpdatedLocal.d.ts.map +0 -1
- package/src/marker/events/onChannelUnreadUpdatedLocal.ts +0 -29
|
@@ -53,6 +53,7 @@ declare global {
|
|
|
53
53
|
type InternalChannel<T extends ChannelType = any> = Omit<StaticInternalChannel<T>, 'messageCount'> & {
|
|
54
54
|
isMentioned: boolean;
|
|
55
55
|
subChannelsUnreadCount: number;
|
|
56
|
+
unreadCount: number;
|
|
56
57
|
};
|
|
57
58
|
type Channel<T extends ChannelType = any> = InternalChannel<T> & {
|
|
58
59
|
messagePreview?: Amity.MessagePreview | null;
|
|
@@ -89,9 +90,9 @@ declare global {
|
|
|
89
90
|
channelId: Amity.Channel['channelId'];
|
|
90
91
|
unreadCount: number;
|
|
91
92
|
isMentioned: boolean;
|
|
92
|
-
readToSegment: number;
|
|
93
|
+
readToSegment: number | null;
|
|
93
94
|
lastSegment: number;
|
|
94
|
-
lastMentionSegment: number;
|
|
95
|
+
lastMentionSegment: number | null;
|
|
95
96
|
isDeleted: boolean;
|
|
96
97
|
};
|
|
97
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AAEV,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,KAAK,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;QAEvE,KAAK,uBAAuB,GACxB,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,uBAAuB,GACvB,yBAAyB,GACzB,0BAA0B,GAC1B,4BAA4B,CAAC;QAEjC,WAAW,iBAAiB;YAC1B,gBAAgB,qBAAqB;YACrC,eAAe,oBAAoB;YACnC,OAAO,YAAY;YACnB,QAAQ,aAAa;YACrB,QAAQ,aAAa;YACrB,QAAQ,aAAa;YACrB,MAAM,WAAW;YACjB,MAAM,WAAW;YACjB,MAAM,WAAW;YACjB,aAAa,kBAAkB;YAC/B,eAAe,oBAAoB;YACnC,4BAA4B,iCAAiC;SAC9D;QAED,KAAK,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI;YAC7C,GAAG,EAAE,MAAM,CAAC;YACZ,SAAS,EAAE,MAAM,CAAC;YAClB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,eAAe,EAAE,MAAM,CAAC;YACxB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC,CAAC;YAER,UAAU,CAAC,EAAE,OAAO,CAAC;YAErB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,WAAW,CAAC,EAAE,MAAM,CAAC;YAErB,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAE1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;YACnC,4BAA4B,CAAC,EAAE,MAAM,CAAC;YAEtC,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,EAAE,MAAM,CAAC;YACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAE9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAE1B,QAAQ,CAAC,EAAE,OAAO,CAAC;YAEnB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;SAC/B,GAAG,KAAK,CAAC,QAAQ,GAChB,KAAK,CAAC,QAAQ,GACd,KAAK,CAAC,UAAU,GAChB,KAAK,CAAC,UAAU,GAChB,KAAK,CAAC,YAAY,CAAC;QAGrB,KAAK,qBAAqB,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG;YACxE,mBAAmB,EAAE,MAAM,CAAC;YAC5B,oBAAoB,EAAE,OAAO,CAAC;SAC/B,CAAC;QAEF;;;;WAIG;QACH,KAAK,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI,IAAI,CACtD,qBAAqB,CAAC,CAAC,CAAC,EACxB,cAAc,CACf,GAAG;YACF,WAAW,EAAE,OAAO,CAAC;YACrB,sBAAsB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AAEV,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,KAAK,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;QAEvE,KAAK,uBAAuB,GACxB,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,uBAAuB,GACvB,yBAAyB,GACzB,0BAA0B,GAC1B,4BAA4B,CAAC;QAEjC,WAAW,iBAAiB;YAC1B,gBAAgB,qBAAqB;YACrC,eAAe,oBAAoB;YACnC,OAAO,YAAY;YACnB,QAAQ,aAAa;YACrB,QAAQ,aAAa;YACrB,QAAQ,aAAa;YACrB,MAAM,WAAW;YACjB,MAAM,WAAW;YACjB,MAAM,WAAW;YACjB,aAAa,kBAAkB;YAC/B,eAAe,oBAAoB;YACnC,4BAA4B,iCAAiC;SAC9D;QAED,KAAK,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI;YAC7C,GAAG,EAAE,MAAM,CAAC;YACZ,SAAS,EAAE,MAAM,CAAC;YAClB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,eAAe,EAAE,MAAM,CAAC;YACxB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC,CAAC;YAER,UAAU,CAAC,EAAE,OAAO,CAAC;YAErB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,WAAW,CAAC,EAAE,MAAM,CAAC;YAErB,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAE1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;YACnC,4BAA4B,CAAC,EAAE,MAAM,CAAC;YAEtC,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,EAAE,MAAM,CAAC;YACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAE9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAE1B,QAAQ,CAAC,EAAE,OAAO,CAAC;YAEnB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;SAC/B,GAAG,KAAK,CAAC,QAAQ,GAChB,KAAK,CAAC,QAAQ,GACd,KAAK,CAAC,UAAU,GAChB,KAAK,CAAC,UAAU,GAChB,KAAK,CAAC,YAAY,CAAC;QAGrB,KAAK,qBAAqB,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG;YACxE,mBAAmB,EAAE,MAAM,CAAC;YAC5B,oBAAoB,EAAE,OAAO,CAAC;SAC/B,CAAC;QAEF;;;;WAIG;QACH,KAAK,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI,IAAI,CACtD,qBAAqB,CAAC,CAAC,CAAC,EACxB,cAAc,CACf,GAAG;YACF,WAAW,EAAE,OAAO,CAAC;YACrB,sBAAsB,EAAE,MAAM,CAAC;YAE/B,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;QAIF,KAAK,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG;YAC/D,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7C,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;SACpC,CAAC;QAEF,KAAK,aAAa,GAAG;YACnB,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;YAC5C,MAAM,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;YACzE,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;YAC5B,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACvC,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9B,WAAW,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;SACnB,CAAC;QAEF,KAAK,qBAAqB,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QAErF,KAAK,0BAA0B,GAAG,KAAK,CAAC,mBAAmB,CACzD,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC1B,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAC5B,CAAC;QAEF,KAAK,mBAAmB,GAAG;YACzB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtC,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC;YAC1F,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC;YACxC,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;YAClB,cAAc,CAAC,EAAE,OAAO,CAAC;SAC1B,CAAC;QAEF,KAAK,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE5F,KAAK,4BAA4B,GAAG,KAAK,CAAC,oBAAoB,CAC5D,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAClC,CAAC;QAEF,KAAK,kCAAkC,GAAG,KAAK,CAAC,oBAAoB,CAClE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CACnC,CAAC;QAEF,KAAK,iCAAiC,GAAG,KAAK,CAAC,mBAAmB,CAChE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EACrC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAClC,CAAC;QAGF,KAAK,aAAa,GAAG;YACnB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtC,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,EAAE,OAAO,CAAC;YACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;YAC7B,WAAW,EAAE,MAAM,CAAC;YACpB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;YAClC,SAAS,EAAE,OAAO,CAAC;SACpB,CAAC;KACH;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onChannelDeleted.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/events/onChannelDeleted.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"onChannelDeleted.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/events/onChannelDeleted.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,gBAAgB,aAAc,MAAM,QAAQ,CAAC,MAAM,qBAAqB,CAAC,eAmCrF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onChannelLeft.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/events/onChannelLeft.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"onChannelLeft.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/events/onChannelLeft.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,aAAa,uBACJ,MAAM,qBAAqB,UAAU,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,eAyC9F,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Internal used only
|
|
3
3
|
*
|
|
4
|
-
* Fired when an {@link Amity.
|
|
4
|
+
* Fired when an {@link Amity.ChannelUnread} has been updated.
|
|
5
5
|
*
|
|
6
6
|
* @param callback The function to call when the event was fired
|
|
7
7
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
8
8
|
*
|
|
9
|
-
* @category
|
|
9
|
+
* @category Channel Events
|
|
10
10
|
*/
|
|
11
11
|
export declare const onChannelUnreadUpdatedLocal: (callback: Amity.Listener<Amity.Events['local.channelUnread.updated']>) => Amity.Unsubscriber;
|
|
12
12
|
//# sourceMappingURL=onChannelUnreadUpdatedLocal.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Calculate user unread from {@link Amity.ChannelUnread} objects
|
|
4
|
+
*
|
|
5
|
+
* @returns the {@link Amity.UserUnread} objects
|
|
6
|
+
*
|
|
7
|
+
* @category Channel API
|
|
8
|
+
* @async
|
|
9
|
+
*/
|
|
10
|
+
export declare const getTotalChannelsUnread: () => Amity.Cached<Amity.UserUnread>;
|
|
11
|
+
//# sourceMappingURL=getTotalChannelsUnread.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTotalChannelsUnread.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/internalApi/getTotalChannelsUnread.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,eAAO,MAAM,sBAAsB,QAAO,MAAM,MAAM,CAAC,MAAM,UAAU,CAwBtE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ```js
|
|
3
|
+
* import { ChannelRepository } from '@amityco/ts-sdk';
|
|
4
|
+
*
|
|
5
|
+
* let totalChannelsUnread;
|
|
6
|
+
*
|
|
7
|
+
* const unsubscribe = ChannelRepository.getTotalChannelsUnread(response => {
|
|
8
|
+
* unread = response.data;
|
|
9
|
+
* });
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* Observe all mutation on a given {@link Amity.UserUnread}
|
|
13
|
+
*
|
|
14
|
+
* @returns An {@link Amity.UserUnread} function to run when willing to stop observing the message
|
|
15
|
+
*
|
|
16
|
+
* @category User Unread Live Object
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
export declare const getTotalChannelsUnread: (callback: Amity.LiveObjectCallback<Amity.UserUnread | undefined>) => Amity.Unsubscriber;
|
|
20
|
+
//# sourceMappingURL=getTotalChannelsUnread.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTotalChannelsUnread.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/observers/getTotalChannelsUnread.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,sBAAsB,aACvB,MAAM,kBAAkB,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,KAC/D,MAAM,YA2FR,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/observers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/observers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareChannelPayload.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/utils/prepareChannelPayload.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,4BAA4B,UAA6C,CAAC;AACvF,eAAO,MAAM,oBAAoB,aAAc,KAAK,MAAM,UAAU,EAAE,MAAM,CAAC,YAChC,CAAC;AAE9C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,KAAK,CAAC,UAAU,EACzB,OAAO,GAAE;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAsC,GACjF,KAAK,CAAC,qBAAqB,CAmB7B;AAED,eAAO,MAAM,qBAAqB,eACpB,MAAM,cAAc,YACvB;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,SAO/C,CAAC;
|
|
1
|
+
{"version":3,"file":"prepareChannelPayload.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/utils/prepareChannelPayload.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,4BAA4B,UAA6C,CAAC;AACvF,eAAO,MAAM,oBAAoB,aAAc,KAAK,MAAM,UAAU,EAAE,MAAM,CAAC,YAChC,CAAC;AAE9C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,KAAK,CAAC,UAAU,EACzB,OAAO,GAAE;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAsC,GACjF,KAAK,CAAC,qBAAqB,CAmB7B;AAED,eAAO,MAAM,qBAAqB,eACpB,MAAM,cAAc,YACvB;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,SAO/C,CAAC;AA0CF,eAAO,MAAM,qBAAqB,eACpB,MAAM,cAAc,YACvB;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7C,QAAQ,MAAM,uBAAuB,CA2DvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readReceiptSyncEngine.d.ts","sourceRoot":"","sources":["../../../../src/client/utils/ReadReceiptSync/readReceiptSyncEngine.ts"],"names":[],"mappings":"AAKA,qBAAa,4BAA4B;IACvC,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,cAAc,CAAO;IAE7B,OAAO,CAAC,QAAQ,CAAkC;IAElD,OAAO,CAAC,KAAK,CAA2B;IAGxC,OAAO,CAAC,qBAAqB,CAAK;;IASlC,oBAAoB;IAQpB,gBAAgB,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"readReceiptSyncEngine.d.ts","sourceRoot":"","sources":["../../../../src/client/utils/ReadReceiptSync/readReceiptSyncEngine.ts"],"names":[],"mappings":"AAKA,qBAAa,4BAA4B;IACvC,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,cAAc,CAAO;IAE7B,OAAO,CAAC,QAAQ,CAAkC;IAElD,OAAO,CAAC,KAAK,CAA2B;IAGxC,OAAO,CAAC,qBAAqB,CAAK;;IASlC,oBAAoB;IAQpB,gBAAgB,IAAI,IAAI;IASxB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,eAAe;YAaT,WAAW;IAuCzB,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,6BAA6B;IAerC,oBAAoB,IAAI,IAAI;IAI5B,kBAAkB,IAAI,IAAI;IAK1B,cAAc,IAAI,IAAI;IAKtB,gBAAgB,IAAI,IAAI;IAKxB,eAAe,IAAI,IAAI;IAKvB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAqBlD,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;CASnB;;;;AAID,wBAME"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -5627,7 +5627,6 @@ class MessageReadReceiptSyncEngine {
|
|
|
5627
5627
|
if (this.jobQueue.length === 0 || this.isActive === false)
|
|
5628
5628
|
return;
|
|
5629
5629
|
const readReceipts = this.getReadReceipts();
|
|
5630
|
-
console.log('[New 🌟 readReceipts] Sync read receipts', readReceipts);
|
|
5631
5630
|
if (readReceipts) {
|
|
5632
5631
|
this.markReadApi(readReceipts);
|
|
5633
5632
|
}
|
|
@@ -5729,8 +5728,9 @@ class MessageReadReceiptSyncEngine {
|
|
|
5729
5728
|
// Step 1: Optimistic update of channelUnread.readToSegment to message.segment and update unreadCount value
|
|
5730
5729
|
const cacheKey = ['channelUnread', 'get', channelId];
|
|
5731
5730
|
const channelUnread = (_a = pullFromCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
5732
|
-
|
|
5733
|
-
|
|
5731
|
+
if (typeof (channelUnread === null || channelUnread === void 0 ? void 0 : channelUnread.readToSegment) === 'number' &&
|
|
5732
|
+
channelUnread &&
|
|
5733
|
+
segment > channelUnread.readToSegment) {
|
|
5734
5734
|
channelUnread.readToSegment = segment;
|
|
5735
5735
|
channelUnread.unreadCount = Math.max(channelUnread.lastSegment - segment, 0);
|
|
5736
5736
|
pushToCache(cacheKey, channelUnread);
|
|
@@ -7063,17 +7063,24 @@ const preUpdateChannelCache = (rawPayload, options = { isMessagePreviewUpdated:
|
|
|
7063
7063
|
const updateChannelUnread = ({ currentUserId, channels, channelUsers, }) => {
|
|
7064
7064
|
for (let i = 0; i < channels.length; i += 1) {
|
|
7065
7065
|
const cacheKey = ['channelUnread', 'get', channels[i].channelId];
|
|
7066
|
-
const
|
|
7067
|
-
|
|
7068
|
-
|
|
7069
|
-
|
|
7066
|
+
const channelUser = channelUsers.find(channelUser => channelUser.channelId === channels[i].channelId && channelUser.userId === currentUserId);
|
|
7067
|
+
let unreadCount = 0;
|
|
7068
|
+
let readToSegment = null;
|
|
7069
|
+
let lastMentionedSegment = null;
|
|
7070
|
+
let isMentioned = false;
|
|
7071
|
+
if (channelUser) {
|
|
7072
|
+
readToSegment = channelUser.readToSegment;
|
|
7073
|
+
lastMentionedSegment = channelUser.lastMentionedSegment;
|
|
7074
|
+
unreadCount = Math.max(channels[i].messageCount - readToSegment, 0);
|
|
7075
|
+
isMentioned = lastMentionedSegment > readToSegment;
|
|
7076
|
+
}
|
|
7070
7077
|
pushToCache(cacheKey, {
|
|
7071
7078
|
channelId: channels[i].channelId,
|
|
7072
7079
|
lastSegment: channels[i].messageCount,
|
|
7073
7080
|
readToSegment,
|
|
7074
7081
|
lastMentionedSegment,
|
|
7075
|
-
unreadCount
|
|
7076
|
-
isMentioned
|
|
7082
|
+
unreadCount,
|
|
7083
|
+
isMentioned,
|
|
7077
7084
|
isDeleted: channels[i].isDeleted,
|
|
7078
7085
|
});
|
|
7079
7086
|
}
|
|
@@ -7919,12 +7926,21 @@ const onChannelDeleted = (callback) => {
|
|
|
7919
7926
|
const client = getActiveClient();
|
|
7920
7927
|
const filter = async (payload) => {
|
|
7921
7928
|
const data = await prepareChannelPayload(payload);
|
|
7922
|
-
|
|
7923
|
-
|
|
7929
|
+
const isConsistentMode = client.getMarkerSyncConsistentMode() && client.isUnreadCountEnabled;
|
|
7930
|
+
const isLegacyUnreadCount = client.useLegacyUnreadCount;
|
|
7931
|
+
data.channels.forEach(channel => {
|
|
7932
|
+
if (isConsistentMode) {
|
|
7924
7933
|
addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
|
|
7925
7934
|
deleteChannelUnreadByChannelId(channel.channelId);
|
|
7926
|
-
}
|
|
7927
|
-
|
|
7935
|
+
}
|
|
7936
|
+
else if (isLegacyUnreadCount) {
|
|
7937
|
+
const cacheKey = ['channelUnread', 'get', channel.channelId];
|
|
7938
|
+
const cache = pullFromCache(cacheKey);
|
|
7939
|
+
if (cache) {
|
|
7940
|
+
pushToCache(cacheKey, Object.assign(Object.assign({}, cache), { isDeleted: true }));
|
|
7941
|
+
}
|
|
7942
|
+
}
|
|
7943
|
+
});
|
|
7928
7944
|
ingestInCache(data);
|
|
7929
7945
|
callbacks$b.forEach(cb => cb(data.channels[0]));
|
|
7930
7946
|
};
|
|
@@ -8623,10 +8639,17 @@ const onChannelLeft = (callback) => {
|
|
|
8623
8639
|
const preparedPayload = await prepareChannelPayload(payload, {
|
|
8624
8640
|
isMessagePreviewUpdated: isLeftByMe,
|
|
8625
8641
|
});
|
|
8626
|
-
|
|
8642
|
+
const isConsistentMode = client.getMarkerSyncConsistentMode() && client.isUnreadCountEnabled;
|
|
8643
|
+
const isLegacyUnreadCount = client.useLegacyUnreadCount;
|
|
8644
|
+
if (isLeftByMe) {
|
|
8627
8645
|
preparedPayload.channels.forEach(channel => {
|
|
8628
|
-
|
|
8629
|
-
|
|
8646
|
+
if (isConsistentMode) {
|
|
8647
|
+
addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
|
|
8648
|
+
deleteChannelUnreadByChannelId(channel.channelId);
|
|
8649
|
+
}
|
|
8650
|
+
else if (isLegacyUnreadCount) {
|
|
8651
|
+
dropFromCache(['channelUnread', 'get', channel.channelId]);
|
|
8652
|
+
}
|
|
8630
8653
|
});
|
|
8631
8654
|
}
|
|
8632
8655
|
const { channels, channelUsers } = preparedPayload;
|
|
@@ -8894,6 +8917,34 @@ const onMessageCreatedMqtt = (callback) => {
|
|
|
8894
8917
|
reCalculateChannelUnreadInfo(message.channelId);
|
|
8895
8918
|
});
|
|
8896
8919
|
}
|
|
8920
|
+
if (client.useLegacyUnreadCount) {
|
|
8921
|
+
rawPayload.messages.forEach(message => {
|
|
8922
|
+
var _a, _b;
|
|
8923
|
+
const channelUnread = (_a = pullFromCache([
|
|
8924
|
+
'channelUnread',
|
|
8925
|
+
'get',
|
|
8926
|
+
message.channelId,
|
|
8927
|
+
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
8928
|
+
if (!channelUnread ||
|
|
8929
|
+
channelUnread.lastSegment >= message.segment ||
|
|
8930
|
+
typeof channelUnread.readToSegment !== 'number' ||
|
|
8931
|
+
typeof channelUnread.lastMentionSegment !== 'number')
|
|
8932
|
+
return;
|
|
8933
|
+
const lastSegment = message.segment;
|
|
8934
|
+
const isMentionedInMessage = (_b = message.mentionedUsers) === null || _b === void 0 ? void 0 : _b.some(mention => {
|
|
8935
|
+
return (mention.type === 'channel' ||
|
|
8936
|
+
(mention.type === 'user' &&
|
|
8937
|
+
client.userId &&
|
|
8938
|
+
mention.userPublicIds.includes(client.userId)));
|
|
8939
|
+
});
|
|
8940
|
+
const lastMentionSegment = isMentionedInMessage
|
|
8941
|
+
? message.segment
|
|
8942
|
+
: channelUnread.lastMentionSegment;
|
|
8943
|
+
const updatedChannelUnread = Object.assign(Object.assign({}, channelUnread), { lastSegment, unreadCount: Math.max(lastSegment - channelUnread.readToSegment, 0), lastMentionSegment, isMentioned: !(channelUnread.readToSegment >= lastMentionSegment) });
|
|
8944
|
+
pushToCache(['channelUnread', 'get', message.channelId], updatedChannelUnread);
|
|
8945
|
+
fireEvent('local.channelUnread.updated', updatedChannelUnread);
|
|
8946
|
+
});
|
|
8947
|
+
}
|
|
8897
8948
|
// Update in cache
|
|
8898
8949
|
ingestInCache(payload);
|
|
8899
8950
|
payload.messages.forEach(message => {
|
|
@@ -16736,12 +16787,12 @@ var index$f = /*#__PURE__*/Object.freeze({
|
|
|
16736
16787
|
/**
|
|
16737
16788
|
* Internal used only
|
|
16738
16789
|
*
|
|
16739
|
-
* Fired when an {@link Amity.
|
|
16790
|
+
* Fired when an {@link Amity.channelUnreadInfo} has been updated.
|
|
16740
16791
|
*
|
|
16741
16792
|
* @param callback The function to call when the event was fired
|
|
16742
16793
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
16743
16794
|
*
|
|
16744
|
-
* @category
|
|
16795
|
+
* @category ChannelMarker Events
|
|
16745
16796
|
*/
|
|
16746
16797
|
const onChannelUnreadInfoUpdatedLocal = (callback) => {
|
|
16747
16798
|
const client = getActiveClient();
|
|
@@ -16754,12 +16805,12 @@ const onChannelUnreadInfoUpdatedLocal = (callback) => {
|
|
|
16754
16805
|
/**
|
|
16755
16806
|
* Internal used only
|
|
16756
16807
|
*
|
|
16757
|
-
* Fired when an {@link Amity.
|
|
16808
|
+
* Fired when an {@link Amity.ChannelUnread} has been updated.
|
|
16758
16809
|
*
|
|
16759
16810
|
* @param callback The function to call when the event was fired
|
|
16760
16811
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
16761
16812
|
*
|
|
16762
|
-
* @category
|
|
16813
|
+
* @category Channel Events
|
|
16763
16814
|
*/
|
|
16764
16815
|
const onChannelUnreadUpdatedLocal = (callback) => {
|
|
16765
16816
|
const client = getActiveClient();
|
|
@@ -17551,6 +17602,120 @@ const getChannels = (params, callback, config) => {
|
|
|
17551
17602
|
};
|
|
17552
17603
|
/* end_public_function */
|
|
17553
17604
|
|
|
17605
|
+
/**
|
|
17606
|
+
*
|
|
17607
|
+
* Calculate user unread from {@link Amity.ChannelUnread} objects
|
|
17608
|
+
*
|
|
17609
|
+
* @returns the {@link Amity.UserUnread} objects
|
|
17610
|
+
*
|
|
17611
|
+
* @category Channel API
|
|
17612
|
+
* @async
|
|
17613
|
+
*/
|
|
17614
|
+
const getTotalChannelsUnread$1 = () => {
|
|
17615
|
+
var _a;
|
|
17616
|
+
const client = getActiveClient();
|
|
17617
|
+
client.log('channel/getTotalChannelsUnread.locally');
|
|
17618
|
+
const cachedChannelsUnread = ((_a = queryCache(['channelUnread', 'get'])) === null || _a === void 0 ? void 0 : _a.filter(({ data }) => {
|
|
17619
|
+
return !data.isDeleted;
|
|
17620
|
+
})) || [];
|
|
17621
|
+
const totalChannelsUnread = (cachedChannelsUnread === null || cachedChannelsUnread === void 0 ? void 0 : cachedChannelsUnread.reduce((acc, { data }) => {
|
|
17622
|
+
acc.unreadCount += data.unreadCount;
|
|
17623
|
+
acc.isMentioned = acc.isMentioned || data.isMentioned;
|
|
17624
|
+
return acc;
|
|
17625
|
+
}, { unreadCount: 0, isMentioned: false })) || { unreadCount: 0, isMentioned: false };
|
|
17626
|
+
const cachedAt = client.cache && Date.now();
|
|
17627
|
+
return {
|
|
17628
|
+
data: totalChannelsUnread,
|
|
17629
|
+
cachedAt,
|
|
17630
|
+
};
|
|
17631
|
+
};
|
|
17632
|
+
|
|
17633
|
+
/* begin_public_function
|
|
17634
|
+
id: totalChannelsUnread.get
|
|
17635
|
+
*/
|
|
17636
|
+
/**
|
|
17637
|
+
* ```js
|
|
17638
|
+
* import { ChannelRepository } from '@amityco/ts-sdk';
|
|
17639
|
+
*
|
|
17640
|
+
* let totalChannelsUnread;
|
|
17641
|
+
*
|
|
17642
|
+
* const unsubscribe = ChannelRepository.getTotalChannelsUnread(response => {
|
|
17643
|
+
* unread = response.data;
|
|
17644
|
+
* });
|
|
17645
|
+
* ```
|
|
17646
|
+
*
|
|
17647
|
+
* Observe all mutation on a given {@link Amity.UserUnread}
|
|
17648
|
+
*
|
|
17649
|
+
* @returns An {@link Amity.UserUnread} function to run when willing to stop observing the message
|
|
17650
|
+
*
|
|
17651
|
+
* @category User Unread Live Object
|
|
17652
|
+
*
|
|
17653
|
+
*/
|
|
17654
|
+
const getTotalChannelsUnread = (callback) => {
|
|
17655
|
+
const { _id: userId } = getActiveUser();
|
|
17656
|
+
if (!userId)
|
|
17657
|
+
throw new ASCError('The _id has not been defined in ActiveUser', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
17658
|
+
const { log, cache } = getActiveClient();
|
|
17659
|
+
if (!cache) {
|
|
17660
|
+
console.log('For using Live Object feature you need to enable Cache!');
|
|
17661
|
+
}
|
|
17662
|
+
const timestamp = Date.now();
|
|
17663
|
+
log(`liveTotalChannelsUnread(tmpid: ${timestamp}) > listen`);
|
|
17664
|
+
const disposers = [];
|
|
17665
|
+
let isUnsyncedModel = false; // for messages
|
|
17666
|
+
let model;
|
|
17667
|
+
const dispatcher = (data) => {
|
|
17668
|
+
const { data: userUnread } = data;
|
|
17669
|
+
const callbackModel = userUnread
|
|
17670
|
+
? {
|
|
17671
|
+
unreadCount: userUnread.unreadCount,
|
|
17672
|
+
isMentioned: userUnread.isMentioned,
|
|
17673
|
+
}
|
|
17674
|
+
: undefined;
|
|
17675
|
+
model = callbackModel ? convertGetterPropsToStatic(callbackModel) : callbackModel;
|
|
17676
|
+
callback({
|
|
17677
|
+
data: callbackModel
|
|
17678
|
+
? Object.assign(Object.assign({}, callbackModel), { isMentioned: callbackModel.isMentioned }) : callbackModel,
|
|
17679
|
+
loading: data.loading,
|
|
17680
|
+
error: data.error,
|
|
17681
|
+
});
|
|
17682
|
+
};
|
|
17683
|
+
const realtimeRouter = (userUnread) => {
|
|
17684
|
+
if (isEqual(model, userUnread))
|
|
17685
|
+
return;
|
|
17686
|
+
dispatcher({
|
|
17687
|
+
loading: false,
|
|
17688
|
+
data: userUnread,
|
|
17689
|
+
});
|
|
17690
|
+
};
|
|
17691
|
+
const onFetch = () => {
|
|
17692
|
+
const query = createQuery(async () => getTotalChannelsUnread$1());
|
|
17693
|
+
runQuery(query, ({ error, data, loading, origin, cachedAt }) => {
|
|
17694
|
+
if (cachedAt === UNSYNCED_OBJECT_CACHED_AT_VALUE) {
|
|
17695
|
+
dispatcher({
|
|
17696
|
+
data,
|
|
17697
|
+
origin,
|
|
17698
|
+
loading: false,
|
|
17699
|
+
error: new ASCApiError(UNSYNCED_OBJECT_CACHED_AT_MESSAGE, 800800 /* Amity.ClientError.DISALOOW_UNSYNCED_OBJECT */, "error" /* Amity.ErrorLevel.ERROR */),
|
|
17700
|
+
});
|
|
17701
|
+
isUnsyncedModel = true;
|
|
17702
|
+
disposers.forEach(fn => fn());
|
|
17703
|
+
}
|
|
17704
|
+
else if (!isUnsyncedModel) {
|
|
17705
|
+
dispatcher({ loading, data, origin, error });
|
|
17706
|
+
}
|
|
17707
|
+
if (error) {
|
|
17708
|
+
disposers.forEach(fn => fn());
|
|
17709
|
+
}
|
|
17710
|
+
});
|
|
17711
|
+
};
|
|
17712
|
+
disposers.push(onChannelUnreadUpdatedLocal(realtimeRouter));
|
|
17713
|
+
onFetch();
|
|
17714
|
+
return () => {
|
|
17715
|
+
disposers.forEach(fn => fn());
|
|
17716
|
+
};
|
|
17717
|
+
};
|
|
17718
|
+
|
|
17554
17719
|
/* begin_public_function
|
|
17555
17720
|
id: channel.member.add
|
|
17556
17721
|
*/
|
|
@@ -18154,6 +18319,7 @@ var index$c = /*#__PURE__*/Object.freeze({
|
|
|
18154
18319
|
onChannelMemberRoleRemoved: onChannelMemberRoleRemoved,
|
|
18155
18320
|
getChannel: getChannel,
|
|
18156
18321
|
getChannels: getChannels,
|
|
18322
|
+
getTotalChannelsUnread: getTotalChannelsUnread,
|
|
18157
18323
|
MARKER_INCLUDED_CHANNEL_TYPE: MARKER_INCLUDED_CHANNEL_TYPE,
|
|
18158
18324
|
isUnreadCountSupport: isUnreadCountSupport,
|
|
18159
18325
|
convertFromRaw: convertFromRaw,
|