@amityco/ts-sdk-react-native 6.30.3-cae094b.0 → 6.30.4-48268a5.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 (43) hide show
  1. package/dist/channelRepository/events/onChannelCreated.d.ts +1 -16
  2. package/dist/channelRepository/events/onChannelCreated.d.ts.map +1 -1
  3. package/dist/channelRepository/events/onChannelDeleted.d.ts +1 -16
  4. package/dist/channelRepository/events/onChannelDeleted.d.ts.map +1 -1
  5. package/dist/channelRepository/events/onChannelFetched.d.ts +1 -16
  6. package/dist/channelRepository/events/onChannelFetched.d.ts.map +1 -1
  7. package/dist/channelRepository/events/onChannelJoined.d.ts +1 -16
  8. package/dist/channelRepository/events/onChannelJoined.d.ts.map +1 -1
  9. package/dist/channelRepository/events/onChannelLeft.d.ts +1 -16
  10. package/dist/channelRepository/events/onChannelLeft.d.ts.map +1 -1
  11. package/dist/channelRepository/events/onChannelMemberAdded.d.ts +0 -15
  12. package/dist/channelRepository/events/onChannelMemberAdded.d.ts.map +1 -1
  13. package/dist/channelRepository/events/onChannelMemberBanned.d.ts +1 -16
  14. package/dist/channelRepository/events/onChannelMemberBanned.d.ts.map +1 -1
  15. package/dist/channelRepository/events/onChannelMemberRemoved.d.ts +1 -16
  16. package/dist/channelRepository/events/onChannelMemberRemoved.d.ts.map +1 -1
  17. package/dist/channelRepository/events/onChannelMemberRoleAdded.d.ts +0 -15
  18. package/dist/channelRepository/events/onChannelMemberRoleAdded.d.ts.map +1 -1
  19. package/dist/channelRepository/events/onChannelMemberRoleRemoved.d.ts +0 -15
  20. package/dist/channelRepository/events/onChannelMemberRoleRemoved.d.ts.map +1 -1
  21. package/dist/channelRepository/events/onChannelMemberUnbanned.d.ts +1 -16
  22. package/dist/channelRepository/events/onChannelMemberUnbanned.d.ts.map +1 -1
  23. package/dist/channelRepository/events/onChannelMuted.d.ts +1 -16
  24. package/dist/channelRepository/events/onChannelMuted.d.ts.map +1 -1
  25. package/dist/channelRepository/events/onChannelUpdated.d.ts +0 -15
  26. package/dist/channelRepository/events/onChannelUpdated.d.ts.map +1 -1
  27. package/dist/index.cjs.js +276 -283
  28. package/dist/index.esm.js +276 -283
  29. package/dist/index.umd.js +3 -3
  30. package/package.json +1 -1
  31. package/src/channelRepository/events/onChannelCreated.ts +26 -22
  32. package/src/channelRepository/events/onChannelDeleted.ts +32 -28
  33. package/src/channelRepository/events/onChannelFetched.ts +29 -20
  34. package/src/channelRepository/events/onChannelJoined.ts +27 -23
  35. package/src/channelRepository/events/onChannelLeft.ts +39 -34
  36. package/src/channelRepository/events/onChannelMemberAdded.ts +34 -23
  37. package/src/channelRepository/events/onChannelMemberBanned.ts +19 -17
  38. package/src/channelRepository/events/onChannelMemberRemoved.ts +32 -23
  39. package/src/channelRepository/events/onChannelMemberRoleAdded.ts +32 -26
  40. package/src/channelRepository/events/onChannelMemberRoleRemoved.ts +30 -26
  41. package/src/channelRepository/events/onChannelMemberUnbanned.ts +31 -23
  42. package/src/channelRepository/events/onChannelMuted.ts +26 -22
  43. package/src/channelRepository/events/onChannelUpdated.ts +32 -29
@@ -4,35 +4,39 @@ import { createEventSubscriber } from '~/core/events';
4
4
 
5
5
  import { prepareChannelPayload } from '../utils';
6
6
 
7
- /**
8
- * ```js
9
- * import { onChannelMemberRoleRemoved } from '@amityco/ts-sdk-react-native'
10
- * const dispose = onChannelMemberRoleRemoved((channel, member) => {
11
- * // ...
12
- * })
13
- * ```
14
- *
15
- * Fired when any {@link Amity.channelUsers} 's role has been deleted to any {@link Amity.Channel}
16
- *
17
- * @param callback The function to call when the event was fired
18
- * @returns an {@link Amity.Unsubscriber} function to stop listening
19
- *
20
- * @category Channel Events
21
- */
7
+ type CallbackFn = (channel: Amity.InternalChannel, member: Amity.Membership<'channel'>) => void;
8
+ const callbacks: CallbackFn[] = [];
9
+ let mainDisposer: (() => void) | null = null;
10
+
11
+ const dispose = (cb: CallbackFn) => {
12
+ const index = callbacks.indexOf(cb);
13
+ if (index > -1) {
14
+ callbacks.splice(index, 1);
15
+ }
16
+ if (callbacks.length === 0) {
17
+ mainDisposer?.();
18
+ }
19
+ };
20
+
22
21
  export const onChannelMemberRoleRemoved = (
23
22
  callback: (channel: Amity.InternalChannel, member: Amity.Membership<'channel'>) => void,
24
23
  ): Amity.Unsubscriber => {
25
- const client = getActiveClient();
24
+ if (callbacks.length === 0) {
25
+ const client = getActiveClient();
26
+
27
+ const filter = async (payload: Amity.ProcessedChannelPayload) => {
28
+ const { channels, channelUsers } = payload;
29
+ callback(channels[0], channelUsers.find(channelUser => channelUser.membership === 'member')!);
30
+ };
26
31
 
27
- const filter = async (payload: Amity.ProcessedChannelPayload) => {
28
- const { channels, channelUsers } = payload;
29
- callback(channels[0], channelUsers.find(channelUser => channelUser.membership === 'member')!);
30
- };
32
+ mainDisposer = createEventSubscriber(
33
+ client,
34
+ 'onChannelMemberRoleRemoved',
35
+ 'local.channel-moderator.role-removed',
36
+ filter,
37
+ );
38
+ }
31
39
 
32
- return createEventSubscriber(
33
- client,
34
- 'onChannelMemberRoleRemoved',
35
- 'local.channel-moderator.role-removed',
36
- filter,
37
- );
40
+ callbacks.push(callback);
41
+ return () => dispose(callback);
38
42
  };
@@ -5,33 +5,41 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
5
5
 
6
6
  import { prepareChannelPayload } from '../utils';
7
7
 
8
- /**
9
- * ```js
10
- * import { onChannelMemberUnbanned } from '@amityco/ts-sdk-react-native'
11
- * const dispose = onChannelMemberUnbanned((channel, member) => {
12
- * // ...
13
- * })
14
- * ```
15
- *
16
- * Fired when any {@link Amity.InternalUser} has been unbanned from any {@link Amity.Channel}
17
- *
18
- * @param callback The function to call when the event was fired
19
- * @returns an {@link Amity.Unsubscriber} function to stop listening
20
- *
21
- * @category Channel Events
22
- */
8
+ type CallbackFn = (channel: Amity.InternalChannel, member: Amity.Membership<'channel'>) => void;
9
+ const callbacks: CallbackFn[] = [];
10
+ let mainDisposer: (() => void) | null = null;
11
+
12
+ const dispose = (cb: CallbackFn) => {
13
+ const index = callbacks.indexOf(cb);
14
+ if (index > -1) {
15
+ callbacks.splice(index, 1);
16
+ }
17
+ if (callbacks.length === 0) {
18
+ mainDisposer?.();
19
+ }
20
+ };
21
+
23
22
  export const onChannelMemberUnbanned = (
24
23
  callback: (channel: Amity.InternalChannel, member: Amity.Membership<'channel'>) => void,
25
24
  ) => {
26
- const client = getActiveClient();
25
+ if (callbacks.length === 0) {
26
+ const client = getActiveClient();
27
27
 
28
- const filter = async (payload: Amity.ChannelMembershipPayload) => {
29
- const preparedPayload = await prepareChannelPayload(payload);
30
- const { channels, channelUsers } = preparedPayload;
28
+ const filter = async (payload: Amity.ChannelMembershipPayload) => {
29
+ const preparedPayload = await prepareChannelPayload(payload);
30
+ const { channels, channelUsers } = preparedPayload;
31
31
 
32
- ingestInCache(preparedPayload);
33
- callback(channels[0], channelUsers.find(cu => cu.membership === 'none')!);
34
- };
32
+ ingestInCache(preparedPayload);
33
+ callbacks.forEach(cb => cb(channels[0], channelUsers.find(cu => cu.membership === 'none')!));
34
+ };
35
35
 
36
- return createEventSubscriber(client, 'onChannelMemberUnbanned', 'channel.unbanned', filter);
36
+ mainDisposer = createEventSubscriber(
37
+ client,
38
+ 'onChannelMemberUnbanned',
39
+ 'channel.unbanned',
40
+ filter,
41
+ );
42
+ }
43
+ callbacks.push(callback);
44
+ return () => dispose(callback);
37
45
  };
@@ -5,30 +5,34 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
5
5
 
6
6
  import { prepareChannelPayload } from '../utils';
7
7
 
8
- /**
9
- * ```js
10
- * import { onChannelMuted } from '@amityco/ts-sdk-react-native'
11
- * const dispose = onChannelMuted(channel => {
12
- * // ...
13
- * })
14
- * ```
15
- *
16
- * Fired when any {@link Amity.Channel} have been muted
17
- *
18
- * @param callback The function to call when the event was fired
19
- * @returns an {@link Amity.Unsubscriber} function to stop listening
20
- *
21
- * @category Channel Events
22
- */
8
+ type CallbackFn = Amity.Listener<Amity.InternalChannel>;
9
+ const callbacks: CallbackFn[] = [];
10
+ let mainDisposer: (() => void) | null = null;
11
+
12
+ const dispose = (cb: CallbackFn) => {
13
+ const index = callbacks.indexOf(cb);
14
+ if (index > -1) {
15
+ callbacks.splice(index, 1);
16
+ }
17
+ if (callbacks.length === 0) {
18
+ mainDisposer?.();
19
+ }
20
+ };
21
+
23
22
  export const onChannelMuted = (callback: Amity.Listener<Amity.InternalChannel>) => {
24
- const client = getActiveClient();
23
+ if (callbacks.length === 0) {
24
+ const client = getActiveClient();
25
+
26
+ const filter = async (payload: Amity.ChannelPayload) => {
27
+ const data = await prepareChannelPayload(payload);
25
28
 
26
- const filter = async (payload: Amity.ChannelPayload) => {
27
- const data = await prepareChannelPayload(payload);
29
+ ingestInCache(data);
30
+ callbacks.forEach(cb => cb(data.channels[0]));
31
+ };
28
32
 
29
- ingestInCache(data);
30
- callback(data.channels[0]);
31
- };
33
+ mainDisposer = createEventSubscriber(client, 'onChannelMuted', 'channel.setMuted', filter);
34
+ }
32
35
 
33
- return createEventSubscriber(client, 'onChannelMuted', 'channel.setMuted', filter);
36
+ callbacks.push(callback);
37
+ return () => dispose(callback);
34
38
  };
@@ -4,39 +4,42 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
4
4
 
5
5
  import { prepareChannelPayload } from '../utils';
6
6
 
7
- /**
8
- * ```js
9
- * import { onChannelUpdated } from '@amityco/ts-sdk-react-native'
10
- * const dispose = onChannelUpdated(channel => {
11
- * // ...
12
- * })
13
- * ```
14
- *
15
- * Fired when any {@link Amity.Channel} have been updated
16
- *
17
- * @param callback The function to call when the event was fired
18
- * @returns an {@link Amity.Unsubscriber} function to stop listening
19
- *
20
- * @category Channel Events
21
- */
7
+ type CallbackFn = Amity.Listener<Amity.InternalChannel>;
8
+ const callbacks: CallbackFn[] = [];
9
+ const mainDisposers: (() => void)[] = [];
10
+
11
+ const dispose = (cb: CallbackFn) => {
12
+ const index = callbacks.indexOf(cb);
13
+ if (index > -1) {
14
+ callbacks.splice(index, 1);
15
+ }
16
+ if (callbacks.length === 0) {
17
+ mainDisposers.forEach(fn => fn());
18
+ }
19
+ };
20
+
22
21
  export const onChannelUpdated = (callback: Amity.Listener<Amity.InternalChannel>) => {
23
22
  const client = getActiveClient();
24
23
 
25
- const filter = async (payload: Amity.ChannelPayload) => {
26
- const data = await prepareChannelPayload(payload);
24
+ if (callbacks.length === 0) {
25
+ const filter = async (payload: Amity.ChannelPayload) => {
26
+ const data = await prepareChannelPayload(payload);
27
+
28
+ ingestInCache(data);
29
+ callbacks.forEach(cb => cb(data.channels[0]));
30
+ };
27
31
 
28
- ingestInCache(data);
29
- callback(data.channels[0]);
30
- };
32
+ mainDisposers.push(
33
+ createEventSubscriber(client, 'onChannelUpdated', 'channel.updated', filter),
34
+ );
31
35
 
32
- const disposers = [
33
- createEventSubscriber(client, 'onChannelUpdated', 'channel.updated', filter),
34
- createEventSubscriber(client, 'onChannelUpdated', 'local.channel.updated', payload =>
35
- callback(payload.channels[0]),
36
- ),
37
- ];
36
+ mainDisposers.push(
37
+ createEventSubscriber(client, 'onChannelUpdated', 'local.channel.updated', payload =>
38
+ callbacks.forEach(cb => cb(payload.channels[0])),
39
+ ),
40
+ );
41
+ }
38
42
 
39
- return () => {
40
- disposers.forEach(fn => fn());
41
- };
43
+ callbacks.push(callback);
44
+ return () => dispose(callback);
42
45
  };