@sendbird/uikit-chat-hooks 2.0.1 → 2.0.2

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 (26) hide show
  1. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +14 -6
  2. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  3. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js +11 -7
  4. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  5. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +10 -14
  6. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  7. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +1 -12
  8. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  9. package/lib/commonjs/common/useMessageOutgoingStatus.js +1 -0
  10. package/lib/commonjs/common/useMessageOutgoingStatus.js.map +1 -1
  11. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +15 -7
  12. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  13. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js +11 -7
  14. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  15. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +12 -15
  16. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  17. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +2 -12
  18. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  19. package/lib/module/common/useMessageOutgoingStatus.js +1 -0
  20. package/lib/module/common/useMessageOutgoingStatus.js.map +1 -1
  21. package/package.json +3 -3
  22. package/src/channel/useGroupChannelList/useGroupChannelListWithCollection.ts +20 -8
  23. package/src/channel/useGroupChannelList/useGroupChannelListWithQuery.ts +10 -7
  24. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +11 -19
  25. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +1 -10
  26. package/src/common/useMessageOutgoingStatus.ts +1 -0
@@ -1,21 +1,14 @@
1
1
  import { useCallback, useEffect, useRef } from 'react';
2
2
 
3
- import { MessageCollectionInitPolicy, MessageFilter } from '@sendbird/chat/groupChannel';
3
+ import { MessageCollectionInitPolicy, MessageEventSource, MessageFilter } from '@sendbird/chat/groupChannel';
4
4
  import type {
5
5
  SendbirdChannel,
6
6
  SendbirdFileMessage,
7
7
  SendbirdGroupChannel,
8
8
  SendbirdMessageCollection,
9
9
  } from '@sendbird/uikit-utils';
10
- import {
11
- Logger,
12
- confirmAndMarkAsDelivered,
13
- confirmAndMarkAsRead,
14
- isDifferentChannel,
15
- useForceUpdate,
16
- } from '@sendbird/uikit-utils';
10
+ import { Logger, confirmAndMarkAsRead, isDifferentChannel, useForceUpdate } from '@sendbird/uikit-utils';
17
11
 
18
- import { useAppFeatures } from '../../common/useAppFeatures';
19
12
  import { useChannelHandler } from '../../handler/useChannelHandler';
20
13
  import type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';
21
14
  import { useActiveGroupChannel } from '../useActiveGroupChannel';
@@ -33,8 +26,6 @@ const createMessageCollection = (
33
26
  const HOOK_NAME = 'useGroupChannelMessagesWithCollection';
34
27
 
35
28
  export const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (sdk, channel, userId, options) => {
36
- const { deliveryReceiptEnabled } = useAppFeatures(sdk);
37
-
38
29
  const collectionRef = useRef<SendbirdMessageCollection>();
39
30
 
40
31
  // NOTE: We cannot determine the channel object of Sendbird SDK is stale or not, so force update af
@@ -57,12 +48,7 @@ export const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (s
57
48
 
58
49
  const channelMarkAs = async () => {
59
50
  try {
60
- if (deliveryReceiptEnabled) await confirmAndMarkAsDelivered(sdk, activeChannel);
61
- } catch (e) {
62
- Logger.warn(`[${HOOK_NAME}/channelMarkAs/Delivered]`, e);
63
- }
64
- try {
65
- await confirmAndMarkAsRead(sdk, [activeChannel]);
51
+ await confirmAndMarkAsRead([activeChannel]);
66
52
  } catch (e) {
67
53
  Logger.warn(`[${HOOK_NAME}/channelMarkAs/Read]`, e);
68
54
  }
@@ -84,8 +70,14 @@ export const useGroupChannelMessagesWithCollection: UseGroupChannelMessages = (s
84
70
  channelMarkAs();
85
71
 
86
72
  collectionRef.current?.setMessageCollectionHandler({
87
- onMessagesAdded: (_, channel, messages) => {
88
- channelMarkAs();
73
+ onMessagesAdded: (_, __, messages) => {
74
+ switch (_.source) {
75
+ case MessageEventSource.EVENT_MESSAGE_RECEIVED:
76
+ case MessageEventSource.EVENT_MESSAGE_SENT_SUCCESS:
77
+ case MessageEventSource.SYNC_MESSAGE_FILL:
78
+ channelMarkAs();
79
+ break;
80
+ }
89
81
  updateNextMessages(messages, false, sdk.currentUser.userId);
90
82
  updateChannel(channel);
91
83
  },
@@ -3,7 +3,6 @@ import { useCallback, useRef } from 'react';
3
3
  import type { SendbirdBaseChannel, SendbirdGroupChannel } from '@sendbird/uikit-utils';
4
4
  import {
5
5
  Logger,
6
- confirmAndMarkAsDelivered,
7
6
  confirmAndMarkAsRead,
8
7
  isDifferentChannel,
9
8
  useAsyncEffect,
@@ -11,7 +10,6 @@ import {
11
10
  } from '@sendbird/uikit-utils';
12
11
  import type { SendbirdPreviousMessageListQuery } from '@sendbird/uikit-utils';
13
12
 
14
- import { useAppFeatures } from '../../common/useAppFeatures';
15
13
  import { useChannelHandler } from '../../handler/useChannelHandler';
16
14
  import type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';
17
15
  import { useActiveGroupChannel } from '../useActiveGroupChannel';
@@ -30,8 +28,6 @@ const createMessageQuery = (
30
28
 
31
29
  const HOOK_NAME = 'useGroupChannelMessagesWithQuery';
32
30
  export const useGroupChannelMessagesWithQuery: UseGroupChannelMessages = (sdk, channel, userId, options) => {
33
- const { deliveryReceiptEnabled } = useAppFeatures(sdk);
34
-
35
31
  const queryRef = useRef<SendbirdPreviousMessageListQuery>();
36
32
 
37
33
  // NOTE: We cannot determine the channel object of Sendbird SDK is stale or not, so force update after setActiveChannel
@@ -54,12 +50,7 @@ export const useGroupChannelMessagesWithQuery: UseGroupChannelMessages = (sdk, c
54
50
 
55
51
  const channelMarkAs = async () => {
56
52
  try {
57
- if (deliveryReceiptEnabled) await confirmAndMarkAsDelivered(sdk, activeChannel);
58
- } catch (e) {
59
- Logger.warn(`[${HOOK_NAME}/channelMarkAs/Delivered]`, e);
60
- }
61
- try {
62
- await confirmAndMarkAsRead(sdk, [activeChannel]);
53
+ await confirmAndMarkAsRead([channel]);
63
54
  } catch (e) {
64
55
  Logger.warn(`[${HOOK_NAME}/channelMarkAs/Read]`, e);
65
56
  }
@@ -33,6 +33,7 @@ export const useMessageOutgoingStatus = (
33
33
  },
34
34
  });
35
35
 
36
+ if (channel.isBroadcast || channel.isSuper) return 'NONE';
36
37
  if (!message) return 'NONE';
37
38
 
38
39
  if ('sendingStatus' in message) {