@sendbird/uikit-chat-hooks 1.1.1 → 2.0.0-rc.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 (89) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/channel/useActiveGroupChannel.js +1 -1
  3. package/lib/commonjs/channel/useActiveGroupChannel.js.map +1 -1
  4. package/lib/commonjs/channel/useGroupChannelList/index.js +3 -0
  5. package/lib/commonjs/channel/useGroupChannelList/index.js.map +1 -1
  6. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +26 -27
  7. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  8. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js +8 -11
  9. package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  10. package/lib/commonjs/channel/useGroupChannelMessages/index.js +3 -0
  11. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
  12. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js.map +1 -1
  13. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +83 -87
  14. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  15. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +32 -20
  16. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  17. package/lib/commonjs/common/useMessageOutgoingStatus.js +8 -4
  18. package/lib/commonjs/common/useMessageOutgoingStatus.js.map +1 -1
  19. package/lib/commonjs/common/usePushTrigger.js +13 -5
  20. package/lib/commonjs/common/usePushTrigger.js.map +1 -1
  21. package/lib/commonjs/common/useTotalUnreadChannelCount.js +4 -2
  22. package/lib/commonjs/common/useTotalUnreadChannelCount.js.map +1 -1
  23. package/lib/commonjs/common/useTotalUnreadMessageCount.js +12 -15
  24. package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -1
  25. package/lib/commonjs/handler/useChannelHandler.js +5 -3
  26. package/lib/commonjs/handler/useChannelHandler.js.map +1 -1
  27. package/lib/commonjs/handler/useConnectionHandler.js +5 -3
  28. package/lib/commonjs/handler/useConnectionHandler.js.map +1 -1
  29. package/lib/commonjs/handler/useUserEventHandler.js +19 -6
  30. package/lib/commonjs/handler/useUserEventHandler.js.map +1 -1
  31. package/lib/commonjs/types.js.map +1 -1
  32. package/lib/module/channel/useActiveGroupChannel.js +1 -1
  33. package/lib/module/channel/useActiveGroupChannel.js.map +1 -1
  34. package/lib/module/channel/useGroupChannelList/index.js +2 -0
  35. package/lib/module/channel/useGroupChannelList/index.js.map +1 -1
  36. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +26 -28
  37. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
  38. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js +8 -12
  39. package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
  40. package/lib/module/channel/useGroupChannelMessages/index.js +2 -0
  41. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
  42. package/lib/module/channel/useGroupChannelMessages/reducer.js.map +1 -1
  43. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +81 -87
  44. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
  45. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +33 -21
  46. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
  47. package/lib/module/common/useMessageOutgoingStatus.js +8 -4
  48. package/lib/module/common/useMessageOutgoingStatus.js.map +1 -1
  49. package/lib/module/common/usePushTrigger.js +11 -5
  50. package/lib/module/common/usePushTrigger.js.map +1 -1
  51. package/lib/module/common/useTotalUnreadChannelCount.js +4 -2
  52. package/lib/module/common/useTotalUnreadChannelCount.js.map +1 -1
  53. package/lib/module/common/useTotalUnreadMessageCount.js +12 -17
  54. package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -1
  55. package/lib/module/handler/useChannelHandler.js +4 -3
  56. package/lib/module/handler/useChannelHandler.js.map +1 -1
  57. package/lib/module/handler/useConnectionHandler.js +4 -3
  58. package/lib/module/handler/useConnectionHandler.js.map +1 -1
  59. package/lib/module/handler/useUserEventHandler.js +19 -7
  60. package/lib/module/handler/useUserEventHandler.js.map +1 -1
  61. package/lib/module/types.js.map +1 -1
  62. package/lib/typescript/src/channel/useActiveGroupChannel.d.ts +2 -2
  63. package/lib/typescript/src/channel/useGroupChannelList/reducer.d.ts +1 -1
  64. package/lib/typescript/src/channel/useGroupChannelMessages/reducer.d.ts +4 -4
  65. package/lib/typescript/src/common/useMessageOutgoingStatus.d.ts +2 -2
  66. package/lib/typescript/src/common/usePushTrigger.d.ts +9 -3
  67. package/lib/typescript/src/common/useTotalUnreadMessageCount.d.ts +4 -4
  68. package/lib/typescript/src/common/useUserList.d.ts +1 -1
  69. package/lib/typescript/src/handler/useChannelHandler.d.ts +2 -2
  70. package/lib/typescript/src/handler/useConnectionHandler.d.ts +2 -2
  71. package/lib/typescript/src/handler/useUserEventHandler.d.ts +2 -3
  72. package/lib/typescript/src/types.d.ts +7 -8
  73. package/package.json +5 -5
  74. package/src/channel/useActiveGroupChannel.ts +1 -1
  75. package/src/channel/useGroupChannelList/index.ts +3 -0
  76. package/src/channel/useGroupChannelList/useGroupChannelListWithCollection.ts +22 -25
  77. package/src/channel/useGroupChannelList/useGroupChannelListWithQuery.ts +10 -15
  78. package/src/channel/useGroupChannelMessages/index.ts +3 -0
  79. package/src/channel/useGroupChannelMessages/reducer.ts +4 -9
  80. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +79 -78
  81. package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +59 -34
  82. package/src/common/useMessageOutgoingStatus.ts +8 -13
  83. package/src/common/usePushTrigger.ts +13 -7
  84. package/src/common/useTotalUnreadChannelCount.ts +4 -2
  85. package/src/common/useTotalUnreadMessageCount.ts +14 -25
  86. package/src/handler/useChannelHandler.ts +5 -5
  87. package/src/handler/useConnectionHandler.ts +5 -5
  88. package/src/handler/useUserEventHandler.ts +15 -8
  89. package/src/types.ts +10 -10
@@ -1,26 +1,33 @@
1
- import React, { useEffect } from 'react';
2
- import type Sendbird from 'sendbird';
1
+ import { useEffect, useLayoutEffect, useRef } from 'react';
3
2
 
3
+ import { UserEventHandler } from '@sendbird/chat';
4
4
  import type { SendbirdChatSDK } from '@sendbird/uikit-utils';
5
5
  import { Logger } from '@sendbird/uikit-utils';
6
6
 
7
7
  export const useUserEventHandler = (
8
8
  sdk: SendbirdChatSDK,
9
9
  handlerId: string,
10
- hookHandler: Partial<Sendbird.UserEventHandler>,
11
- deps: React.DependencyList = [],
10
+ hookHandler: Partial<UserEventHandler>,
12
11
  ) => {
12
+ const handlerRef = useRef(hookHandler);
13
+ useLayoutEffect(() => {
14
+ handlerRef.current = hookHandler;
15
+ });
16
+
13
17
  useEffect(() => {
14
18
  Logger.debug('[useUserEventHandler] hook called by', handlerId);
15
19
 
16
- const handler = new sdk.UserEventHandler();
20
+ const handler = new UserEventHandler();
17
21
  const handlerKeys = Object.keys(handler) as (keyof typeof handler)[];
22
+
18
23
  handlerKeys.forEach((key) => {
19
- const hookHandlerFn = hookHandler[key];
20
- if (hookHandlerFn) handler[key] = hookHandlerFn as () => unknown;
24
+ handler[key] = (...args: unknown[]) => {
25
+ // @ts-ignore
26
+ handlerRef.current[key]?.(...args);
27
+ };
21
28
  });
22
29
 
23
30
  sdk.addUserEventHandler(handlerId, handler);
24
31
  return () => sdk.removeUserEventHandler(handlerId);
25
- }, [sdk, handlerId, ...deps]);
32
+ }, [sdk, handlerId]);
26
33
  };
package/src/types.ts CHANGED
@@ -1,16 +1,16 @@
1
- import type Sendbird from 'sendbird';
2
-
3
1
  import type {
4
2
  SendbirdChatSDK,
5
3
  SendbirdError,
6
4
  SendbirdFileMessage,
7
- SendbirdFileMessageParams,
5
+ SendbirdFileMessageCreateParams,
8
6
  SendbirdGroupChannel,
9
7
  SendbirdGroupChannelCollection,
8
+ SendbirdGroupChannelListQuery,
10
9
  SendbirdMessage,
11
10
  SendbirdMessageCollection,
11
+ SendbirdPreviousMessageListQuery,
12
12
  SendbirdUserMessage,
13
- SendbirdUserMessageParams,
13
+ SendbirdUserMessageCreateParams,
14
14
  } from '@sendbird/uikit-utils';
15
15
 
16
16
  export interface CustomQueryInterface<Data> {
@@ -61,7 +61,7 @@ export interface UseGroupChannelList {
61
61
  };
62
62
  }
63
63
  export type UseGroupChannelListOptions = {
64
- queryCreator?: () => Sendbird.GroupChannelListQuery;
64
+ queryCreator?: () => SendbirdGroupChannelListQuery;
65
65
  collectionCreator?: () => SendbirdGroupChannelCollection;
66
66
  enableCollectionWithoutLocalCache?: boolean;
67
67
  };
@@ -134,7 +134,7 @@ export interface UseGroupChannelMessages {
134
134
  * @return pending message
135
135
  * */
136
136
  sendFileMessage: (
137
- params: SendbirdFileMessageParams,
137
+ params: SendbirdFileMessageCreateParams,
138
138
  onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,
139
139
  ) => Promise<SendbirdFileMessage>;
140
140
 
@@ -145,7 +145,7 @@ export interface UseGroupChannelMessages {
145
145
  * @return pending message
146
146
  * */
147
147
  sendUserMessage: (
148
- params: SendbirdUserMessageParams,
148
+ params: SendbirdUserMessageCreateParams,
149
149
  onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,
150
150
  ) => Promise<SendbirdUserMessage>;
151
151
 
@@ -155,7 +155,7 @@ export interface UseGroupChannelMessages {
155
155
  * @param params file message params
156
156
  * @return updated message
157
157
  * */
158
- updateFileMessage: (messageId: number, params: SendbirdFileMessageParams) => Promise<SendbirdFileMessage>;
158
+ updateFileMessage: (messageId: number, params: SendbirdFileMessageCreateParams) => Promise<SendbirdFileMessage>;
159
159
 
160
160
  /**
161
161
  * Update user message
@@ -163,7 +163,7 @@ export interface UseGroupChannelMessages {
163
163
  * @param params user message params
164
164
  * @return updated message
165
165
  * */
166
- updateUserMessage: (messageId: number, params: SendbirdUserMessageParams) => Promise<SendbirdUserMessage>;
166
+ updateUserMessage: (messageId: number, params: SendbirdUserMessageCreateParams) => Promise<SendbirdUserMessage>;
167
167
 
168
168
  /**
169
169
  * Resend failed message
@@ -188,7 +188,7 @@ export interface UseGroupChannelMessages {
188
188
 
189
189
  export type UseGroupChannelMessagesOptions = {
190
190
  sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;
191
- queryCreator?: () => Sendbird.PreviousMessageListQuery;
191
+ queryCreator?: () => SendbirdPreviousMessageListQuery;
192
192
  collectionCreator?: () => SendbirdMessageCollection;
193
193
  enableCollectionWithoutLocalCache?: boolean;
194
194
  onChannelDeleted?: () => void;