@amityco/ts-sdk 7.5.4-ec2fdd4.0 → 7.6.1-ada455cc.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/@types/domains/group.d.ts +2 -0
- package/dist/@types/domains/group.d.ts.map +1 -1
- package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.d.ts.map +1 -1
- package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.d.ts.map +1 -1
- package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.d.ts +2 -2
- package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.d.ts.map +1 -1
- package/dist/client/api/index.d.ts +1 -0
- package/dist/client/api/index.d.ts.map +1 -1
- package/dist/index.cjs.js +32 -3
- package/dist/index.esm.js +32 -3
- package/dist/index.umd.js +3 -3
- package/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -1
- package/dist/utils/linkedObject/channelMemberLinkedObject.d.ts +2 -0
- package/dist/utils/linkedObject/channelMemberLinkedObject.d.ts.map +1 -0
- package/dist/utils/linkedObject/index.d.ts +1 -0
- package/dist/utils/linkedObject/index.d.ts.map +1 -1
- package/dist/utils/tests/dummy/community.d.ts +2 -0
- package/dist/utils/tests/dummy/community.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/domains/channel.ts +1 -0
- package/src/@types/domains/group.ts +2 -0
- package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.ts +3 -1
- package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.ts +2 -1
- package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.ts +2 -2
- package/src/client/api/index.ts +2 -0
- package/src/utils/linkedObject/channelLinkedObject.ts +19 -0
- package/src/utils/linkedObject/channelMemberLinkedObject.ts +20 -0
- package/src/utils/linkedObject/index.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channelLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelLinkedObject.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,YAAa,MAAM,eAAe,KAAG,MAAM,OAqB1E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channelMemberLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/channelMemberLinkedObject.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB,kBACrB,MAAM,UAAU,CAAC,SAAS,CAAC,KACzC,MAAM,UAAU,CAAC,SAAS,CAc5B,CAAC"}
|
|
@@ -15,5 +15,6 @@ export declare const LinkedObject: {
|
|
|
15
15
|
community: (community: Amity.InternalCommunity) => Amity.Community;
|
|
16
16
|
invitation: (invitation: Amity.InternalInvitation) => Amity.Invitation;
|
|
17
17
|
joinRequest: (joinRequest: Amity.InternalJoinRequest) => Amity.JoinRequest;
|
|
18
|
+
channelMember: (channelMember: Amity.Membership<"channel">) => Amity.Membership<"channel">;
|
|
18
19
|
};
|
|
19
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/index.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;CAkBxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"community.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/community.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,SAajC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,SAoB/B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,SAI/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAa5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,+BAAuD,CAAC;AAE5F,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAO5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,+BAAuD,CAAC;AAE5F,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAO5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,+BAAuD,CAAC;AAE5F,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAM5D,CAAC;AAEF,eAAO,MAAM,qBAAqB,+BAAuD,CAAC;AAE1F,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAK5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,+BAAuD,CAAC;AAExF,eAAO,MAAM,qBAAqB;;;;;;;CAOjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,gBAOpC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;CAUtC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;CAU3C,CAAC;AAEF,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"community.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/community.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,SAajC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,SAoB/B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,SAI/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAa5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,+BAAuD,CAAC;AAE5F,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAO5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,+BAAuD,CAAC;AAE5F,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAO5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,+BAAuD,CAAC;AAE5F,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAM5D,CAAC;AAEF,eAAO,MAAM,qBAAqB,+BAAuD,CAAC;AAE1F,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAK5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,+BAAuD,CAAC;AAExF,eAAO,MAAM,qBAAqB;;;;;;;CAOjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,gBAOpC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;CAUtC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;CAU3C,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;GAG9B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;CAuBzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;CAuBzB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;CAqBlC,CAAC;AAEF,eAAO,MAAM,2BAA2B;;CAqBvC,CAAC"}
|
package/package.json
CHANGED
|
@@ -15,6 +15,8 @@ declare global {
|
|
|
15
15
|
|
|
16
16
|
type Member<T extends Amity.GroupType> = {
|
|
17
17
|
userId: Amity.InternalUser['userId'];
|
|
18
|
+
userInternalId: Amity.InternalUser['userInternalId'];
|
|
19
|
+
userPublicId: Amity.InternalUser['userPublicId'];
|
|
18
20
|
} & (T extends 'channel'
|
|
19
21
|
? {
|
|
20
22
|
channelId: Amity.Channel['channelId'];
|
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
} from '~/core/query';
|
|
24
24
|
import { prepareChannelPayload } from '~/channelRepository/utils';
|
|
25
25
|
import { onUserDeleted } from '~/channelRepository/events/onUserDeleted';
|
|
26
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
26
27
|
|
|
27
28
|
export class ChannelMemberLiveCollectionController extends LiveCollectionController<
|
|
28
29
|
'channelUser',
|
|
@@ -100,7 +101,8 @@ export class ChannelMemberLiveCollectionController extends LiveCollectionControl
|
|
|
100
101
|
collection.data
|
|
101
102
|
.map(id => pullFromCache<Amity.Membership<'channel'>>(['channelUsers', 'get', id])!)
|
|
102
103
|
.filter(Boolean)
|
|
103
|
-
.map(({ data }) => data)
|
|
104
|
+
.map(({ data }) => data)
|
|
105
|
+
.map(LinkedObject.channelMember) ?? [],
|
|
104
106
|
);
|
|
105
107
|
|
|
106
108
|
if (!this.shouldNotify(data) && origin === 'event') return;
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
import { filterByPropIntersection, filterBySearchTerm } from '~/core/query';
|
|
18
18
|
import { prepareChannelPayload } from '~/channelRepository/utils';
|
|
19
19
|
import { onUserDeleted } from '~/channelRepository/events/onUserDeleted';
|
|
20
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
20
21
|
|
|
21
22
|
export class SearchChannelMemberLiveCollectionController extends LiveCollectionController<
|
|
22
23
|
'channelUser',
|
|
@@ -94,7 +95,7 @@ export class SearchChannelMemberLiveCollectionController extends LiveCollectionC
|
|
|
94
95
|
collection.data
|
|
95
96
|
.map(id => pullFromCache<Amity.Membership<'channel'>>(['channelUsers', 'get', id])!)
|
|
96
97
|
.filter(Boolean)
|
|
97
|
-
.map(({ data }) => data) ?? [],
|
|
98
|
+
.map(({ data }) => LinkedObject.channelMember(data) ?? []),
|
|
98
99
|
);
|
|
99
100
|
|
|
100
101
|
if (!this.shouldNotify(data) && origin === 'event') return;
|
|
@@ -72,7 +72,7 @@ export class SearchChannelMemberQueryStreamController extends QueryStreamControl
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
reactor(action: string) {
|
|
75
|
-
return (channel: Amity.
|
|
75
|
+
return (channel: Amity.StaticInternalChannel, channelMember: Amity.Membership<'channel'>) => {
|
|
76
76
|
if (this.query.channelId !== channelMember.channelId) return;
|
|
77
77
|
|
|
78
78
|
const collection = pullFromCache<Amity.ChannelMembersLiveCollectionCache>(
|
|
@@ -100,7 +100,7 @@ export class SearchChannelMemberQueryStreamController extends QueryStreamControl
|
|
|
100
100
|
createSubscriber: {
|
|
101
101
|
fn: (
|
|
102
102
|
reactor: (
|
|
103
|
-
channel: Amity.
|
|
103
|
+
channel: Amity.StaticInternalChannel,
|
|
104
104
|
channelMember: Amity.Membership<'channel'>,
|
|
105
105
|
) => void,
|
|
106
106
|
) => Amity.Unsubscriber;
|
package/src/client/api/index.ts
CHANGED
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
import { markAsRead } from '~/channelRepository/internalApi/markAsRead';
|
|
2
2
|
import { shallowClone } from '../shallowClone';
|
|
3
|
+
import { queryCache } from '~/cache/api';
|
|
4
|
+
import { channelMemberLinkedObject } from './channelMemberLinkedObject';
|
|
3
5
|
|
|
4
6
|
export const channelLinkedObject = (channel: Amity.InternalChannel): Amity.Channel => {
|
|
7
|
+
let previewMembers: Amity.Membership<'channel'>[] = [];
|
|
8
|
+
|
|
9
|
+
if (channel.type === 'conversation') {
|
|
10
|
+
const channelUsers = queryCache<Amity.Membership<'channel'>>(['channelUsers', 'get']);
|
|
11
|
+
if (channelUsers && channelUsers?.length > 0) {
|
|
12
|
+
previewMembers = (
|
|
13
|
+
channelUsers?.filter(({ data }) => data.channelId === channel.channelId) ?? []
|
|
14
|
+
)
|
|
15
|
+
// sort in ascending order by userInternalId
|
|
16
|
+
.sort((a, b) => a.data.userInternalId.localeCompare(b.data.userInternalId))
|
|
17
|
+
// Select only first 4 members
|
|
18
|
+
.slice(0, 4)
|
|
19
|
+
.map(({ data }) => channelMemberLinkedObject(data));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
5
23
|
return shallowClone(channel, {
|
|
6
24
|
markAsRead: () => markAsRead(channel.channelInternalId),
|
|
25
|
+
previewMembers,
|
|
7
26
|
});
|
|
8
27
|
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { pullFromCache } from '~/cache/api/pullFromCache';
|
|
2
|
+
import { userLinkedObject } from './userLinkedObject';
|
|
3
|
+
|
|
4
|
+
export const channelMemberLinkedObject = (
|
|
5
|
+
channelMember: Amity.Membership<'channel'>,
|
|
6
|
+
): Amity.Membership<'channel'> => {
|
|
7
|
+
const getUser = (): Amity.User | undefined => {
|
|
8
|
+
const cacheKey = ['user', 'get', channelMember.userId];
|
|
9
|
+
const internalUser = pullFromCache<Amity.InternalUser>(cacheKey)?.data;
|
|
10
|
+
|
|
11
|
+
return internalUser ? userLinkedObject(internalUser) : undefined;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
return {
|
|
15
|
+
...channelMember,
|
|
16
|
+
get user() {
|
|
17
|
+
return getUser();
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -14,6 +14,7 @@ import { notificationTrayLinkedObject } from './notificationTrayLinkedObject';
|
|
|
14
14
|
import { communityLinkedObject } from './communityLinkedObject';
|
|
15
15
|
import { invitationLinkedObject } from './invitationLinkedObject';
|
|
16
16
|
import { joinRequestLinkedObject } from './joinRequestLinkedObject';
|
|
17
|
+
import { channelMemberLinkedObject } from './channelMemberLinkedObject';
|
|
17
18
|
|
|
18
19
|
export const LinkedObject = {
|
|
19
20
|
ad: adLinkedObject,
|
|
@@ -32,4 +33,5 @@ export const LinkedObject = {
|
|
|
32
33
|
community: communityLinkedObject,
|
|
33
34
|
invitation: invitationLinkedObject,
|
|
34
35
|
joinRequest: joinRequestLinkedObject,
|
|
36
|
+
channelMember: channelMemberLinkedObject,
|
|
35
37
|
};
|