@sendbird/uikit-chat-hooks 1.0.1 → 1.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 (96) hide show
  1. package/lib/commonjs/channel/useActiveGroupChannel.js +22 -0
  2. package/lib/commonjs/channel/useActiveGroupChannel.js.map +1 -0
  3. package/lib/commonjs/channel/useGroupChannelList.js +21 -0
  4. package/lib/commonjs/channel/useGroupChannelList.js.map +1 -0
  5. package/lib/commonjs/channel/useGroupChannelListWithCollection.js +148 -0
  6. package/lib/commonjs/channel/useGroupChannelListWithCollection.js.map +1 -0
  7. package/lib/commonjs/channel/useGroupChannelListWithQuery.js +130 -0
  8. package/lib/commonjs/channel/useGroupChannelListWithQuery.js.map +1 -0
  9. package/lib/commonjs/channel/useGroupChannelMessages/index.js +21 -0
  10. package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -0
  11. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js +158 -0
  12. package/lib/commonjs/channel/useGroupChannelMessages/reducer.js.map +1 -0
  13. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +305 -0
  14. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -0
  15. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +249 -0
  16. package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -0
  17. package/lib/commonjs/common/useAppFeatures.js +44 -0
  18. package/lib/commonjs/common/useAppFeatures.js.map +1 -0
  19. package/lib/commonjs/common/usePushTrigger.js +33 -0
  20. package/lib/commonjs/common/usePushTrigger.js.map +1 -0
  21. package/lib/commonjs/common/useTotalUnreadChannelCount.js +29 -0
  22. package/lib/commonjs/common/useTotalUnreadChannelCount.js.map +1 -0
  23. package/lib/commonjs/common/useTotalUnreadMessageCount.js +40 -0
  24. package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -0
  25. package/lib/commonjs/common/useUserList.js +110 -0
  26. package/lib/commonjs/common/useUserList.js.map +1 -0
  27. package/lib/commonjs/handler/useChannelHandler.js +29 -0
  28. package/lib/commonjs/handler/useChannelHandler.js.map +1 -0
  29. package/lib/commonjs/handler/useConnectionHandler.js +29 -0
  30. package/lib/commonjs/handler/useConnectionHandler.js.map +1 -0
  31. package/lib/commonjs/handler/useUserEventHandler.js +29 -0
  32. package/lib/commonjs/handler/useUserEventHandler.js.map +1 -0
  33. package/lib/commonjs/index.js +102 -0
  34. package/lib/commonjs/index.js.map +1 -0
  35. package/lib/commonjs/model/CustomQuery.js +28 -0
  36. package/lib/commonjs/model/CustomQuery.js.map +1 -0
  37. package/lib/commonjs/types.js +6 -0
  38. package/lib/commonjs/types.js.map +1 -0
  39. package/lib/module/channel/useActiveGroupChannel.js +12 -0
  40. package/lib/module/channel/useActiveGroupChannel.js.map +1 -0
  41. package/lib/module/channel/useGroupChannelList.js +10 -0
  42. package/lib/module/channel/useGroupChannelList.js.map +1 -0
  43. package/lib/module/channel/useGroupChannelListWithCollection.js +135 -0
  44. package/lib/module/channel/useGroupChannelListWithCollection.js.map +1 -0
  45. package/lib/module/channel/useGroupChannelListWithQuery.js +117 -0
  46. package/lib/module/channel/useGroupChannelListWithQuery.js.map +1 -0
  47. package/lib/module/channel/useGroupChannelMessages/index.js +10 -0
  48. package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -0
  49. package/lib/module/channel/useGroupChannelMessages/reducer.js +148 -0
  50. package/lib/module/channel/useGroupChannelMessages/reducer.js.map +1 -0
  51. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +289 -0
  52. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -0
  53. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +234 -0
  54. package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -0
  55. package/lib/module/common/useAppFeatures.js +33 -0
  56. package/lib/module/common/useAppFeatures.js.map +1 -0
  57. package/lib/module/common/usePushTrigger.js +22 -0
  58. package/lib/module/common/usePushTrigger.js.map +1 -0
  59. package/lib/module/common/useTotalUnreadChannelCount.js +17 -0
  60. package/lib/module/common/useTotalUnreadChannelCount.js.map +1 -0
  61. package/lib/module/common/useTotalUnreadMessageCount.js +28 -0
  62. package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -0
  63. package/lib/module/common/useUserList.js +100 -0
  64. package/lib/module/common/useUserList.js.map +1 -0
  65. package/lib/module/handler/useChannelHandler.js +17 -0
  66. package/lib/module/handler/useChannelHandler.js.map +1 -0
  67. package/lib/module/handler/useConnectionHandler.js +17 -0
  68. package/lib/module/handler/useConnectionHandler.js.map +1 -0
  69. package/lib/module/handler/useUserEventHandler.js +17 -0
  70. package/lib/module/handler/useUserEventHandler.js.map +1 -0
  71. package/lib/module/index.js +13 -0
  72. package/lib/module/index.js.map +1 -0
  73. package/lib/module/model/CustomQuery.js +19 -0
  74. package/lib/module/model/CustomQuery.js.map +1 -0
  75. package/lib/module/types.js +2 -0
  76. package/lib/module/types.js.map +1 -0
  77. package/lib/typescript/src/channel/useActiveGroupChannel.d.ts +5 -0
  78. package/lib/typescript/src/channel/useGroupChannelList.d.ts +2 -0
  79. package/lib/typescript/src/channel/useGroupChannelListWithCollection.d.ts +2 -0
  80. package/lib/typescript/src/channel/useGroupChannelListWithQuery.d.ts +2 -0
  81. package/lib/typescript/src/channel/useGroupChannelMessages/index.d.ts +2 -0
  82. package/lib/typescript/src/channel/useGroupChannelMessages/reducer.d.ts +15 -0
  83. package/lib/typescript/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.d.ts +2 -0
  84. package/lib/typescript/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.d.ts +2 -0
  85. package/lib/typescript/src/common/useAppFeatures.d.ts +7 -0
  86. package/lib/typescript/src/common/usePushTrigger.d.ts +7 -0
  87. package/lib/typescript/src/common/useTotalUnreadChannelCount.d.ts +6 -0
  88. package/lib/typescript/src/common/useTotalUnreadMessageCount.d.ts +8 -0
  89. package/lib/typescript/src/common/useUserList.d.ts +24 -0
  90. package/lib/typescript/src/handler/useChannelHandler.d.ts +4 -0
  91. package/lib/typescript/src/handler/useConnectionHandler.d.ts +4 -0
  92. package/lib/typescript/src/handler/useUserEventHandler.d.ts +4 -0
  93. package/lib/typescript/src/index.d.ts +13 -0
  94. package/lib/typescript/src/model/CustomQuery.d.ts +14 -0
  95. package/lib/typescript/src/types.d.ts +198 -0
  96. package/package.json +3 -3
@@ -0,0 +1,198 @@
1
+ import type Sendbird from 'sendbird';
2
+ import type { SendbirdChatSDK, SendbirdError, SendbirdFileMessage, SendbirdFileMessageParams, SendbirdGroupChannel, SendbirdGroupChannelCollection, SendbirdMessage, SendbirdMessageCollection, SendbirdUserMessage, SendbirdUserMessageParams } from '@sendbird/uikit-utils';
3
+ export interface CustomQueryInterface<Data> {
4
+ isLoading: boolean;
5
+ next: () => Promise<Data[]>;
6
+ hasNext: boolean;
7
+ }
8
+ export interface CustomBidirectionalQueryInterface<Data> {
9
+ isLoading: boolean;
10
+ next: () => Promise<Data[]>;
11
+ hasNext: () => boolean;
12
+ prev: () => Promise<Data[]>;
13
+ hasPrev: () => boolean;
14
+ }
15
+ /**
16
+ * @interface UseGroupChannelList
17
+ * @description interface for group channel list hook
18
+ * */
19
+ export interface UseGroupChannelList {
20
+ (sdk: SendbirdChatSDK, userId?: string, options?: UseGroupChannelListOptions): {
21
+ /**
22
+ * Loading state, only available on first render
23
+ * */
24
+ loading: boolean;
25
+ /**
26
+ * Refreshing state, status is changes when the refresh is called.
27
+ * */
28
+ refreshing: boolean;
29
+ /**
30
+ * Refresh, clear and reload messages from latest
31
+ * @return {Promise<void>}
32
+ * */
33
+ refresh: () => Promise<void>;
34
+ /**
35
+ * Update channel, update or insert channel to state
36
+ * @param {SendbirdGroupChannel} channel
37
+ * @return {void}
38
+ * */
39
+ update: (channel: SendbirdGroupChannel) => void;
40
+ /**
41
+ * Get group channels state
42
+ * */
43
+ groupChannels: SendbirdGroupChannel[];
44
+ /**
45
+ * Fetch next channels to state
46
+ * @return {Promise<void>}
47
+ * */
48
+ next: () => Promise<void>;
49
+ };
50
+ }
51
+ export declare type UseGroupChannelListOptions = {
52
+ sortComparator?: (a: SendbirdGroupChannel, b: SendbirdGroupChannel) => number;
53
+ queryCreator?: () => Sendbird.GroupChannelListQuery;
54
+ collectionCreator?: () => SendbirdGroupChannelCollection;
55
+ enableCollectionWithoutLocalCache?: boolean;
56
+ };
57
+ /**
58
+ * @interface UseGroupChannelMessages
59
+ * @description interface for group channel messages hook
60
+ * - Receive new messages from other users -> append to state(nextMessages)
61
+ * - onTopReached -> prev() -> fetch prev messages and append to state(messages)
62
+ * - onBottomReached -> next() -> nextMessages append to state(messages)
63
+ * */
64
+ export interface UseGroupChannelMessages {
65
+ (sdk: SendbirdChatSDK, channel: SendbirdGroupChannel, userId?: string, options?: UseGroupChannelMessagesOptions): {
66
+ /**
67
+ * Loading state, only available on first render
68
+ * */
69
+ loading: boolean;
70
+ /**
71
+ * Refreshing state, status is changes when the refresh is called.
72
+ * */
73
+ refreshing: boolean;
74
+ /**
75
+ * Refresh, clear and reload messages from latest
76
+ * @return {Promise<void>}
77
+ * */
78
+ refresh: () => Promise<void>;
79
+ /**
80
+ * Get messages, this state is for render
81
+ * For example, if a user receives a new messages while searching for an old message
82
+ * for this case, new messages will be included here.
83
+ * @return {SendbirdMessage[]}
84
+ * */
85
+ messages: SendbirdMessage[];
86
+ /**
87
+ * Fetch prev messages to state
88
+ * @return {Promise<void>}
89
+ * */
90
+ prev: () => Promise<void>;
91
+ /**
92
+ * Get messages, this state is for temporary data before render
93
+ * For example, if a user receives a new messages while searching for an old message
94
+ * for this case, new messages will be included here.
95
+ * */
96
+ nextMessages: SendbirdMessage[];
97
+ /**
98
+ * Get new messages from nextMessages
99
+ * A new message means a message that meets the below conditions
100
+ * - Not admin message
101
+ * - Not updated message
102
+ * - Not current user's message
103
+ * */
104
+ newMessagesFromMembers: SendbirdMessage[];
105
+ /**
106
+ * Fetch next messages to state
107
+ * @return {Promise<void>}
108
+ * */
109
+ next: () => Promise<void>;
110
+ /**
111
+ * Send file message
112
+ * @param params file message params
113
+ * @param callback sent message callback
114
+ * @return pending message
115
+ * */
116
+ sendFileMessage: (params: SendbirdFileMessageParams, onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void) => Promise<SendbirdFileMessage>;
117
+ /**
118
+ * Send user message
119
+ * @param params user message params
120
+ * @param callback sent message callback
121
+ * @return pending message
122
+ * */
123
+ sendUserMessage: (params: SendbirdUserMessageParams, onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void) => Promise<SendbirdUserMessage>;
124
+ /**
125
+ * Update file message
126
+ * @param messageId
127
+ * @param params file message params
128
+ * @return updated message
129
+ * */
130
+ updateFileMessage: (messageId: number, params: SendbirdFileMessageParams) => Promise<SendbirdFileMessage>;
131
+ /**
132
+ * Update user message
133
+ * @param messageId
134
+ * @param params user message params
135
+ * @return updated message
136
+ * */
137
+ updateUserMessage: (messageId: number, params: SendbirdUserMessageParams) => Promise<SendbirdUserMessage>;
138
+ /**
139
+ * Resend failed message
140
+ * @param failedMessage failed message to resend
141
+ * @return {Promise<void>}
142
+ * */
143
+ resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;
144
+ /**
145
+ * Delete message
146
+ * @param message sent or failed message
147
+ * @return {Promise<void>}
148
+ * */
149
+ deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;
150
+ /**
151
+ * Activated channel
152
+ * */
153
+ activeChannel: SendbirdGroupChannel;
154
+ };
155
+ }
156
+ export declare type UseGroupChannelMessagesOptions = {
157
+ sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;
158
+ queryCreator?: () => Sendbird.PreviousMessageListQuery;
159
+ collectionCreator?: () => SendbirdMessageCollection;
160
+ enableCollectionWithoutLocalCache?: boolean;
161
+ onChannelDeleted?: () => void;
162
+ };
163
+ /**
164
+ * @interface UseUserListReturn
165
+ * @description interface for user list hook return value
166
+ * */
167
+ export interface UseUserListReturn<User> {
168
+ /**
169
+ * Loading state, only available on first render
170
+ * */
171
+ loading: boolean;
172
+ /**
173
+ * Refreshing state, status is changes when the refresh is called.
174
+ * */
175
+ refreshing: boolean;
176
+ /**
177
+ * Error state
178
+ * */
179
+ error: unknown | null;
180
+ /**
181
+ * Refresh, clear and reload messages from latest
182
+ * @return {Promise<void>}
183
+ * */
184
+ refresh: () => Promise<void>;
185
+ /**
186
+ * Get users state
187
+ * */
188
+ users: User[];
189
+ /**
190
+ * Fetch next users to state
191
+ * @return {Promise<void>}
192
+ * */
193
+ next: () => Promise<void>;
194
+ }
195
+ export declare type UseUserListOptions<User> = {
196
+ sortComparator?: (a: User, b: User) => number;
197
+ queryCreator?: () => CustomQueryInterface<User>;
198
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sendbird/uikit-chat-hooks",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "React hooks that built with SendbirdChat SDK",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -38,7 +38,7 @@
38
38
  "access": "public"
39
39
  },
40
40
  "dependencies": {
41
- "@sendbird/uikit-utils": "1.0.1"
41
+ "@sendbird/uikit-utils": "1.0.2"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/react": "*",
@@ -69,5 +69,5 @@
69
69
  "readmeFile": "./README.md",
70
70
  "displayName": "@sendbird/uikit-chat-hooks"
71
71
  },
72
- "gitHead": "9627ff7449d05287c4fbf868e8210bb0a4f8b352"
72
+ "gitHead": "257ece5f957e03ff5c08b79780b33d9d19adc5de"
73
73
  }