@amityco/ts-sdk 7.1.1-c8d4edca.0 → 7.1.1-ce25d503.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 +1 -0
- 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/client/utils/ReadReceiptSync/readReceiptSyncEngine.d.ts.map +1 -1
- package/dist/index.cjs.js +168 -14
- package/dist/index.esm.js +168 -14
- 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 +2 -0
- 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 +1 -1
- package/src/client/utils/ReadReceiptSync/readReceiptSyncEngine.ts +0 -3
- package/src/marker/events/onChannelUnreadInfoUpdatedLocal.ts +2 -2
- package/src/messageRepository/events/onMessageCreated.ts +38 -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;
|
|
@@ -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,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC;YACpB,kBAAkB,EAAE,MAAM,CAAC;YAC3B,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":"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;IAiBlD,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,7 +5728,6 @@ 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
|
-
console.log('[New 🌟] Mark read => channel unread', channelUnread);
|
|
5733
5731
|
if (channelUnread && segment > channelUnread.readToSegment) {
|
|
5734
5732
|
channelUnread.readToSegment = segment;
|
|
5735
5733
|
channelUnread.unreadCount = Math.max(channelUnread.lastSegment - segment, 0);
|
|
@@ -7072,7 +7070,7 @@ const updateChannelUnread = ({ currentUserId, channels, channelUsers, }) => {
|
|
|
7072
7070
|
lastSegment: channels[i].messageCount,
|
|
7073
7071
|
readToSegment,
|
|
7074
7072
|
lastMentionedSegment,
|
|
7075
|
-
unreadCount: channels[i].messageCount - readToSegment,
|
|
7073
|
+
unreadCount: Math.max(channels[i].messageCount - readToSegment, 0),
|
|
7076
7074
|
isMentioned: lastMentionedSegment > readToSegment,
|
|
7077
7075
|
isDeleted: channels[i].isDeleted,
|
|
7078
7076
|
});
|
|
@@ -7919,12 +7917,21 @@ const onChannelDeleted = (callback) => {
|
|
|
7919
7917
|
const client = getActiveClient();
|
|
7920
7918
|
const filter = async (payload) => {
|
|
7921
7919
|
const data = await prepareChannelPayload(payload);
|
|
7922
|
-
|
|
7923
|
-
|
|
7920
|
+
const isConsistentMode = client.getMarkerSyncConsistentMode() && client.isUnreadCountEnabled;
|
|
7921
|
+
const isLegacyUnreadCount = client.useLegacyUnreadCount;
|
|
7922
|
+
data.channels.forEach(channel => {
|
|
7923
|
+
if (isConsistentMode) {
|
|
7924
7924
|
addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
|
|
7925
7925
|
deleteChannelUnreadByChannelId(channel.channelId);
|
|
7926
|
-
}
|
|
7927
|
-
|
|
7926
|
+
}
|
|
7927
|
+
else if (isLegacyUnreadCount) {
|
|
7928
|
+
const cacheKey = ['channelUnread', 'get', channel.channelId];
|
|
7929
|
+
const cache = pullFromCache(cacheKey);
|
|
7930
|
+
if (cache) {
|
|
7931
|
+
pushToCache(cacheKey, Object.assign(Object.assign({}, cache), { isDeleted: true }));
|
|
7932
|
+
}
|
|
7933
|
+
}
|
|
7934
|
+
});
|
|
7928
7935
|
ingestInCache(data);
|
|
7929
7936
|
callbacks$b.forEach(cb => cb(data.channels[0]));
|
|
7930
7937
|
};
|
|
@@ -8623,10 +8630,17 @@ const onChannelLeft = (callback) => {
|
|
|
8623
8630
|
const preparedPayload = await prepareChannelPayload(payload, {
|
|
8624
8631
|
isMessagePreviewUpdated: isLeftByMe,
|
|
8625
8632
|
});
|
|
8626
|
-
|
|
8633
|
+
const isConsistentMode = client.getMarkerSyncConsistentMode() && client.isUnreadCountEnabled;
|
|
8634
|
+
const isLegacyUnreadCount = client.useLegacyUnreadCount;
|
|
8635
|
+
if (isLeftByMe) {
|
|
8627
8636
|
preparedPayload.channels.forEach(channel => {
|
|
8628
|
-
|
|
8629
|
-
|
|
8637
|
+
if (isConsistentMode) {
|
|
8638
|
+
addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
|
|
8639
|
+
deleteChannelUnreadByChannelId(channel.channelId);
|
|
8640
|
+
}
|
|
8641
|
+
else if (isLegacyUnreadCount) {
|
|
8642
|
+
dropFromCache(['channelUnread', 'get', channel.channelId]);
|
|
8643
|
+
}
|
|
8630
8644
|
});
|
|
8631
8645
|
}
|
|
8632
8646
|
const { channels, channelUsers } = preparedPayload;
|
|
@@ -8894,6 +8908,31 @@ const onMessageCreatedMqtt = (callback) => {
|
|
|
8894
8908
|
reCalculateChannelUnreadInfo(message.channelId);
|
|
8895
8909
|
});
|
|
8896
8910
|
}
|
|
8911
|
+
if (client.useLegacyUnreadCount) {
|
|
8912
|
+
rawPayload.messages.forEach(message => {
|
|
8913
|
+
var _a, _b;
|
|
8914
|
+
const channelUnread = (_a = pullFromCache([
|
|
8915
|
+
'channelUnread',
|
|
8916
|
+
'get',
|
|
8917
|
+
message.channelId,
|
|
8918
|
+
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
8919
|
+
if (!channelUnread || channelUnread.lastSegment >= message.segment)
|
|
8920
|
+
return;
|
|
8921
|
+
const lastSegment = message.segment;
|
|
8922
|
+
const isMentionedInMessage = (_b = message.mentionedUsers) === null || _b === void 0 ? void 0 : _b.some(mention => {
|
|
8923
|
+
return (mention.type === 'channel' ||
|
|
8924
|
+
(mention.type === 'user' &&
|
|
8925
|
+
client.userId &&
|
|
8926
|
+
mention.userPublicIds.includes(client.userId)));
|
|
8927
|
+
});
|
|
8928
|
+
const lastMentionSegment = isMentionedInMessage
|
|
8929
|
+
? message.segment
|
|
8930
|
+
: channelUnread.lastMentionSegment;
|
|
8931
|
+
const updatedChannelUnread = Object.assign(Object.assign({}, channelUnread), { lastSegment, unreadCount: Math.max(lastSegment - channelUnread.readToSegment, 0), lastMentionSegment, isMentioned: !(channelUnread.readToSegment >= lastMentionSegment) });
|
|
8932
|
+
pushToCache(['channelUnread', 'get', message.channelId], updatedChannelUnread);
|
|
8933
|
+
fireEvent('local.channelUnread.updated', updatedChannelUnread);
|
|
8934
|
+
});
|
|
8935
|
+
}
|
|
8897
8936
|
// Update in cache
|
|
8898
8937
|
ingestInCache(payload);
|
|
8899
8938
|
payload.messages.forEach(message => {
|
|
@@ -16736,12 +16775,12 @@ var index$f = /*#__PURE__*/Object.freeze({
|
|
|
16736
16775
|
/**
|
|
16737
16776
|
* Internal used only
|
|
16738
16777
|
*
|
|
16739
|
-
* Fired when an {@link Amity.
|
|
16778
|
+
* Fired when an {@link Amity.channelUnreadInfo} has been updated.
|
|
16740
16779
|
*
|
|
16741
16780
|
* @param callback The function to call when the event was fired
|
|
16742
16781
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
16743
16782
|
*
|
|
16744
|
-
* @category
|
|
16783
|
+
* @category ChannelMarker Events
|
|
16745
16784
|
*/
|
|
16746
16785
|
const onChannelUnreadInfoUpdatedLocal = (callback) => {
|
|
16747
16786
|
const client = getActiveClient();
|
|
@@ -16754,12 +16793,12 @@ const onChannelUnreadInfoUpdatedLocal = (callback) => {
|
|
|
16754
16793
|
/**
|
|
16755
16794
|
* Internal used only
|
|
16756
16795
|
*
|
|
16757
|
-
* Fired when an {@link Amity.
|
|
16796
|
+
* Fired when an {@link Amity.ChannelUnread} has been updated.
|
|
16758
16797
|
*
|
|
16759
16798
|
* @param callback The function to call when the event was fired
|
|
16760
16799
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
16761
16800
|
*
|
|
16762
|
-
* @category
|
|
16801
|
+
* @category Channel Events
|
|
16763
16802
|
*/
|
|
16764
16803
|
const onChannelUnreadUpdatedLocal = (callback) => {
|
|
16765
16804
|
const client = getActiveClient();
|
|
@@ -17551,6 +17590,120 @@ const getChannels = (params, callback, config) => {
|
|
|
17551
17590
|
};
|
|
17552
17591
|
/* end_public_function */
|
|
17553
17592
|
|
|
17593
|
+
/**
|
|
17594
|
+
*
|
|
17595
|
+
* Calculate user unread from {@link Amity.ChannelUnread} objects
|
|
17596
|
+
*
|
|
17597
|
+
* @returns the {@link Amity.UserUnread} objects
|
|
17598
|
+
*
|
|
17599
|
+
* @category Channel API
|
|
17600
|
+
* @async
|
|
17601
|
+
*/
|
|
17602
|
+
const getTotalChannelsUnread$1 = () => {
|
|
17603
|
+
var _a;
|
|
17604
|
+
const client = getActiveClient();
|
|
17605
|
+
client.log('channel/getTotalChannelsUnread.locally');
|
|
17606
|
+
const cachedChannelsUnread = ((_a = queryCache(['channelUnread', 'get'])) === null || _a === void 0 ? void 0 : _a.filter(({ data }) => {
|
|
17607
|
+
return !data.isDeleted;
|
|
17608
|
+
})) || [];
|
|
17609
|
+
const totalChannelsUnread = (cachedChannelsUnread === null || cachedChannelsUnread === void 0 ? void 0 : cachedChannelsUnread.reduce((acc, { data }) => {
|
|
17610
|
+
acc.unreadCount += data.unreadCount;
|
|
17611
|
+
acc.isMentioned = acc.isMentioned || data.isMentioned;
|
|
17612
|
+
return acc;
|
|
17613
|
+
}, { unreadCount: 0, isMentioned: false })) || { unreadCount: 0, isMentioned: false };
|
|
17614
|
+
const cachedAt = client.cache && Date.now();
|
|
17615
|
+
return {
|
|
17616
|
+
data: totalChannelsUnread,
|
|
17617
|
+
cachedAt,
|
|
17618
|
+
};
|
|
17619
|
+
};
|
|
17620
|
+
|
|
17621
|
+
/* begin_public_function
|
|
17622
|
+
id: totalChannelsUnread.get
|
|
17623
|
+
*/
|
|
17624
|
+
/**
|
|
17625
|
+
* ```js
|
|
17626
|
+
* import { ChannelRepository } from '@amityco/ts-sdk';
|
|
17627
|
+
*
|
|
17628
|
+
* let totalChannelsUnread;
|
|
17629
|
+
*
|
|
17630
|
+
* const unsubscribe = ChannelRepository.getTotalChannelsUnread(response => {
|
|
17631
|
+
* unread = response.data;
|
|
17632
|
+
* });
|
|
17633
|
+
* ```
|
|
17634
|
+
*
|
|
17635
|
+
* Observe all mutation on a given {@link Amity.UserUnread}
|
|
17636
|
+
*
|
|
17637
|
+
* @returns An {@link Amity.UserUnread} function to run when willing to stop observing the message
|
|
17638
|
+
*
|
|
17639
|
+
* @category User Unread Live Object
|
|
17640
|
+
*
|
|
17641
|
+
*/
|
|
17642
|
+
const getTotalChannelsUnread = (callback) => {
|
|
17643
|
+
const { _id: userId } = getActiveUser();
|
|
17644
|
+
if (!userId)
|
|
17645
|
+
throw new ASCError('The _id has not been defined in ActiveUser', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
17646
|
+
const { log, cache } = getActiveClient();
|
|
17647
|
+
if (!cache) {
|
|
17648
|
+
console.log('For using Live Object feature you need to enable Cache!');
|
|
17649
|
+
}
|
|
17650
|
+
const timestamp = Date.now();
|
|
17651
|
+
log(`liveTotalChannelsUnread(tmpid: ${timestamp}) > listen`);
|
|
17652
|
+
const disposers = [];
|
|
17653
|
+
let isUnsyncedModel = false; // for messages
|
|
17654
|
+
let model;
|
|
17655
|
+
const dispatcher = (data) => {
|
|
17656
|
+
const { data: userUnread } = data;
|
|
17657
|
+
const callbackModel = userUnread
|
|
17658
|
+
? {
|
|
17659
|
+
unreadCount: userUnread.unreadCount,
|
|
17660
|
+
isMentioned: userUnread.isMentioned,
|
|
17661
|
+
}
|
|
17662
|
+
: undefined;
|
|
17663
|
+
model = callbackModel ? convertGetterPropsToStatic(callbackModel) : callbackModel;
|
|
17664
|
+
callback({
|
|
17665
|
+
data: callbackModel
|
|
17666
|
+
? Object.assign(Object.assign({}, callbackModel), { isMentioned: callbackModel.isMentioned }) : callbackModel,
|
|
17667
|
+
loading: data.loading,
|
|
17668
|
+
error: data.error,
|
|
17669
|
+
});
|
|
17670
|
+
};
|
|
17671
|
+
const realtimeRouter = (userUnread) => {
|
|
17672
|
+
if (isEqual(model, userUnread))
|
|
17673
|
+
return;
|
|
17674
|
+
dispatcher({
|
|
17675
|
+
loading: false,
|
|
17676
|
+
data: userUnread,
|
|
17677
|
+
});
|
|
17678
|
+
};
|
|
17679
|
+
const onFetch = () => {
|
|
17680
|
+
const query = createQuery(async () => getTotalChannelsUnread$1());
|
|
17681
|
+
runQuery(query, ({ error, data, loading, origin, cachedAt }) => {
|
|
17682
|
+
if (cachedAt === UNSYNCED_OBJECT_CACHED_AT_VALUE) {
|
|
17683
|
+
dispatcher({
|
|
17684
|
+
data,
|
|
17685
|
+
origin,
|
|
17686
|
+
loading: false,
|
|
17687
|
+
error: new ASCApiError(UNSYNCED_OBJECT_CACHED_AT_MESSAGE, 800800 /* Amity.ClientError.DISALOOW_UNSYNCED_OBJECT */, "error" /* Amity.ErrorLevel.ERROR */),
|
|
17688
|
+
});
|
|
17689
|
+
isUnsyncedModel = true;
|
|
17690
|
+
disposers.forEach(fn => fn());
|
|
17691
|
+
}
|
|
17692
|
+
else if (!isUnsyncedModel) {
|
|
17693
|
+
dispatcher({ loading, data, origin, error });
|
|
17694
|
+
}
|
|
17695
|
+
if (error) {
|
|
17696
|
+
disposers.forEach(fn => fn());
|
|
17697
|
+
}
|
|
17698
|
+
});
|
|
17699
|
+
};
|
|
17700
|
+
disposers.push(onChannelUnreadUpdatedLocal(realtimeRouter));
|
|
17701
|
+
onFetch();
|
|
17702
|
+
return () => {
|
|
17703
|
+
disposers.forEach(fn => fn());
|
|
17704
|
+
};
|
|
17705
|
+
};
|
|
17706
|
+
|
|
17554
17707
|
/* begin_public_function
|
|
17555
17708
|
id: channel.member.add
|
|
17556
17709
|
*/
|
|
@@ -18154,6 +18307,7 @@ var index$c = /*#__PURE__*/Object.freeze({
|
|
|
18154
18307
|
onChannelMemberRoleRemoved: onChannelMemberRoleRemoved,
|
|
18155
18308
|
getChannel: getChannel,
|
|
18156
18309
|
getChannels: getChannels,
|
|
18310
|
+
getTotalChannelsUnread: getTotalChannelsUnread,
|
|
18157
18311
|
MARKER_INCLUDED_CHANNEL_TYPE: MARKER_INCLUDED_CHANNEL_TYPE,
|
|
18158
18312
|
isUnreadCountSupport: isUnreadCountSupport,
|
|
18159
18313
|
convertFromRaw: convertFromRaw,
|
package/dist/index.esm.js
CHANGED
|
@@ -21719,7 +21719,6 @@ class MessageReadReceiptSyncEngine {
|
|
|
21719
21719
|
if (this.jobQueue.length === 0 || this.isActive === false)
|
|
21720
21720
|
return;
|
|
21721
21721
|
const readReceipts = this.getReadReceipts();
|
|
21722
|
-
console.log('[New 🌟 readReceipts] Sync read receipts', readReceipts);
|
|
21723
21722
|
if (readReceipts) {
|
|
21724
21723
|
this.markReadApi(readReceipts);
|
|
21725
21724
|
}
|
|
@@ -21821,7 +21820,6 @@ class MessageReadReceiptSyncEngine {
|
|
|
21821
21820
|
// Step 1: Optimistic update of channelUnread.readToSegment to message.segment and update unreadCount value
|
|
21822
21821
|
const cacheKey = ['channelUnread', 'get', channelId];
|
|
21823
21822
|
const channelUnread = (_a = pullFromCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
21824
|
-
console.log('[New 🌟] Mark read => channel unread', channelUnread);
|
|
21825
21823
|
if (channelUnread && segment > channelUnread.readToSegment) {
|
|
21826
21824
|
channelUnread.readToSegment = segment;
|
|
21827
21825
|
channelUnread.unreadCount = Math.max(channelUnread.lastSegment - segment, 0);
|
|
@@ -23164,7 +23162,7 @@ const updateChannelUnread = ({ currentUserId, channels, channelUsers, }) => {
|
|
|
23164
23162
|
lastSegment: channels[i].messageCount,
|
|
23165
23163
|
readToSegment,
|
|
23166
23164
|
lastMentionedSegment,
|
|
23167
|
-
unreadCount: channels[i].messageCount - readToSegment,
|
|
23165
|
+
unreadCount: Math.max(channels[i].messageCount - readToSegment, 0),
|
|
23168
23166
|
isMentioned: lastMentionedSegment > readToSegment,
|
|
23169
23167
|
isDeleted: channels[i].isDeleted,
|
|
23170
23168
|
});
|
|
@@ -24011,12 +24009,21 @@ const onChannelDeleted = (callback) => {
|
|
|
24011
24009
|
const client = getActiveClient();
|
|
24012
24010
|
const filter = async (payload) => {
|
|
24013
24011
|
const data = await prepareChannelPayload(payload);
|
|
24014
|
-
|
|
24015
|
-
|
|
24012
|
+
const isConsistentMode = client.getMarkerSyncConsistentMode() && client.isUnreadCountEnabled;
|
|
24013
|
+
const isLegacyUnreadCount = client.useLegacyUnreadCount;
|
|
24014
|
+
data.channels.forEach(channel => {
|
|
24015
|
+
if (isConsistentMode) {
|
|
24016
24016
|
addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
|
|
24017
24017
|
deleteChannelUnreadByChannelId(channel.channelId);
|
|
24018
|
-
}
|
|
24019
|
-
|
|
24018
|
+
}
|
|
24019
|
+
else if (isLegacyUnreadCount) {
|
|
24020
|
+
const cacheKey = ['channelUnread', 'get', channel.channelId];
|
|
24021
|
+
const cache = pullFromCache(cacheKey);
|
|
24022
|
+
if (cache) {
|
|
24023
|
+
pushToCache(cacheKey, Object.assign(Object.assign({}, cache), { isDeleted: true }));
|
|
24024
|
+
}
|
|
24025
|
+
}
|
|
24026
|
+
});
|
|
24020
24027
|
ingestInCache(data);
|
|
24021
24028
|
callbacks$b.forEach(cb => cb(data.channels[0]));
|
|
24022
24029
|
};
|
|
@@ -24715,10 +24722,17 @@ const onChannelLeft = (callback) => {
|
|
|
24715
24722
|
const preparedPayload = await prepareChannelPayload(payload, {
|
|
24716
24723
|
isMessagePreviewUpdated: isLeftByMe,
|
|
24717
24724
|
});
|
|
24718
|
-
|
|
24725
|
+
const isConsistentMode = client.getMarkerSyncConsistentMode() && client.isUnreadCountEnabled;
|
|
24726
|
+
const isLegacyUnreadCount = client.useLegacyUnreadCount;
|
|
24727
|
+
if (isLeftByMe) {
|
|
24719
24728
|
preparedPayload.channels.forEach(channel => {
|
|
24720
|
-
|
|
24721
|
-
|
|
24729
|
+
if (isConsistentMode) {
|
|
24730
|
+
addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
|
|
24731
|
+
deleteChannelUnreadByChannelId(channel.channelId);
|
|
24732
|
+
}
|
|
24733
|
+
else if (isLegacyUnreadCount) {
|
|
24734
|
+
dropFromCache(['channelUnread', 'get', channel.channelId]);
|
|
24735
|
+
}
|
|
24722
24736
|
});
|
|
24723
24737
|
}
|
|
24724
24738
|
const { channels, channelUsers } = preparedPayload;
|
|
@@ -24986,6 +25000,31 @@ const onMessageCreatedMqtt = (callback) => {
|
|
|
24986
25000
|
reCalculateChannelUnreadInfo(message.channelId);
|
|
24987
25001
|
});
|
|
24988
25002
|
}
|
|
25003
|
+
if (client.useLegacyUnreadCount) {
|
|
25004
|
+
rawPayload.messages.forEach(message => {
|
|
25005
|
+
var _a, _b;
|
|
25006
|
+
const channelUnread = (_a = pullFromCache([
|
|
25007
|
+
'channelUnread',
|
|
25008
|
+
'get',
|
|
25009
|
+
message.channelId,
|
|
25010
|
+
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
25011
|
+
if (!channelUnread || channelUnread.lastSegment >= message.segment)
|
|
25012
|
+
return;
|
|
25013
|
+
const lastSegment = message.segment;
|
|
25014
|
+
const isMentionedInMessage = (_b = message.mentionedUsers) === null || _b === void 0 ? void 0 : _b.some(mention => {
|
|
25015
|
+
return (mention.type === 'channel' ||
|
|
25016
|
+
(mention.type === 'user' &&
|
|
25017
|
+
client.userId &&
|
|
25018
|
+
mention.userPublicIds.includes(client.userId)));
|
|
25019
|
+
});
|
|
25020
|
+
const lastMentionSegment = isMentionedInMessage
|
|
25021
|
+
? message.segment
|
|
25022
|
+
: channelUnread.lastMentionSegment;
|
|
25023
|
+
const updatedChannelUnread = Object.assign(Object.assign({}, channelUnread), { lastSegment, unreadCount: Math.max(lastSegment - channelUnread.readToSegment, 0), lastMentionSegment, isMentioned: !(channelUnread.readToSegment >= lastMentionSegment) });
|
|
25024
|
+
pushToCache(['channelUnread', 'get', message.channelId], updatedChannelUnread);
|
|
25025
|
+
fireEvent('local.channelUnread.updated', updatedChannelUnread);
|
|
25026
|
+
});
|
|
25027
|
+
}
|
|
24989
25028
|
// Update in cache
|
|
24990
25029
|
ingestInCache(payload);
|
|
24991
25030
|
payload.messages.forEach(message => {
|
|
@@ -32828,12 +32867,12 @@ var index$f = /*#__PURE__*/Object.freeze({
|
|
|
32828
32867
|
/**
|
|
32829
32868
|
* Internal used only
|
|
32830
32869
|
*
|
|
32831
|
-
* Fired when an {@link Amity.
|
|
32870
|
+
* Fired when an {@link Amity.channelUnreadInfo} has been updated.
|
|
32832
32871
|
*
|
|
32833
32872
|
* @param callback The function to call when the event was fired
|
|
32834
32873
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
32835
32874
|
*
|
|
32836
|
-
* @category
|
|
32875
|
+
* @category ChannelMarker Events
|
|
32837
32876
|
*/
|
|
32838
32877
|
const onChannelUnreadInfoUpdatedLocal = (callback) => {
|
|
32839
32878
|
const client = getActiveClient();
|
|
@@ -32846,12 +32885,12 @@ const onChannelUnreadInfoUpdatedLocal = (callback) => {
|
|
|
32846
32885
|
/**
|
|
32847
32886
|
* Internal used only
|
|
32848
32887
|
*
|
|
32849
|
-
* Fired when an {@link Amity.
|
|
32888
|
+
* Fired when an {@link Amity.ChannelUnread} has been updated.
|
|
32850
32889
|
*
|
|
32851
32890
|
* @param callback The function to call when the event was fired
|
|
32852
32891
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
32853
32892
|
*
|
|
32854
|
-
* @category
|
|
32893
|
+
* @category Channel Events
|
|
32855
32894
|
*/
|
|
32856
32895
|
const onChannelUnreadUpdatedLocal = (callback) => {
|
|
32857
32896
|
const client = getActiveClient();
|
|
@@ -33643,6 +33682,120 @@ const getChannels = (params, callback, config) => {
|
|
|
33643
33682
|
};
|
|
33644
33683
|
/* end_public_function */
|
|
33645
33684
|
|
|
33685
|
+
/**
|
|
33686
|
+
*
|
|
33687
|
+
* Calculate user unread from {@link Amity.ChannelUnread} objects
|
|
33688
|
+
*
|
|
33689
|
+
* @returns the {@link Amity.UserUnread} objects
|
|
33690
|
+
*
|
|
33691
|
+
* @category Channel API
|
|
33692
|
+
* @async
|
|
33693
|
+
*/
|
|
33694
|
+
const getTotalChannelsUnread$1 = () => {
|
|
33695
|
+
var _a;
|
|
33696
|
+
const client = getActiveClient();
|
|
33697
|
+
client.log('channel/getTotalChannelsUnread.locally');
|
|
33698
|
+
const cachedChannelsUnread = ((_a = queryCache(['channelUnread', 'get'])) === null || _a === void 0 ? void 0 : _a.filter(({ data }) => {
|
|
33699
|
+
return !data.isDeleted;
|
|
33700
|
+
})) || [];
|
|
33701
|
+
const totalChannelsUnread = (cachedChannelsUnread === null || cachedChannelsUnread === void 0 ? void 0 : cachedChannelsUnread.reduce((acc, { data }) => {
|
|
33702
|
+
acc.unreadCount += data.unreadCount;
|
|
33703
|
+
acc.isMentioned = acc.isMentioned || data.isMentioned;
|
|
33704
|
+
return acc;
|
|
33705
|
+
}, { unreadCount: 0, isMentioned: false })) || { unreadCount: 0, isMentioned: false };
|
|
33706
|
+
const cachedAt = client.cache && Date.now();
|
|
33707
|
+
return {
|
|
33708
|
+
data: totalChannelsUnread,
|
|
33709
|
+
cachedAt,
|
|
33710
|
+
};
|
|
33711
|
+
};
|
|
33712
|
+
|
|
33713
|
+
/* begin_public_function
|
|
33714
|
+
id: totalChannelsUnread.get
|
|
33715
|
+
*/
|
|
33716
|
+
/**
|
|
33717
|
+
* ```js
|
|
33718
|
+
* import { ChannelRepository } from '@amityco/ts-sdk';
|
|
33719
|
+
*
|
|
33720
|
+
* let totalChannelsUnread;
|
|
33721
|
+
*
|
|
33722
|
+
* const unsubscribe = ChannelRepository.getTotalChannelsUnread(response => {
|
|
33723
|
+
* unread = response.data;
|
|
33724
|
+
* });
|
|
33725
|
+
* ```
|
|
33726
|
+
*
|
|
33727
|
+
* Observe all mutation on a given {@link Amity.UserUnread}
|
|
33728
|
+
*
|
|
33729
|
+
* @returns An {@link Amity.UserUnread} function to run when willing to stop observing the message
|
|
33730
|
+
*
|
|
33731
|
+
* @category User Unread Live Object
|
|
33732
|
+
*
|
|
33733
|
+
*/
|
|
33734
|
+
const getTotalChannelsUnread = (callback) => {
|
|
33735
|
+
const { _id: userId } = getActiveUser();
|
|
33736
|
+
if (!userId)
|
|
33737
|
+
throw new ASCError('The _id has not been defined in ActiveUser', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
33738
|
+
const { log, cache } = getActiveClient();
|
|
33739
|
+
if (!cache) {
|
|
33740
|
+
console.log('For using Live Object feature you need to enable Cache!');
|
|
33741
|
+
}
|
|
33742
|
+
const timestamp = Date.now();
|
|
33743
|
+
log(`liveTotalChannelsUnread(tmpid: ${timestamp}) > listen`);
|
|
33744
|
+
const disposers = [];
|
|
33745
|
+
let isUnsyncedModel = false; // for messages
|
|
33746
|
+
let model;
|
|
33747
|
+
const dispatcher = (data) => {
|
|
33748
|
+
const { data: userUnread } = data;
|
|
33749
|
+
const callbackModel = userUnread
|
|
33750
|
+
? {
|
|
33751
|
+
unreadCount: userUnread.unreadCount,
|
|
33752
|
+
isMentioned: userUnread.isMentioned,
|
|
33753
|
+
}
|
|
33754
|
+
: undefined;
|
|
33755
|
+
model = callbackModel ? convertGetterPropsToStatic(callbackModel) : callbackModel;
|
|
33756
|
+
callback({
|
|
33757
|
+
data: callbackModel
|
|
33758
|
+
? Object.assign(Object.assign({}, callbackModel), { isMentioned: callbackModel.isMentioned }) : callbackModel,
|
|
33759
|
+
loading: data.loading,
|
|
33760
|
+
error: data.error,
|
|
33761
|
+
});
|
|
33762
|
+
};
|
|
33763
|
+
const realtimeRouter = (userUnread) => {
|
|
33764
|
+
if (isEqual(model, userUnread))
|
|
33765
|
+
return;
|
|
33766
|
+
dispatcher({
|
|
33767
|
+
loading: false,
|
|
33768
|
+
data: userUnread,
|
|
33769
|
+
});
|
|
33770
|
+
};
|
|
33771
|
+
const onFetch = () => {
|
|
33772
|
+
const query = createQuery(async () => getTotalChannelsUnread$1());
|
|
33773
|
+
runQuery(query, ({ error, data, loading, origin, cachedAt }) => {
|
|
33774
|
+
if (cachedAt === UNSYNCED_OBJECT_CACHED_AT_VALUE) {
|
|
33775
|
+
dispatcher({
|
|
33776
|
+
data,
|
|
33777
|
+
origin,
|
|
33778
|
+
loading: false,
|
|
33779
|
+
error: new ASCApiError(UNSYNCED_OBJECT_CACHED_AT_MESSAGE, 800800 /* Amity.ClientError.DISALOOW_UNSYNCED_OBJECT */, "error" /* Amity.ErrorLevel.ERROR */),
|
|
33780
|
+
});
|
|
33781
|
+
isUnsyncedModel = true;
|
|
33782
|
+
disposers.forEach(fn => fn());
|
|
33783
|
+
}
|
|
33784
|
+
else if (!isUnsyncedModel) {
|
|
33785
|
+
dispatcher({ loading, data, origin, error });
|
|
33786
|
+
}
|
|
33787
|
+
if (error) {
|
|
33788
|
+
disposers.forEach(fn => fn());
|
|
33789
|
+
}
|
|
33790
|
+
});
|
|
33791
|
+
};
|
|
33792
|
+
disposers.push(onChannelUnreadUpdatedLocal(realtimeRouter));
|
|
33793
|
+
onFetch();
|
|
33794
|
+
return () => {
|
|
33795
|
+
disposers.forEach(fn => fn());
|
|
33796
|
+
};
|
|
33797
|
+
};
|
|
33798
|
+
|
|
33646
33799
|
/* begin_public_function
|
|
33647
33800
|
id: channel.member.add
|
|
33648
33801
|
*/
|
|
@@ -34246,6 +34399,7 @@ var index$c = /*#__PURE__*/Object.freeze({
|
|
|
34246
34399
|
onChannelMemberRoleRemoved: onChannelMemberRoleRemoved,
|
|
34247
34400
|
getChannel: getChannel,
|
|
34248
34401
|
getChannels: getChannels,
|
|
34402
|
+
getTotalChannelsUnread: getTotalChannelsUnread,
|
|
34249
34403
|
MARKER_INCLUDED_CHANNEL_TYPE: MARKER_INCLUDED_CHANNEL_TYPE,
|
|
34250
34404
|
isUnreadCountSupport: isUnreadCountSupport,
|
|
34251
34405
|
convertFromRaw: convertFromRaw,
|