@sendbird/uikit-chat-hooks 2.4.1 → 2.4.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.
- package/README.md +2 -2
- package/lib/commonjs/channel/useGroupChannel.js +0 -4
- package/lib/commonjs/channel/useGroupChannel.js.map +1 -1
- package/lib/commonjs/channel/useGroupChannelList/index.js +0 -5
- package/lib/commonjs/channel/useGroupChannelList/index.js.map +1 -1
- package/lib/commonjs/channel/useGroupChannelList/reducer.js +12 -29
- package/lib/commonjs/channel/useGroupChannelList/reducer.js.map +1 -1
- package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js +1 -22
- package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
- package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js +1 -18
- package/lib/commonjs/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
- package/lib/commonjs/channel/useGroupChannelMessages/index.js +0 -5
- package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -1
- package/lib/commonjs/channel/useGroupChannelMessages/reducer.js +18 -28
- package/lib/commonjs/channel/useGroupChannelMessages/reducer.js.map +1 -1
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +8 -37
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +21 -49
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
- package/lib/commonjs/channel/useOpenChannel.js +0 -4
- package/lib/commonjs/channel/useOpenChannel.js.map +1 -1
- package/lib/commonjs/channel/useOpenChannelList/index.js +0 -3
- package/lib/commonjs/channel/useOpenChannelList/index.js.map +1 -1
- package/lib/commonjs/channel/useOpenChannelList/reducer.js +2 -21
- package/lib/commonjs/channel/useOpenChannelList/reducer.js.map +1 -1
- package/lib/commonjs/channel/useOpenChannelList/useOpenChannelListWithQuery.js +1 -18
- package/lib/commonjs/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
- package/lib/commonjs/channel/useOpenChannelMessages/index.js +0 -3
- package/lib/commonjs/channel/useOpenChannelMessages/index.js.map +1 -1
- package/lib/commonjs/channel/useOpenChannelMessages/reducer.js +18 -28
- package/lib/commonjs/channel/useOpenChannelMessages/reducer.js.map +1 -1
- package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -30
- package/lib/commonjs/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
- package/lib/commonjs/common/useAppFeatures.js +0 -3
- package/lib/commonjs/common/useAppFeatures.js.map +1 -1
- package/lib/commonjs/common/useMessageOutgoingStatus.js +0 -11
- package/lib/commonjs/common/useMessageOutgoingStatus.js.map +1 -1
- package/lib/commonjs/common/usePushTrigger.js +0 -6
- package/lib/commonjs/common/usePushTrigger.js.map +1 -1
- package/lib/commonjs/common/useTotalUnreadMessageCount.js +0 -7
- package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -1
- package/lib/commonjs/common/useUserList.js +3 -18
- package/lib/commonjs/common/useUserList.js.map +1 -1
- package/lib/commonjs/handler/useChannelHandler.js +15 -41
- package/lib/commonjs/handler/useChannelHandler.js.map +1 -1
- package/lib/commonjs/handler/useConnectionHandler.js +14 -11
- package/lib/commonjs/handler/useConnectionHandler.js.map +1 -1
- package/lib/commonjs/handler/useUserEventHandler.js +0 -8
- package/lib/commonjs/handler/useUserEventHandler.js.map +1 -1
- package/lib/commonjs/index.js +0 -23
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/model/CustomQuery.js +0 -6
- package/lib/commonjs/model/CustomQuery.js.map +1 -1
- package/lib/module/channel/useGroupChannel.js.map +1 -1
- package/lib/module/channel/useGroupChannelList/index.js.map +1 -1
- package/lib/module/channel/useGroupChannelList/reducer.js +12 -26
- package/lib/module/channel/useGroupChannelList/reducer.js.map +1 -1
- package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js +1 -15
- package/lib/module/channel/useGroupChannelList/useGroupChannelListWithCollection.js.map +1 -1
- package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js +1 -11
- package/lib/module/channel/useGroupChannelList/useGroupChannelListWithQuery.js.map +1 -1
- package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -1
- package/lib/module/channel/useGroupChannelMessages/reducer.js +18 -25
- package/lib/module/channel/useGroupChannelMessages/reducer.js.map +1 -1
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +9 -30
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +23 -46
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -1
- package/lib/module/channel/useOpenChannel.js.map +1 -1
- package/lib/module/channel/useOpenChannelList/index.js.map +1 -1
- package/lib/module/channel/useOpenChannelList/reducer.js +2 -18
- package/lib/module/channel/useOpenChannelList/reducer.js.map +1 -1
- package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js +1 -13
- package/lib/module/channel/useOpenChannelList/useOpenChannelListWithQuery.js.map +1 -1
- package/lib/module/channel/useOpenChannelMessages/index.js.map +1 -1
- package/lib/module/channel/useOpenChannelMessages/reducer.js +18 -25
- package/lib/module/channel/useOpenChannelMessages/reducer.js.map +1 -1
- package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js +1 -25
- package/lib/module/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.js.map +1 -1
- package/lib/module/common/useAppFeatures.js.map +1 -1
- package/lib/module/common/useMessageOutgoingStatus.js +0 -6
- package/lib/module/common/useMessageOutgoingStatus.js.map +1 -1
- package/lib/module/common/usePushTrigger.js.map +1 -1
- package/lib/module/common/useTotalUnreadMessageCount.js +0 -1
- package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -1
- package/lib/module/common/useUserList.js +3 -13
- package/lib/module/common/useUserList.js.map +1 -1
- package/lib/module/handler/useChannelHandler.js +15 -35
- package/lib/module/handler/useChannelHandler.js.map +1 -1
- package/lib/module/handler/useConnectionHandler.js +15 -6
- package/lib/module/handler/useConnectionHandler.js.map +1 -1
- package/lib/module/handler/useUserEventHandler.js +0 -2
- package/lib/module/handler/useUserEventHandler.js.map +1 -1
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/model/CustomQuery.js +0 -4
- package/lib/module/model/CustomQuery.js.map +1 -1
- package/lib/typescript/src/channel/useGroupChannelList/reducer.d.ts +1 -1
- package/lib/typescript/src/channel/useGroupChannelMessages/reducer.d.ts +2 -2
- package/lib/typescript/src/channel/useOpenChannelMessages/reducer.d.ts +2 -2
- package/lib/typescript/src/common/useUserList.d.ts +1 -1
- package/lib/typescript/src/handler/useChannelHandler.d.ts +1 -1
- package/lib/typescript/src/handler/useConnectionHandler.d.ts +1 -2
- package/lib/typescript/src/index.d.ts +0 -1
- package/package.json +15 -9
- package/src/channel/useGroupChannelList/reducer.ts +11 -7
- package/src/channel/useGroupChannelList/useGroupChannelListWithCollection.ts +1 -1
- package/src/channel/useGroupChannelList/useGroupChannelListWithQuery.ts +1 -1
- package/src/channel/useGroupChannelMessages/reducer.ts +11 -10
- package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +69 -72
- package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +32 -42
- package/src/channel/useOpenChannelList/useOpenChannelListWithQuery.ts +1 -1
- package/src/channel/useOpenChannelMessages/reducer.ts +11 -10
- package/src/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.ts +1 -1
- package/src/common/useUserList.ts +2 -2
- package/src/handler/useChannelHandler.ts +11 -24
- package/src/handler/useConnectionHandler.ts +11 -5
- package/src/index.ts +0 -1
- package/lib/commonjs/common/useTotalUnreadChannelCount.js +0 -29
- package/lib/commonjs/common/useTotalUnreadChannelCount.js.map +0 -1
- package/lib/module/common/useTotalUnreadChannelCount.js +0 -17
- package/lib/module/common/useTotalUnreadChannelCount.js.map +0 -1
- package/lib/typescript/src/common/useTotalUnreadChannelCount.d.ts +0 -6
- package/src/common/useTotalUnreadChannelCount.ts +0 -26
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useGroupChannelMessagesWithQuery = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
-
|
|
12
9
|
var _useChannelHandler = require("../../handler/useChannelHandler");
|
|
13
|
-
|
|
14
10
|
var _reducer = require("./reducer");
|
|
15
|
-
|
|
16
11
|
const createMessageQuery = (channel, creator) => {
|
|
17
12
|
if (creator) return creator();
|
|
18
13
|
return channel.createPreviousMessageListQuery({
|
|
@@ -20,7 +15,6 @@ const createMessageQuery = (channel, creator) => {
|
|
|
20
15
|
reverse: true
|
|
21
16
|
});
|
|
22
17
|
};
|
|
23
|
-
|
|
24
18
|
const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
|
|
25
19
|
const queryRef = (0, _react.useRef)();
|
|
26
20
|
const handlerId = (0, _uikitUtils.useUniqHandlerId)('useGroupChannelMessagesWithQuery');
|
|
@@ -38,7 +32,6 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
|
|
|
38
32
|
updateLoading,
|
|
39
33
|
updateRefreshing
|
|
40
34
|
} = (0, _reducer.useGroupChannelMessagesReducer)(userId, options === null || options === void 0 ? void 0 : options.sortComparator);
|
|
41
|
-
|
|
42
35
|
const channelMarkAsRead = async () => {
|
|
43
36
|
try {
|
|
44
37
|
await (0, _uikitUtils.confirmAndMarkAsRead)([channel]);
|
|
@@ -46,31 +39,24 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
|
|
|
46
39
|
_uikitUtils.Logger.warn('[useGroupChannelMessagesWithQuery/channelMarkAsRead]', e);
|
|
47
40
|
}
|
|
48
41
|
};
|
|
49
|
-
|
|
50
|
-
const init = (0, _react.useCallback)(async uid => {
|
|
42
|
+
const init = (0, _uikitUtils.useFreshCallback)(async uid => {
|
|
51
43
|
if (uid) {
|
|
52
44
|
var _queryRef$current;
|
|
53
|
-
|
|
54
45
|
queryRef.current = createMessageQuery(channel, options === null || options === void 0 ? void 0 : options.queryCreator);
|
|
55
46
|
channelMarkAsRead();
|
|
56
|
-
|
|
57
47
|
if ((_queryRef$current = queryRef.current) !== null && _queryRef$current !== void 0 && _queryRef$current.hasNext) {
|
|
58
48
|
var _queryRef$current2;
|
|
59
|
-
|
|
60
49
|
const list = await ((_queryRef$current2 = queryRef.current) === null || _queryRef$current2 === void 0 ? void 0 : _queryRef$current2.load());
|
|
61
50
|
updateMessages(list, true, sdk.currentUser.userId);
|
|
62
51
|
}
|
|
63
|
-
|
|
64
52
|
updateNextMessages([], true, sdk.currentUser.userId);
|
|
65
53
|
}
|
|
66
|
-
}
|
|
67
|
-
|
|
54
|
+
});
|
|
68
55
|
const channelUpdater = channel => {
|
|
69
56
|
if (channel.isGroupChannel() && !(0, _uikitUtils.isDifferentChannel)(channel, channel)) {
|
|
70
57
|
forceUpdate();
|
|
71
58
|
}
|
|
72
59
|
};
|
|
73
|
-
|
|
74
60
|
(0, _useChannelHandler.useChannelHandler)(sdk, handlerId, {
|
|
75
61
|
// Messages
|
|
76
62
|
onMessageReceived(eventChannel, message) {
|
|
@@ -78,35 +64,28 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
|
|
|
78
64
|
channelMarkAsRead();
|
|
79
65
|
updateNextMessages([message], false, sdk.currentUser.userId);
|
|
80
66
|
},
|
|
81
|
-
|
|
82
67
|
onMessageUpdated(eventChannel, message) {
|
|
83
68
|
if ((0, _uikitUtils.isDifferentChannel)(channel, eventChannel)) return;
|
|
84
69
|
updateMessages([message], false, sdk.currentUser.userId);
|
|
85
70
|
},
|
|
86
|
-
|
|
87
71
|
onMessageDeleted(eventChannel, messageId) {
|
|
88
72
|
if ((0, _uikitUtils.isDifferentChannel)(channel, eventChannel)) return;
|
|
89
73
|
deleteMessages([messageId], []);
|
|
90
74
|
deleteNextMessages([messageId], []);
|
|
91
75
|
},
|
|
92
|
-
|
|
93
76
|
// Channels
|
|
94
77
|
onChannelChanged: channelUpdater,
|
|
95
78
|
onChannelFrozen: channelUpdater,
|
|
96
79
|
onChannelUnfrozen: channelUpdater,
|
|
97
80
|
onChannelHidden: channelUpdater,
|
|
98
|
-
|
|
99
81
|
onChannelMemberCountChanged(channels) {
|
|
100
82
|
const foundChannel = channels.find(c => !(0, _uikitUtils.isDifferentChannel)(c, channel));
|
|
101
83
|
if (foundChannel) channelUpdater(foundChannel);
|
|
102
84
|
},
|
|
103
|
-
|
|
104
85
|
onChannelDeleted(channelUrl) {
|
|
105
86
|
var _options$onChannelDel;
|
|
106
|
-
|
|
107
87
|
if (channel.url === channelUrl) options === null || options === void 0 ? void 0 : (_options$onChannelDel = options.onChannelDeleted) === null || _options$onChannelDel === void 0 ? void 0 : _options$onChannelDel.call(options);
|
|
108
88
|
},
|
|
109
|
-
|
|
110
89
|
// Users
|
|
111
90
|
onOperatorUpdated: channelUpdater,
|
|
112
91
|
onUserLeft: channelUpdater,
|
|
@@ -116,47 +95,41 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
|
|
|
116
95
|
onUserUnbanned: channelUpdater,
|
|
117
96
|
onUserMuted: channelUpdater,
|
|
118
97
|
onUserUnmuted: channelUpdater,
|
|
119
|
-
|
|
120
98
|
onUserBanned(eventChannel, bannedUser) {
|
|
121
99
|
if ((0, _uikitUtils.isDifferentChannel)(channel, eventChannel)) return;
|
|
122
|
-
|
|
123
100
|
if (bannedUser.userId === sdk.currentUser.userId) {
|
|
124
101
|
var _options$onChannelDel2;
|
|
125
|
-
|
|
126
102
|
options === null || options === void 0 ? void 0 : (_options$onChannelDel2 = options.onChannelDeleted) === null || _options$onChannelDel2 === void 0 ? void 0 : _options$onChannelDel2.call(options);
|
|
127
103
|
} else {
|
|
128
104
|
channelUpdater(eventChannel);
|
|
129
105
|
}
|
|
130
106
|
}
|
|
131
|
-
|
|
132
107
|
});
|
|
133
108
|
(0, _uikitUtils.useAsyncEffect)(async () => {
|
|
134
109
|
updateLoading(true);
|
|
135
110
|
await init(userId);
|
|
136
111
|
updateLoading(false);
|
|
137
|
-
}, [
|
|
138
|
-
const refresh = (0,
|
|
112
|
+
}, [channel.url, userId]);
|
|
113
|
+
const refresh = (0, _uikitUtils.useFreshCallback)(async () => {
|
|
139
114
|
updateRefreshing(true);
|
|
140
115
|
await init(userId);
|
|
141
116
|
updateRefreshing(false);
|
|
142
|
-
}
|
|
143
|
-
const prev = (0,
|
|
117
|
+
});
|
|
118
|
+
const prev = (0, _uikitUtils.useFreshCallback)(async () => {
|
|
144
119
|
var _queryRef$current3;
|
|
145
|
-
|
|
146
120
|
if (queryRef.current && (_queryRef$current3 = queryRef.current) !== null && _queryRef$current3 !== void 0 && _queryRef$current3.hasNext) {
|
|
147
121
|
var _queryRef$current4;
|
|
148
|
-
|
|
149
122
|
const list = await ((_queryRef$current4 = queryRef.current) === null || _queryRef$current4 === void 0 ? void 0 : _queryRef$current4.load());
|
|
150
123
|
updateMessages(list, false, sdk.currentUser.userId);
|
|
151
124
|
}
|
|
152
|
-
}
|
|
153
|
-
const next = (0,
|
|
125
|
+
});
|
|
126
|
+
const next = (0, _uikitUtils.useFreshCallback)(async () => {
|
|
154
127
|
if (nextMessages.length > 0) {
|
|
155
128
|
updateMessages(nextMessages, false, sdk.currentUser.userId);
|
|
156
129
|
updateNextMessages([], true, sdk.currentUser.userId);
|
|
157
130
|
}
|
|
158
|
-
}
|
|
159
|
-
const sendUserMessage = (0,
|
|
131
|
+
});
|
|
132
|
+
const sendUserMessage = (0, _uikitUtils.useFreshCallback)((params, onPending) => {
|
|
160
133
|
return new Promise((resolve, reject) => {
|
|
161
134
|
channel.sendUserMessage(params).onPending(pendingMessage => {
|
|
162
135
|
if (pendingMessage.isUserMessage()) {
|
|
@@ -173,8 +146,8 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
|
|
|
173
146
|
reject(err);
|
|
174
147
|
});
|
|
175
148
|
});
|
|
176
|
-
}
|
|
177
|
-
const sendFileMessage = (0,
|
|
149
|
+
});
|
|
150
|
+
const sendFileMessage = (0, _uikitUtils.useFreshCallback)((params, onPending) => {
|
|
178
151
|
return new Promise((resolve, reject) => {
|
|
179
152
|
channel.sendFileMessage(params).onPending(pendingMessage => {
|
|
180
153
|
if (pendingMessage.isFileMessage()) {
|
|
@@ -191,33 +164,33 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
|
|
|
191
164
|
reject(err);
|
|
192
165
|
});
|
|
193
166
|
});
|
|
194
|
-
}
|
|
195
|
-
const updateUserMessage = (0,
|
|
167
|
+
});
|
|
168
|
+
const updateUserMessage = (0, _uikitUtils.useFreshCallback)(async (messageId, params) => {
|
|
196
169
|
const updatedMessage = await channel.updateUserMessage(messageId, params);
|
|
197
170
|
updateMessages([updatedMessage], false, sdk.currentUser.userId);
|
|
198
171
|
return updatedMessage;
|
|
199
|
-
}
|
|
200
|
-
const updateFileMessage = (0,
|
|
172
|
+
});
|
|
173
|
+
const updateFileMessage = (0, _uikitUtils.useFreshCallback)(async (messageId, params) => {
|
|
201
174
|
const updatedMessage = await channel.updateFileMessage(messageId, params);
|
|
202
175
|
updateMessages([updatedMessage], false, sdk.currentUser.userId);
|
|
203
176
|
return updatedMessage;
|
|
204
|
-
}
|
|
205
|
-
const resendMessage = (0,
|
|
177
|
+
});
|
|
178
|
+
const resendMessage = (0, _uikitUtils.useFreshCallback)(async failedMessage => {
|
|
206
179
|
const message = await (() => {
|
|
207
180
|
if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);
|
|
208
181
|
if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);
|
|
209
182
|
return null;
|
|
210
183
|
})();
|
|
211
184
|
if (message) updateNextMessages([message], false, sdk.currentUser.userId);
|
|
212
|
-
}
|
|
213
|
-
const deleteMessage = (0,
|
|
185
|
+
});
|
|
186
|
+
const deleteMessage = (0, _uikitUtils.useFreshCallback)(async message => {
|
|
214
187
|
if (message.sendingStatus === 'succeeded') {
|
|
215
188
|
if (message.isUserMessage()) await channel.deleteMessage(message);
|
|
216
189
|
if (message.isFileMessage()) await channel.deleteMessage(message);
|
|
217
190
|
} else {
|
|
218
191
|
deleteMessages([message.messageId], [message.reqId]);
|
|
219
192
|
}
|
|
220
|
-
}
|
|
193
|
+
});
|
|
221
194
|
return {
|
|
222
195
|
loading,
|
|
223
196
|
refreshing,
|
|
@@ -235,6 +208,5 @@ const useGroupChannelMessagesWithQuery = (sdk, channel, userId, options) => {
|
|
|
235
208
|
deleteMessage
|
|
236
209
|
};
|
|
237
210
|
};
|
|
238
|
-
|
|
239
211
|
exports.useGroupChannelMessagesWithQuery = useGroupChannelMessagesWithQuery;
|
|
240
212
|
//# sourceMappingURL=useGroupChannelMessagesWithQuery.js.map
|
package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createMessageQuery","channel","creator","createPreviousMessageListQuery","limit","reverse","useGroupChannelMessagesWithQuery","sdk","userId","options","queryRef","useRef","handlerId","useUniqHandlerId","forceUpdate","useForceUpdate","loading","refreshing","messages","nextMessages","newMessagesFromMembers","updateMessages","updateNextMessages","deleteNextMessages","deleteMessages","updateLoading","updateRefreshing","useGroupChannelMessagesReducer","sortComparator","channelMarkAsRead","confirmAndMarkAsRead","e","Logger","warn","init","useCallback","uid","current","queryCreator","hasNext","list","load","currentUser","url","channelUpdater","isGroupChannel","isDifferentChannel","useChannelHandler","onMessageReceived","eventChannel","message","onMessageUpdated","onMessageDeleted","messageId","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","channelUrl","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","useAsyncEffect","refresh","prev","next","length","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","err","sendFileMessage","isFileMessage","updateUserMessage","updatedMessage","updateFileMessage","resendMessage","failedMessage","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useCallback, useRef } from 'react';\n\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n useAsyncEffect,\n useForceUpdate,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useGroupChannelMessagesReducer } from './reducer';\n\nconst createMessageQuery = (\n channel: SendbirdGroupChannel,\n creator?: UseGroupChannelMessagesOptions['queryCreator'],\n) => {\n if (creator) return creator();\n return channel.createPreviousMessageListQuery({\n limit: 100,\n reverse: true,\n });\n};\n\nexport const useGroupChannelMessagesWithQuery: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const queryRef = useRef<SendbirdPreviousMessageListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithQuery');\n\n const forceUpdate = useForceUpdate();\n\n const {\n loading,\n refreshing,\n messages,\n nextMessages,\n newMessagesFromMembers,\n updateMessages,\n updateNextMessages,\n deleteNextMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useGroupChannelMessagesReducer(userId, options?.sortComparator);\n\n const channelMarkAsRead = async () => {\n try {\n await confirmAndMarkAsRead([channel]);\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithQuery/channelMarkAsRead]', e);\n }\n };\n\n const init = useCallback(\n async (uid?: string) => {\n if (uid) {\n queryRef.current = createMessageQuery(channel, options?.queryCreator);\n channelMarkAsRead();\n if (queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, true, sdk.currentUser.userId);\n }\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n },\n [sdk, channel.url, options?.queryCreator],\n );\n\n const channelUpdater = (channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n forceUpdate();\n }\n };\n\n useChannelHandler(sdk, handlerId, {\n // Messages\n onMessageReceived(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n channelMarkAsRead();\n updateNextMessages([message], false, sdk.currentUser.userId);\n },\n onMessageUpdated(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n updateMessages([message], false, sdk.currentUser.userId);\n },\n onMessageDeleted(eventChannel, messageId) {\n if (isDifferentChannel(channel, eventChannel)) return;\n deleteMessages([messageId], []);\n deleteNextMessages([messageId], []);\n },\n // Channels\n onChannelChanged: channelUpdater,\n onChannelFrozen: channelUpdater,\n onChannelUnfrozen: channelUpdater,\n onChannelHidden: channelUpdater,\n onChannelMemberCountChanged(channels) {\n const foundChannel = channels.find((c) => !isDifferentChannel(c, channel));\n if (foundChannel) channelUpdater(foundChannel);\n },\n onChannelDeleted(channelUrl: string) {\n if (channel.url === channelUrl) options?.onChannelDeleted?.();\n },\n // Users\n onOperatorUpdated: channelUpdater,\n onUserLeft: channelUpdater,\n // onUserEntered: channelUpdater,\n // onUserExited: channelUpdater,\n onUserJoined: channelUpdater,\n onUserUnbanned: channelUpdater,\n onUserMuted: channelUpdater,\n onUserUnmuted: channelUpdater,\n onUserBanned(eventChannel, bannedUser) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n if (bannedUser.userId === sdk.currentUser.userId) {\n options?.onChannelDeleted?.();\n } else {\n channelUpdater(eventChannel);\n }\n },\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [init, userId]);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n }, [init, userId]);\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useCallback(async () => {\n if (queryRef.current && queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, false, sdk.currentUser.userId);\n }\n }, []);\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useCallback(async () => {\n if (nextMessages.length > 0) {\n updateMessages(nextMessages, false, sdk.currentUser.userId);\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n }, [nextMessages.length]);\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n [channel],\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n [channel],\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n [channel],\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n [channel],\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useCallback(\n async (failedMessage) => {\n const message = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (message) updateNextMessages([message], false, sdk.currentUser.userId);\n },\n [channel],\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useCallback(\n async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n deleteMessages([message.messageId], [message.reqId]);\n }\n },\n [channel],\n );\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAOA;;AASA;;AAEA;;AAEA,MAAMA,kBAAkB,GAAG,CACzBC,OADyB,EAEzBC,OAFyB,KAGtB;EACH,IAAIA,OAAJ,EAAa,OAAOA,OAAO,EAAd;EACb,OAAOD,OAAO,CAACE,8BAAR,CAAuC;IAC5CC,KAAK,EAAE,GADqC;IAE5CC,OAAO,EAAE;EAFmC,CAAvC,CAAP;AAID,CATD;;AAWO,MAAMC,gCAAyD,GAAG,CAACC,GAAD,EAAMN,OAAN,EAAeO,MAAf,EAAuBC,OAAvB,KAAmC;EAC1G,MAAMC,QAAQ,GAAG,IAAAC,aAAA,GAAjB;EACA,MAAMC,SAAS,GAAG,IAAAC,4BAAA,EAAiB,kCAAjB,CAAlB;EAEA,MAAMC,WAAW,GAAG,IAAAC,0BAAA,GAApB;EAEA,MAAM;IACJC,OADI;IAEJC,UAFI;IAGJC,QAHI;IAIJC,YAJI;IAKJC,sBALI;IAMJC,cANI;IAOJC,kBAPI;IAQJC,kBARI;IASJC,cATI;IAUJC,aAVI;IAWJC;EAXI,IAYF,IAAAC,uCAAA,EAA+BnB,MAA/B,EAAuCC,OAAvC,aAAuCA,OAAvC,uBAAuCA,OAAO,CAAEmB,cAAhD,CAZJ;;EAcA,MAAMC,iBAAiB,GAAG,YAAY;IACpC,IAAI;MACF,MAAM,IAAAC,gCAAA,EAAqB,CAAC7B,OAAD,CAArB,CAAN;IACD,CAFD,CAEE,OAAO8B,CAAP,EAAU;MACVC,kBAAA,CAAOC,IAAP,CAAY,sDAAZ,EAAoEF,CAApE;IACD;EACF,CAND;;EAQA,MAAMG,IAAI,GAAG,IAAAC,kBAAA,EACX,MAAOC,GAAP,IAAwB;IACtB,IAAIA,GAAJ,EAAS;MAAA;;MACP1B,QAAQ,CAAC2B,OAAT,GAAmBrC,kBAAkB,CAACC,OAAD,EAAUQ,OAAV,aAAUA,OAAV,uBAAUA,OAAO,CAAE6B,YAAnB,CAArC;MACAT,iBAAiB;;MACjB,yBAAInB,QAAQ,CAAC2B,OAAb,8CAAI,kBAAkBE,OAAtB,EAA+B;QAAA;;QAC7B,MAAMC,IAAI,GAAG,6BAAM9B,QAAQ,CAAC2B,OAAf,uDAAM,mBAAkBI,IAAlB,EAAN,CAAb;QACApB,cAAc,CAACmB,IAAD,EAAO,IAAP,EAAajC,GAAG,CAACmC,WAAJ,CAAgBlC,MAA7B,CAAd;MACD;;MACDc,kBAAkB,CAAC,EAAD,EAAK,IAAL,EAAWf,GAAG,CAACmC,WAAJ,CAAgBlC,MAA3B,CAAlB;IACD;EACF,CAXU,EAYX,CAACD,GAAD,EAAMN,OAAO,CAAC0C,GAAd,EAAmBlC,OAAnB,aAAmBA,OAAnB,uBAAmBA,OAAO,CAAE6B,YAA5B,CAZW,CAAb;;EAeA,MAAMM,cAAc,GAAI3C,OAAD,IAAkC;IACvD,IAAIA,OAAO,CAAC4C,cAAR,MAA4B,CAAC,IAAAC,8BAAA,EAAmB7C,OAAnB,EAA4BA,OAA5B,CAAjC,EAAuE;MACrEa,WAAW;IACZ;EACF,CAJD;;EAMA,IAAAiC,oCAAA,EAAkBxC,GAAlB,EAAuBK,SAAvB,EAAkC;IAChC;IACAoC,iBAAiB,CAACC,YAAD,EAAeC,OAAf,EAAwB;MACvC,IAAI,IAAAJ,8BAAA,EAAmB7C,OAAnB,EAA4BgD,YAA5B,CAAJ,EAA+C;MAC/CpB,iBAAiB;MACjBP,kBAAkB,CAAC,CAAC4B,OAAD,CAAD,EAAY,KAAZ,EAAmB3C,GAAG,CAACmC,WAAJ,CAAgBlC,MAAnC,CAAlB;IACD,CAN+B;;IAOhC2C,gBAAgB,CAACF,YAAD,EAAeC,OAAf,EAAwB;MACtC,IAAI,IAAAJ,8BAAA,EAAmB7C,OAAnB,EAA4BgD,YAA5B,CAAJ,EAA+C;MAC/C5B,cAAc,CAAC,CAAC6B,OAAD,CAAD,EAAY,KAAZ,EAAmB3C,GAAG,CAACmC,WAAJ,CAAgBlC,MAAnC,CAAd;IACD,CAV+B;;IAWhC4C,gBAAgB,CAACH,YAAD,EAAeI,SAAf,EAA0B;MACxC,IAAI,IAAAP,8BAAA,EAAmB7C,OAAnB,EAA4BgD,YAA5B,CAAJ,EAA+C;MAC/CzB,cAAc,CAAC,CAAC6B,SAAD,CAAD,EAAc,EAAd,CAAd;MACA9B,kBAAkB,CAAC,CAAC8B,SAAD,CAAD,EAAc,EAAd,CAAlB;IACD,CAf+B;;IAgBhC;IACAC,gBAAgB,EAAEV,cAjBc;IAkBhCW,eAAe,EAAEX,cAlBe;IAmBhCY,iBAAiB,EAAEZ,cAnBa;IAoBhCa,eAAe,EAAEb,cApBe;;IAqBhCc,2BAA2B,CAACC,QAAD,EAAW;MACpC,MAAMC,YAAY,GAAGD,QAAQ,CAACE,IAAT,CAAeC,CAAD,IAAO,CAAC,IAAAhB,8BAAA,EAAmBgB,CAAnB,EAAsB7D,OAAtB,CAAtB,CAArB;MACA,IAAI2D,YAAJ,EAAkBhB,cAAc,CAACgB,YAAD,CAAd;IACnB,CAxB+B;;IAyBhCG,gBAAgB,CAACC,UAAD,EAAqB;MAAA;;MACnC,IAAI/D,OAAO,CAAC0C,GAAR,KAAgBqB,UAApB,EAAgCvD,OAAO,SAAP,IAAAA,OAAO,WAAP,qCAAAA,OAAO,CAAEsD,gBAAT,qFAAAtD,OAAO;IACxC,CA3B+B;;IA4BhC;IACAwD,iBAAiB,EAAErB,cA7Ba;IA8BhCsB,UAAU,EAAEtB,cA9BoB;IA+BhC;IACA;IACAuB,YAAY,EAAEvB,cAjCkB;IAkChCwB,cAAc,EAAExB,cAlCgB;IAmChCyB,WAAW,EAAEzB,cAnCmB;IAoChC0B,aAAa,EAAE1B,cApCiB;;IAqChC2B,YAAY,CAACtB,YAAD,EAAeuB,UAAf,EAA2B;MACrC,IAAI,IAAA1B,8BAAA,EAAmB7C,OAAnB,EAA4BgD,YAA5B,CAAJ,EAA+C;;MAE/C,IAAIuB,UAAU,CAAChE,MAAX,KAAsBD,GAAG,CAACmC,WAAJ,CAAgBlC,MAA1C,EAAkD;QAAA;;QAChDC,OAAO,SAAP,IAAAA,OAAO,WAAP,sCAAAA,OAAO,CAAEsD,gBAAT,uFAAAtD,OAAO;MACR,CAFD,MAEO;QACLmC,cAAc,CAACK,YAAD,CAAd;MACD;IACF;;EA7C+B,CAAlC;EAgDA,IAAAwB,0BAAA,EAAe,YAAY;IACzBhD,aAAa,CAAC,IAAD,CAAb;IACA,MAAMS,IAAI,CAAC1B,MAAD,CAAV;IACAiB,aAAa,CAAC,KAAD,CAAb;EACD,CAJD,EAIG,CAACS,IAAD,EAAO1B,MAAP,CAJH;EAMA,MAAMkE,OAAuD,GAAG,IAAAvC,kBAAA,EAAY,YAAY;IACtFT,gBAAgB,CAAC,IAAD,CAAhB;IACA,MAAMQ,IAAI,CAAC1B,MAAD,CAAV;IACAkB,gBAAgB,CAAC,KAAD,CAAhB;EACD,CAJ+D,EAI7D,CAACQ,IAAD,EAAO1B,MAAP,CAJ6D,CAAhE;EAMA,MAAMmE,IAAiD,GAAG,IAAAxC,kBAAA,EAAY,YAAY;IAAA;;IAChF,IAAIzB,QAAQ,CAAC2B,OAAT,0BAAoB3B,QAAQ,CAAC2B,OAA7B,+CAAoB,mBAAkBE,OAA1C,EAAmD;MAAA;;MACjD,MAAMC,IAAI,GAAG,6BAAM9B,QAAQ,CAAC2B,OAAf,uDAAM,mBAAkBI,IAAlB,EAAN,CAAb;MACApB,cAAc,CAACmB,IAAD,EAAO,KAAP,EAAcjC,GAAG,CAACmC,WAAJ,CAAgBlC,MAA9B,CAAd;IACD;EACF,CALyD,EAKvD,EALuD,CAA1D;EAOA,MAAMoE,IAAiD,GAAG,IAAAzC,kBAAA,EAAY,YAAY;IAChF,IAAIhB,YAAY,CAAC0D,MAAb,GAAsB,CAA1B,EAA6B;MAC3BxD,cAAc,CAACF,YAAD,EAAe,KAAf,EAAsBZ,GAAG,CAACmC,WAAJ,CAAgBlC,MAAtC,CAAd;MACAc,kBAAkB,CAAC,EAAD,EAAK,IAAL,EAAWf,GAAG,CAACmC,WAAJ,CAAgBlC,MAA3B,CAAlB;IACD;EACF,CALyD,EAKvD,CAACW,YAAY,CAAC0D,MAAd,CALuD,CAA1D;EAOA,MAAMC,eAAuE,GAAG,IAAA3C,kBAAA,EAC9E,CAAC4C,MAAD,EAASC,SAAT,KAAuB;IACrB,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtClF,OAAO,CACJ6E,eADH,CACmBC,MADnB,EAEGC,SAFH,CAEcI,cAAD,IAAoB;QAC7B,IAAIA,cAAc,CAACC,aAAf,EAAJ,EAAoC;UAClC/D,kBAAkB,CAAC,CAAC8D,cAAD,CAAD,EAAmB,KAAnB,EAA0B7E,GAAG,CAACmC,WAAJ,CAAgBlC,MAA1C,CAAlB;UACAwE,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAGI,cAAH,CAAT;QACD;MACF,CAPH,EAQGE,WARH,CAQgBC,WAAD,IAAiB;QAC5B,IAAIA,WAAW,CAACF,aAAZ,EAAJ,EAAiC;UAC/B/D,kBAAkB,CAAC,CAACiE,WAAD,CAAD,EAAgB,KAAhB,EAAuBhF,GAAG,CAACmC,WAAJ,CAAgBlC,MAAvC,CAAlB;UACA0E,OAAO,CAACK,WAAD,CAAP;QACD;MACF,CAbH,EAcGC,QAdH,CAcY,CAACC,GAAD,EAAMF,WAAN,KAAsB;QAC9BjE,kBAAkB,CAAC,CAACiE,WAAD,CAAD,EAAgB,KAAhB,EAAuBhF,GAAG,CAACmC,WAAJ,CAAgBlC,MAAvC,CAAlB;QACA2E,MAAM,CAACM,GAAD,CAAN;MACD,CAjBH;IAkBD,CAnBM,CAAP;EAoBD,CAtB6E,EAuB9E,CAACxF,OAAD,CAvB8E,CAAhF;EAyBA,MAAMyF,eAAuE,GAAG,IAAAvD,kBAAA,EAC9E,CAAC4C,MAAD,EAASC,SAAT,KAAuB;IACrB,OAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;MACtClF,OAAO,CACJyF,eADH,CACmBX,MADnB,EAEGC,SAFH,CAEcI,cAAD,IAAoB;QAC7B,IAAIA,cAAc,CAACO,aAAf,EAAJ,EAAoC;UAClCrE,kBAAkB,CAAC,CAAC8D,cAAD,CAAD,EAAmB,KAAnB,EAA0B7E,GAAG,CAACmC,WAAJ,CAAgBlC,MAA1C,CAAlB;UACAwE,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAGI,cAAH,CAAT;QACD;MACF,CAPH,EAQGE,WARH,CAQgBC,WAAD,IAAiB;QAC5B,IAAIA,WAAW,CAACI,aAAZ,EAAJ,EAAiC;UAC/BrE,kBAAkB,CAAC,CAACiE,WAAD,CAAD,EAAgB,KAAhB,EAAuBhF,GAAG,CAACmC,WAAJ,CAAgBlC,MAAvC,CAAlB;UACA0E,OAAO,CAACK,WAAD,CAAP;QACD;MACF,CAbH,EAcGC,QAdH,CAcY,CAACC,GAAD,EAAMF,WAAN,KAAsB;QAC9BjE,kBAAkB,CAAC,CAACiE,WAAD,CAAD,EAAgB,KAAhB,EAAuBhF,GAAG,CAACmC,WAAJ,CAAgBlC,MAAvC,CAAlB;QACA2E,MAAM,CAACM,GAAD,CAAN;MACD,CAjBH;IAkBD,CAnBM,CAAP;EAoBD,CAtB6E,EAuB9E,CAACxF,OAAD,CAvB8E,CAAhF;EAyBA,MAAM2F,iBAA2E,GAAG,IAAAzD,kBAAA,EAClF,OAAOkB,SAAP,EAAkB0B,MAAlB,KAA6B;IAC3B,MAAMc,cAAc,GAAG,MAAM5F,OAAO,CAAC2F,iBAAR,CAA0BvC,SAA1B,EAAqC0B,MAArC,CAA7B;IACA1D,cAAc,CAAC,CAACwE,cAAD,CAAD,EAAmB,KAAnB,EAA0BtF,GAAG,CAACmC,WAAJ,CAAgBlC,MAA1C,CAAd;IACA,OAAOqF,cAAP;EACD,CALiF,EAMlF,CAAC5F,OAAD,CANkF,CAApF;EAQA,MAAM6F,iBAA2E,GAAG,IAAA3D,kBAAA,EAClF,OAAOkB,SAAP,EAAkB0B,MAAlB,KAA6B;IAC3B,MAAMc,cAAc,GAAG,MAAM5F,OAAO,CAAC6F,iBAAR,CAA0BzC,SAA1B,EAAqC0B,MAArC,CAA7B;IACA1D,cAAc,CAAC,CAACwE,cAAD,CAAD,EAAmB,KAAnB,EAA0BtF,GAAG,CAACmC,WAAJ,CAAgBlC,MAA1C,CAAd;IACA,OAAOqF,cAAP;EACD,CALiF,EAMlF,CAAC5F,OAAD,CANkF,CAApF;EAQA,MAAM8F,aAAmE,GAAG,IAAA5D,kBAAA,EAC1E,MAAO6D,aAAP,IAAyB;IACvB,MAAM9C,OAAO,GAAG,MAAM,CAAC,MAAM;MAC3B,IAAI8C,aAAa,CAACX,aAAd,EAAJ,EAAmC,OAAOpF,OAAO,CAACgG,iBAAR,CAA0BD,aAA1B,CAAP;MACnC,IAAIA,aAAa,CAACL,aAAd,EAAJ,EAAmC,OAAO1F,OAAO,CAACiG,iBAAR,CAA0BF,aAA1B,CAAP;MACnC,OAAO,IAAP;IACD,CAJqB,GAAtB;IAMA,IAAI9C,OAAJ,EAAa5B,kBAAkB,CAAC,CAAC4B,OAAD,CAAD,EAAY,KAAZ,EAAmB3C,GAAG,CAACmC,WAAJ,CAAgBlC,MAAnC,CAAlB;EACd,CATyE,EAU1E,CAACP,OAAD,CAV0E,CAA5E;EAYA,MAAMkG,aAAmE,GAAG,IAAAhE,kBAAA,EAC1E,MAAOe,OAAP,IAAmB;IACjB,IAAIA,OAAO,CAACkD,aAAR,KAA0B,WAA9B,EAA2C;MACzC,IAAIlD,OAAO,CAACmC,aAAR,EAAJ,EAA6B,MAAMpF,OAAO,CAACkG,aAAR,CAAsBjD,OAAtB,CAAN;MAC7B,IAAIA,OAAO,CAACyC,aAAR,EAAJ,EAA6B,MAAM1F,OAAO,CAACkG,aAAR,CAAsBjD,OAAtB,CAAN;IAC9B,CAHD,MAGO;MACL1B,cAAc,CAAC,CAAC0B,OAAO,CAACG,SAAT,CAAD,EAAsB,CAACH,OAAO,CAACmD,KAAT,CAAtB,CAAd;IACD;EACF,CARyE,EAS1E,CAACpG,OAAD,CAT0E,CAA5E;EAYA,OAAO;IACLe,OADK;IAELC,UAFK;IAGLyD,OAHK;IAILxD,QAJK;IAKLC,YALK;IAMLC,sBANK;IAOLwD,IAPK;IAQLD,IARK;IASLG,eATK;IAULY,eAVK;IAWLE,iBAXK;IAYLE,iBAZK;IAaLC,aAbK;IAcLI;EAdK,CAAP;AAgBD,CArOM"}
|
|
1
|
+
{"version":3,"names":["_react","require","_uikitUtils","_useChannelHandler","_reducer","createMessageQuery","channel","creator","createPreviousMessageListQuery","limit","reverse","useGroupChannelMessagesWithQuery","sdk","userId","options","queryRef","useRef","handlerId","useUniqHandlerId","forceUpdate","useForceUpdate","loading","refreshing","messages","nextMessages","newMessagesFromMembers","updateMessages","updateNextMessages","deleteNextMessages","deleteMessages","updateLoading","updateRefreshing","useGroupChannelMessagesReducer","sortComparator","channelMarkAsRead","confirmAndMarkAsRead","e","Logger","warn","init","useFreshCallback","uid","_queryRef$current","current","queryCreator","hasNext","_queryRef$current2","list","load","currentUser","channelUpdater","isGroupChannel","isDifferentChannel","useChannelHandler","onMessageReceived","eventChannel","message","onMessageUpdated","onMessageDeleted","messageId","onChannelChanged","onChannelFrozen","onChannelUnfrozen","onChannelHidden","onChannelMemberCountChanged","channels","foundChannel","find","c","onChannelDeleted","channelUrl","_options$onChannelDel","url","call","onOperatorUpdated","onUserLeft","onUserJoined","onUserUnbanned","onUserMuted","onUserUnmuted","onUserBanned","bannedUser","_options$onChannelDel2","useAsyncEffect","refresh","prev","_queryRef$current3","_queryRef$current4","next","length","sendUserMessage","params","onPending","Promise","resolve","reject","pendingMessage","isUserMessage","onSucceeded","sentMessage","onFailed","err","sendFileMessage","isFileMessage","updateUserMessage","updatedMessage","updateFileMessage","resendMessage","failedMessage","resendUserMessage","resendFileMessage","deleteMessage","sendingStatus","reqId","exports"],"sources":["useGroupChannelMessagesWithQuery.ts"],"sourcesContent":["import { useRef } from 'react';\n\nimport type {\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdPreviousMessageListQuery,\n} from '@sendbird/uikit-utils';\nimport {\n Logger,\n confirmAndMarkAsRead,\n isDifferentChannel,\n useAsyncEffect,\n useForceUpdate,\n useFreshCallback,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport { useChannelHandler } from '../../handler/useChannelHandler';\nimport type { UseGroupChannelMessages, UseGroupChannelMessagesOptions } from '../../types';\nimport { useGroupChannelMessagesReducer } from './reducer';\n\nconst createMessageQuery = (\n channel: SendbirdGroupChannel,\n creator?: UseGroupChannelMessagesOptions['queryCreator'],\n) => {\n if (creator) return creator();\n return channel.createPreviousMessageListQuery({\n limit: 100,\n reverse: true,\n });\n};\n\nexport const useGroupChannelMessagesWithQuery: UseGroupChannelMessages = (sdk, channel, userId, options) => {\n const queryRef = useRef<SendbirdPreviousMessageListQuery>();\n const handlerId = useUniqHandlerId('useGroupChannelMessagesWithQuery');\n\n const forceUpdate = useForceUpdate();\n\n const {\n loading,\n refreshing,\n messages,\n nextMessages,\n newMessagesFromMembers,\n updateMessages,\n updateNextMessages,\n deleteNextMessages,\n deleteMessages,\n updateLoading,\n updateRefreshing,\n } = useGroupChannelMessagesReducer(userId, options?.sortComparator);\n\n const channelMarkAsRead = async () => {\n try {\n await confirmAndMarkAsRead([channel]);\n } catch (e) {\n Logger.warn('[useGroupChannelMessagesWithQuery/channelMarkAsRead]', e);\n }\n };\n\n const init = useFreshCallback(async (uid?: string) => {\n if (uid) {\n queryRef.current = createMessageQuery(channel, options?.queryCreator);\n channelMarkAsRead();\n if (queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, true, sdk.currentUser.userId);\n }\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n });\n\n const channelUpdater = (channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel() && !isDifferentChannel(channel, channel)) {\n forceUpdate();\n }\n };\n\n useChannelHandler(sdk, handlerId, {\n // Messages\n onMessageReceived(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n channelMarkAsRead();\n updateNextMessages([message], false, sdk.currentUser.userId);\n },\n onMessageUpdated(eventChannel, message) {\n if (isDifferentChannel(channel, eventChannel)) return;\n updateMessages([message], false, sdk.currentUser.userId);\n },\n onMessageDeleted(eventChannel, messageId) {\n if (isDifferentChannel(channel, eventChannel)) return;\n deleteMessages([messageId], []);\n deleteNextMessages([messageId], []);\n },\n // Channels\n onChannelChanged: channelUpdater,\n onChannelFrozen: channelUpdater,\n onChannelUnfrozen: channelUpdater,\n onChannelHidden: channelUpdater,\n onChannelMemberCountChanged(channels) {\n const foundChannel = channels.find((c) => !isDifferentChannel(c, channel));\n if (foundChannel) channelUpdater(foundChannel);\n },\n onChannelDeleted(channelUrl: string) {\n if (channel.url === channelUrl) options?.onChannelDeleted?.();\n },\n // Users\n onOperatorUpdated: channelUpdater,\n onUserLeft: channelUpdater,\n // onUserEntered: channelUpdater,\n // onUserExited: channelUpdater,\n onUserJoined: channelUpdater,\n onUserUnbanned: channelUpdater,\n onUserMuted: channelUpdater,\n onUserUnmuted: channelUpdater,\n onUserBanned(eventChannel, bannedUser) {\n if (isDifferentChannel(channel, eventChannel)) return;\n\n if (bannedUser.userId === sdk.currentUser.userId) {\n options?.onChannelDeleted?.();\n } else {\n channelUpdater(eventChannel);\n }\n },\n });\n\n useAsyncEffect(async () => {\n updateLoading(true);\n await init(userId);\n updateLoading(false);\n }, [channel.url, userId]);\n\n const refresh: ReturnType<UseGroupChannelMessages>['refresh'] = useFreshCallback(async () => {\n updateRefreshing(true);\n await init(userId);\n updateRefreshing(false);\n });\n\n const prev: ReturnType<UseGroupChannelMessages>['prev'] = useFreshCallback(async () => {\n if (queryRef.current && queryRef.current?.hasNext) {\n const list = await queryRef.current?.load();\n updateMessages(list, false, sdk.currentUser.userId);\n }\n });\n\n const next: ReturnType<UseGroupChannelMessages>['next'] = useFreshCallback(async () => {\n if (nextMessages.length > 0) {\n updateMessages(nextMessages, false, sdk.currentUser.userId);\n updateNextMessages([], true, sdk.currentUser.userId);\n }\n });\n\n const sendUserMessage: ReturnType<UseGroupChannelMessages>['sendUserMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendUserMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isUserMessage()) {\n updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isUserMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const sendFileMessage: ReturnType<UseGroupChannelMessages>['sendFileMessage'] = useFreshCallback(\n (params, onPending) => {\n return new Promise((resolve, reject) => {\n channel\n .sendFileMessage(params)\n .onPending((pendingMessage) => {\n if (pendingMessage.isFileMessage()) {\n updateNextMessages([pendingMessage], false, sdk.currentUser.userId);\n onPending?.(pendingMessage);\n }\n })\n .onSucceeded((sentMessage) => {\n if (sentMessage.isFileMessage()) {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n resolve(sentMessage);\n }\n })\n .onFailed((err, sentMessage) => {\n updateNextMessages([sentMessage], false, sdk.currentUser.userId);\n reject(err);\n });\n });\n },\n );\n const updateUserMessage: ReturnType<UseGroupChannelMessages>['updateUserMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateUserMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const updateFileMessage: ReturnType<UseGroupChannelMessages>['updateFileMessage'] = useFreshCallback(\n async (messageId, params) => {\n const updatedMessage = await channel.updateFileMessage(messageId, params);\n updateMessages([updatedMessage], false, sdk.currentUser.userId);\n return updatedMessage;\n },\n );\n const resendMessage: ReturnType<UseGroupChannelMessages>['resendMessage'] = useFreshCallback(\n async (failedMessage) => {\n const message = await (() => {\n if (failedMessage.isUserMessage()) return channel.resendUserMessage(failedMessage);\n if (failedMessage.isFileMessage()) return channel.resendFileMessage(failedMessage);\n return null;\n })();\n\n if (message) updateNextMessages([message], false, sdk.currentUser.userId);\n },\n );\n const deleteMessage: ReturnType<UseGroupChannelMessages>['deleteMessage'] = useFreshCallback(async (message) => {\n if (message.sendingStatus === 'succeeded') {\n if (message.isUserMessage()) await channel.deleteMessage(message);\n if (message.isFileMessage()) await channel.deleteMessage(message);\n } else {\n deleteMessages([message.messageId], [message.reqId]);\n }\n });\n\n return {\n loading,\n refreshing,\n refresh,\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendUserMessage,\n sendFileMessage,\n updateUserMessage,\n updateFileMessage,\n resendMessage,\n deleteMessage,\n };\n};\n"],"mappings":"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"}
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useOpenChannel = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
-
|
|
12
9
|
const useOpenChannel = (sdk, channelUrl) => {
|
|
13
10
|
const [channel, setChannel] = (0, _react.useState)();
|
|
14
11
|
const [loading, setLoading] = (0, _react.useState)(true);
|
|
@@ -28,6 +25,5 @@ const useOpenChannel = (sdk, channelUrl) => {
|
|
|
28
25
|
error
|
|
29
26
|
};
|
|
30
27
|
};
|
|
31
|
-
|
|
32
28
|
exports.useOpenChannel = useOpenChannel;
|
|
33
29
|
//# sourceMappingURL=useOpenChannel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useOpenChannel","sdk","channelUrl","channel","setChannel","useState","loading","setLoading","error","setError","useAsyncEffect","openChannel","getChannel","e"],"sources":["useOpenChannel.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { SendbirdChatSDK, SendbirdOpenChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\nexport const useOpenChannel = (sdk: SendbirdChatSDK, channelUrl: string) => {\n const [channel, setChannel] = useState<SendbirdOpenChannel>();\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<unknown>();\n\n useAsyncEffect(async () => {\n try {\n setChannel(await sdk.openChannel.getChannel(channelUrl));\n } catch (e) {\n setError(e);\n } finally {\n setLoading(false);\n }\n }, []);\n\n return { channel, loading, error };\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","require","_uikitUtils","useOpenChannel","sdk","channelUrl","channel","setChannel","useState","loading","setLoading","error","setError","useAsyncEffect","openChannel","getChannel","e","exports"],"sources":["useOpenChannel.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { SendbirdChatSDK, SendbirdOpenChannel, useAsyncEffect } from '@sendbird/uikit-utils';\n\nexport const useOpenChannel = (sdk: SendbirdChatSDK, channelUrl: string) => {\n const [channel, setChannel] = useState<SendbirdOpenChannel>();\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<unknown>();\n\n useAsyncEffect(async () => {\n try {\n setChannel(await sdk.openChannel.getChannel(channelUrl));\n } catch (e) {\n setError(e);\n } finally {\n setLoading(false);\n }\n }, []);\n\n return { channel, loading, error };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAEO,MAAME,cAAc,GAAGA,CAACC,GAAoB,EAAEC,UAAkB,KAAK;EAC1E,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,GAAuB;EAC7D,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAF,eAAQ,EAAC,IAAI,CAAC;EAC5C,MAAM,CAACG,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAJ,eAAQ,GAAW;EAE7C,IAAAK,0BAAc,EAAC,YAAY;IACzB,IAAI;MACFN,UAAU,CAAC,MAAMH,GAAG,CAACU,WAAW,CAACC,UAAU,CAACV,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC,OAAOW,CAAC,EAAE;MACVJ,QAAQ,CAACI,CAAC,CAAC;IACb,CAAC,SAAS;MACRN,UAAU,CAAC,KAAK,CAAC;IACnB;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEJ,OAAO;IAAEG,OAAO;IAAEE;EAAM,CAAC;AACpC,CAAC;AAACM,OAAA,CAAAd,cAAA,GAAAA,cAAA"}
|
|
@@ -4,12 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useOpenChannelList = void 0;
|
|
7
|
-
|
|
8
7
|
var _useOpenChannelListWithQuery = require("./useOpenChannelListWithQuery");
|
|
9
|
-
|
|
10
8
|
const useOpenChannelList = (sdk, userId, options) => {
|
|
11
9
|
return (0, _useOpenChannelListWithQuery.useOpenChannelListWithQuery)(sdk, userId, options);
|
|
12
10
|
};
|
|
13
|
-
|
|
14
11
|
exports.useOpenChannelList = useOpenChannelList;
|
|
15
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useOpenChannelList","sdk","userId","options","useOpenChannelListWithQuery"],"sources":["index.ts"],"sourcesContent":["import type { UseOpenChannelList } from '../../types';\nimport { useOpenChannelListWithQuery } from './useOpenChannelListWithQuery';\n\nexport const useOpenChannelList: UseOpenChannelList = (sdk, userId, options) => {\n return useOpenChannelListWithQuery(sdk, userId, options);\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_useOpenChannelListWithQuery","require","useOpenChannelList","sdk","userId","options","useOpenChannelListWithQuery","exports"],"sources":["index.ts"],"sourcesContent":["import type { UseOpenChannelList } from '../../types';\nimport { useOpenChannelListWithQuery } from './useOpenChannelListWithQuery';\n\nexport const useOpenChannelList: UseOpenChannelList = (sdk, userId, options) => {\n return useOpenChannelListWithQuery(sdk, userId, options);\n};\n"],"mappings":";;;;;;AACA,IAAAA,4BAAA,GAAAC,OAAA;AAEO,MAAMC,kBAAsC,GAAGA,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAC9E,OAAO,IAAAC,wDAA2B,EAACH,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;AAC1D,CAAC;AAACE,OAAA,CAAAL,kBAAA,GAAAA,kBAAA"}
|
|
@@ -4,22 +4,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useOpenChannelListReducer = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
-
|
|
12
9
|
const defaultReducer = (_ref, action) => {
|
|
13
|
-
let {
|
|
10
|
+
let {
|
|
11
|
+
...draft
|
|
14
12
|
} = _ref;
|
|
15
|
-
|
|
16
13
|
switch (action.type) {
|
|
17
14
|
case 'update_error':
|
|
18
15
|
{
|
|
19
16
|
draft.error = action.value.error;
|
|
20
17
|
break;
|
|
21
18
|
}
|
|
22
|
-
|
|
23
19
|
case 'update_refreshing':
|
|
24
20
|
case 'update_loading':
|
|
25
21
|
{
|
|
@@ -27,7 +23,6 @@ const defaultReducer = (_ref, action) => {
|
|
|
27
23
|
draft[key] = action.value.status;
|
|
28
24
|
break;
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
case 'update_channels':
|
|
32
27
|
{
|
|
33
28
|
(0, _uikitUtils.getOpenChannels)(action.value.channels).forEach(freshChannel => {
|
|
@@ -36,7 +31,6 @@ const defaultReducer = (_ref, action) => {
|
|
|
36
31
|
});
|
|
37
32
|
break;
|
|
38
33
|
}
|
|
39
|
-
|
|
40
34
|
case 'delete_channels':
|
|
41
35
|
{
|
|
42
36
|
action.value.channelUrls.forEach(url => {
|
|
@@ -45,24 +39,19 @@ const defaultReducer = (_ref, action) => {
|
|
|
45
39
|
});
|
|
46
40
|
break;
|
|
47
41
|
}
|
|
48
|
-
|
|
49
42
|
case 'append_channels':
|
|
50
43
|
{
|
|
51
44
|
const openChannels = (0, _uikitUtils.getOpenChannels)(action.value.channels);
|
|
52
|
-
|
|
53
45
|
if (action.value.clearBeforeAction) {
|
|
54
46
|
draft.openChannels = openChannels;
|
|
55
47
|
} else {
|
|
56
48
|
draft.openChannels = [...draft.openChannels, ...openChannels];
|
|
57
49
|
}
|
|
58
|
-
|
|
59
50
|
break;
|
|
60
51
|
}
|
|
61
52
|
}
|
|
62
|
-
|
|
63
53
|
return draft;
|
|
64
54
|
};
|
|
65
|
-
|
|
66
55
|
const useOpenChannelListReducer = () => {
|
|
67
56
|
const [{
|
|
68
57
|
error,
|
|
@@ -75,7 +64,6 @@ const useOpenChannelListReducer = () => {
|
|
|
75
64
|
openChannels: [],
|
|
76
65
|
error: null
|
|
77
66
|
});
|
|
78
|
-
|
|
79
67
|
const updateChannels = channels => {
|
|
80
68
|
dispatch({
|
|
81
69
|
type: 'update_channels',
|
|
@@ -84,7 +72,6 @@ const useOpenChannelListReducer = () => {
|
|
|
84
72
|
}
|
|
85
73
|
});
|
|
86
74
|
};
|
|
87
|
-
|
|
88
75
|
const deleteChannels = channelUrls => {
|
|
89
76
|
dispatch({
|
|
90
77
|
type: 'delete_channels',
|
|
@@ -93,7 +80,6 @@ const useOpenChannelListReducer = () => {
|
|
|
93
80
|
}
|
|
94
81
|
});
|
|
95
82
|
};
|
|
96
|
-
|
|
97
83
|
const appendChannels = (channels, clearBeforeAction) => {
|
|
98
84
|
dispatch({
|
|
99
85
|
type: 'append_channels',
|
|
@@ -103,7 +89,6 @@ const useOpenChannelListReducer = () => {
|
|
|
103
89
|
}
|
|
104
90
|
});
|
|
105
91
|
};
|
|
106
|
-
|
|
107
92
|
const updateLoading = status => {
|
|
108
93
|
dispatch({
|
|
109
94
|
type: 'update_loading',
|
|
@@ -112,7 +97,6 @@ const useOpenChannelListReducer = () => {
|
|
|
112
97
|
}
|
|
113
98
|
});
|
|
114
99
|
};
|
|
115
|
-
|
|
116
100
|
const updateRefreshing = status => {
|
|
117
101
|
dispatch({
|
|
118
102
|
type: 'update_refreshing',
|
|
@@ -121,7 +105,6 @@ const useOpenChannelListReducer = () => {
|
|
|
121
105
|
}
|
|
122
106
|
});
|
|
123
107
|
};
|
|
124
|
-
|
|
125
108
|
const updateError = error => {
|
|
126
109
|
dispatch({
|
|
127
110
|
type: 'update_error',
|
|
@@ -130,7 +113,6 @@ const useOpenChannelListReducer = () => {
|
|
|
130
113
|
}
|
|
131
114
|
});
|
|
132
115
|
};
|
|
133
|
-
|
|
134
116
|
return {
|
|
135
117
|
updateError,
|
|
136
118
|
updateLoading,
|
|
@@ -144,6 +126,5 @@ const useOpenChannelListReducer = () => {
|
|
|
144
126
|
openChannels
|
|
145
127
|
};
|
|
146
128
|
};
|
|
147
|
-
|
|
148
129
|
exports.useOpenChannelListReducer = useOpenChannelListReducer;
|
|
149
130
|
//# sourceMappingURL=reducer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultReducer","action","draft","type","error","value","key","status","getOpenChannels","channels","forEach","freshChannel","idx","openChannels","findIndex","staleChannel","url","channelUrls","c","splice","clearBeforeAction","useOpenChannelListReducer","loading","refreshing","dispatch","useReducer","updateChannels","deleteChannels","appendChannels","updateLoading","updateRefreshing","updateError"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel, SendbirdOpenChannel } from '@sendbird/uikit-utils';\nimport { getOpenChannels } from '@sendbird/uikit-utils';\n\ntype Action =\n | {\n type: 'update_error';\n value: { error: unknown | null };\n }\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_channels';\n value: { channels: SendbirdChannel[] };\n }\n | {\n type: 'delete_channels';\n value: { channelUrls: string[] };\n }\n | {\n type: 'append_channels';\n value: { channels: SendbirdChannel[]; clearBeforeAction: boolean };\n };\n\ntype State = {\n error: unknown | null;\n loading: boolean;\n refreshing: boolean;\n openChannels: SendbirdOpenChannel[];\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_error': {\n draft.error = action.value.error;\n break;\n }\n case 'update_refreshing':\n case 'update_loading': {\n const key = action.type === 'update_loading' ? 'loading' : 'refreshing';\n draft[key] = action.value.status;\n break;\n }\n case 'update_channels': {\n getOpenChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.openChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.openChannels[idx] = freshChannel;\n });\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.openChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.openChannels.splice(idx, 1);\n });\n break;\n }\n case 'append_channels': {\n const openChannels = getOpenChannels(action.value.channels);\n if (action.value.clearBeforeAction) {\n draft.openChannels = openChannels;\n } else {\n draft.openChannels = [...draft.openChannels, ...openChannels];\n }\n break;\n }\n }\n return draft;\n};\n\nexport const useOpenChannelListReducer = () => {\n const [{ error, loading, refreshing, openChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n openChannels: [],\n error: null,\n });\n\n const updateChannels = (channels: SendbirdChannel[]) => {\n dispatch({ type: 'update_channels', value: { channels } });\n };\n const deleteChannels = (channelUrls: string[]) => {\n dispatch({ type: 'delete_channels', value: { channelUrls } });\n };\n const appendChannels = (channels: SendbirdChannel[], clearBeforeAction: boolean) => {\n dispatch({ type: 'append_channels', value: { channels, clearBeforeAction } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const updateError = (error: unknown | null) => {\n dispatch({ type: 'update_error', value: { error } });\n };\n\n return {\n updateError,\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n appendChannels,\n\n error,\n loading,\n refreshing,\n openChannels,\n };\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","require","_uikitUtils","defaultReducer","_ref","action","draft","type","error","value","key","status","getOpenChannels","channels","forEach","freshChannel","idx","openChannels","findIndex","staleChannel","url","channelUrls","c","splice","clearBeforeAction","useOpenChannelListReducer","loading","refreshing","dispatch","useReducer","updateChannels","deleteChannels","appendChannels","updateLoading","updateRefreshing","updateError","exports"],"sources":["reducer.ts"],"sourcesContent":["import { useReducer } from 'react';\n\nimport type { SendbirdChannel, SendbirdOpenChannel } from '@sendbird/uikit-utils';\nimport { getOpenChannels } from '@sendbird/uikit-utils';\n\ntype Action =\n | {\n type: 'update_error';\n value: { error: unknown | null };\n }\n | {\n type: 'update_loading' | 'update_refreshing';\n value: { status: boolean };\n }\n | {\n type: 'update_channels';\n value: { channels: SendbirdChannel[] };\n }\n | {\n type: 'delete_channels';\n value: { channelUrls: string[] };\n }\n | {\n type: 'append_channels';\n value: { channels: SendbirdChannel[]; clearBeforeAction: boolean };\n };\n\ntype State = {\n error: unknown | null;\n loading: boolean;\n refreshing: boolean;\n openChannels: SendbirdOpenChannel[];\n};\n\nconst defaultReducer = ({ ...draft }: State, action: Action) => {\n switch (action.type) {\n case 'update_error': {\n draft.error = action.value.error;\n break;\n }\n case 'update_refreshing':\n case 'update_loading': {\n const key = action.type === 'update_loading' ? 'loading' : 'refreshing';\n draft[key] = action.value.status;\n break;\n }\n case 'update_channels': {\n getOpenChannels(action.value.channels).forEach((freshChannel) => {\n const idx = draft.openChannels.findIndex((staleChannel) => staleChannel.url === freshChannel.url);\n if (idx > -1) draft.openChannels[idx] = freshChannel;\n });\n break;\n }\n case 'delete_channels': {\n action.value.channelUrls.forEach((url) => {\n const idx = draft.openChannels.findIndex((c) => c.url === url);\n if (idx > -1) draft.openChannels.splice(idx, 1);\n });\n break;\n }\n case 'append_channels': {\n const openChannels = getOpenChannels(action.value.channels);\n if (action.value.clearBeforeAction) {\n draft.openChannels = openChannels;\n } else {\n draft.openChannels = [...draft.openChannels, ...openChannels];\n }\n break;\n }\n }\n return draft;\n};\n\nexport const useOpenChannelListReducer = () => {\n const [{ error, loading, refreshing, openChannels }, dispatch] = useReducer(defaultReducer, {\n loading: true,\n refreshing: false,\n openChannels: [],\n error: null,\n });\n\n const updateChannels = (channels: SendbirdChannel[]) => {\n dispatch({ type: 'update_channels', value: { channels } });\n };\n const deleteChannels = (channelUrls: string[]) => {\n dispatch({ type: 'delete_channels', value: { channelUrls } });\n };\n const appendChannels = (channels: SendbirdChannel[], clearBeforeAction: boolean) => {\n dispatch({ type: 'append_channels', value: { channels, clearBeforeAction } });\n };\n const updateLoading = (status: boolean) => {\n dispatch({ type: 'update_loading', value: { status } });\n };\n const updateRefreshing = (status: boolean) => {\n dispatch({ type: 'update_refreshing', value: { status } });\n };\n\n const updateError = (error: unknown | null) => {\n dispatch({ type: 'update_error', value: { error } });\n };\n\n return {\n updateError,\n updateLoading,\n updateRefreshing,\n updateChannels,\n deleteChannels,\n appendChannels,\n\n error,\n loading,\n refreshing,\n openChannels,\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,WAAA,GAAAD,OAAA;AA+BA,MAAME,cAAc,GAAGA,CAAAC,IAAA,EAAsBC,MAAc,KAAK;EAAA,IAAxC;IAAE,GAAGC;EAAa,CAAC,GAAAF,IAAA;EACzC,QAAQC,MAAM,CAACE,IAAI;IACjB,KAAK,cAAc;MAAE;QACnBD,KAAK,CAACE,KAAK,GAAGH,MAAM,CAACI,KAAK,CAACD,KAAK;QAChC;MACF;IACA,KAAK,mBAAmB;IACxB,KAAK,gBAAgB;MAAE;QACrB,MAAME,GAAG,GAAGL,MAAM,CAACE,IAAI,KAAK,gBAAgB,GAAG,SAAS,GAAG,YAAY;QACvED,KAAK,CAACI,GAAG,CAAC,GAAGL,MAAM,CAACI,KAAK,CAACE,MAAM;QAChC;MACF;IACA,KAAK,iBAAiB;MAAE;QACtB,IAAAC,2BAAe,EAACP,MAAM,CAACI,KAAK,CAACI,QAAQ,CAAC,CAACC,OAAO,CAAEC,YAAY,IAAK;UAC/D,MAAMC,GAAG,GAAGV,KAAK,CAACW,YAAY,CAACC,SAAS,CAAEC,YAAY,IAAKA,YAAY,CAACC,GAAG,KAAKL,YAAY,CAACK,GAAG,CAAC;UACjG,IAAIJ,GAAG,GAAG,CAAC,CAAC,EAAEV,KAAK,CAACW,YAAY,CAACD,GAAG,CAAC,GAAGD,YAAY;QACtD,CAAC,CAAC;QACF;MACF;IACA,KAAK,iBAAiB;MAAE;QACtBV,MAAM,CAACI,KAAK,CAACY,WAAW,CAACP,OAAO,CAAEM,GAAG,IAAK;UACxC,MAAMJ,GAAG,GAAGV,KAAK,CAACW,YAAY,CAACC,SAAS,CAAEI,CAAC,IAAKA,CAAC,CAACF,GAAG,KAAKA,GAAG,CAAC;UAC9D,IAAIJ,GAAG,GAAG,CAAC,CAAC,EAAEV,KAAK,CAACW,YAAY,CAACM,MAAM,CAACP,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC;QACF;MACF;IACA,KAAK,iBAAiB;MAAE;QACtB,MAAMC,YAAY,GAAG,IAAAL,2BAAe,EAACP,MAAM,CAACI,KAAK,CAACI,QAAQ,CAAC;QAC3D,IAAIR,MAAM,CAACI,KAAK,CAACe,iBAAiB,EAAE;UAClClB,KAAK,CAACW,YAAY,GAAGA,YAAY;QACnC,CAAC,MAAM;UACLX,KAAK,CAACW,YAAY,GAAG,CAAC,GAAGX,KAAK,CAACW,YAAY,EAAE,GAAGA,YAAY,CAAC;QAC/D;QACA;MACF;EAAC;EAEH,OAAOX,KAAK;AACd,CAAC;AAEM,MAAMmB,yBAAyB,GAAGA,CAAA,KAAM;EAC7C,MAAM,CAAC;IAAEjB,KAAK;IAAEkB,OAAO;IAAEC,UAAU;IAAEV;EAAa,CAAC,EAAEW,QAAQ,CAAC,GAAG,IAAAC,iBAAU,EAAC1B,cAAc,EAAE;IAC1FuB,OAAO,EAAE,IAAI;IACbC,UAAU,EAAE,KAAK;IACjBV,YAAY,EAAE,EAAE;IAChBT,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,MAAMsB,cAAc,GAAIjB,QAA2B,IAAK;IACtDe,QAAQ,CAAC;MAAErB,IAAI,EAAE,iBAAiB;MAAEE,KAAK,EAAE;QAAEI;MAAS;IAAE,CAAC,CAAC;EAC5D,CAAC;EACD,MAAMkB,cAAc,GAAIV,WAAqB,IAAK;IAChDO,QAAQ,CAAC;MAAErB,IAAI,EAAE,iBAAiB;MAAEE,KAAK,EAAE;QAAEY;MAAY;IAAE,CAAC,CAAC;EAC/D,CAAC;EACD,MAAMW,cAAc,GAAGA,CAACnB,QAA2B,EAAEW,iBAA0B,KAAK;IAClFI,QAAQ,CAAC;MAAErB,IAAI,EAAE,iBAAiB;MAAEE,KAAK,EAAE;QAAEI,QAAQ;QAAEW;MAAkB;IAAE,CAAC,CAAC;EAC/E,CAAC;EACD,MAAMS,aAAa,GAAItB,MAAe,IAAK;IACzCiB,QAAQ,CAAC;MAAErB,IAAI,EAAE,gBAAgB;MAAEE,KAAK,EAAE;QAAEE;MAAO;IAAE,CAAC,CAAC;EACzD,CAAC;EACD,MAAMuB,gBAAgB,GAAIvB,MAAe,IAAK;IAC5CiB,QAAQ,CAAC;MAAErB,IAAI,EAAE,mBAAmB;MAAEE,KAAK,EAAE;QAAEE;MAAO;IAAE,CAAC,CAAC;EAC5D,CAAC;EAED,MAAMwB,WAAW,GAAI3B,KAAqB,IAAK;IAC7CoB,QAAQ,CAAC;MAAErB,IAAI,EAAE,cAAc;MAAEE,KAAK,EAAE;QAAED;MAAM;IAAE,CAAC,CAAC;EACtD,CAAC;EAED,OAAO;IACL2B,WAAW;IACXF,aAAa;IACbC,gBAAgB;IAChBJ,cAAc;IACdC,cAAc;IACdC,cAAc;IAEdxB,KAAK;IACLkB,OAAO;IACPC,UAAU;IACVV;EACF,CAAC;AACH,CAAC;AAACmB,OAAA,CAAAX,yBAAA,GAAAA,yBAAA"}
|
|
@@ -4,21 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useOpenChannelListWithQuery = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
-
|
|
12
9
|
var _useChannelHandler = require("../../handler/useChannelHandler");
|
|
13
|
-
|
|
14
10
|
var _reducer = require("./reducer");
|
|
15
|
-
|
|
16
11
|
const createOpenChannelListQuery = (sdk, queryCreator) => {
|
|
17
12
|
const passedQuery = queryCreator === null || queryCreator === void 0 ? void 0 : queryCreator();
|
|
18
13
|
if (passedQuery) return passedQuery;
|
|
19
14
|
return sdk.openChannel.createOpenChannelListQuery({});
|
|
20
15
|
};
|
|
21
|
-
|
|
22
16
|
const useOpenChannelListWithQuery = (sdk, userId, options) => {
|
|
23
17
|
const queryRef = (0, _react.useRef)();
|
|
24
18
|
const handlerId = (0, _uikitUtils.useUniqHandlerId)('useOpenChannelListWithQuery');
|
|
@@ -37,34 +31,27 @@ const useOpenChannelListWithQuery = (sdk, userId, options) => {
|
|
|
37
31
|
const init = (0, _uikitUtils.useFreshCallback)(async uid => {
|
|
38
32
|
if (uid) {
|
|
39
33
|
var _queryRef$current;
|
|
40
|
-
|
|
41
34
|
queryRef.current = createOpenChannelListQuery(sdk, options === null || options === void 0 ? void 0 : options.queryCreator);
|
|
42
|
-
|
|
43
35
|
if ((_queryRef$current = queryRef.current) !== null && _queryRef$current !== void 0 && _queryRef$current.hasNext) {
|
|
44
36
|
const channels = await queryRef.current.next();
|
|
45
37
|
appendChannels(channels, true);
|
|
46
38
|
}
|
|
47
39
|
}
|
|
48
40
|
});
|
|
49
|
-
|
|
50
41
|
const updateChannel = channel => {
|
|
51
42
|
if (channel.isOpenChannel()) updateChannels([channel]);
|
|
52
43
|
};
|
|
53
|
-
|
|
54
44
|
(0, _useChannelHandler.useChannelHandler)(sdk, handlerId, {
|
|
55
45
|
onChannelChanged: updateChannel,
|
|
56
46
|
onChannelFrozen: updateChannel,
|
|
57
47
|
onChannelUnfrozen: updateChannel,
|
|
58
48
|
onChannelDeleted: url => deleteChannels([url]),
|
|
59
|
-
|
|
60
49
|
onUserBanned(channel, user) {
|
|
61
50
|
const isMe = user.userId === userId;
|
|
62
51
|
if (isMe && channel.isOpenChannel()) deleteChannels([channel.url]);
|
|
63
52
|
},
|
|
64
|
-
|
|
65
53
|
onUserEntered: (channel, user) => {
|
|
66
54
|
const isMe = user.userId === userId;
|
|
67
|
-
|
|
68
55
|
if (isMe && channel.isOpenChannel() && !openChannels.find(it => it.url === channel.url)) {
|
|
69
56
|
appendChannels([], true);
|
|
70
57
|
refresh();
|
|
@@ -74,7 +61,6 @@ const useOpenChannelListWithQuery = (sdk, userId, options) => {
|
|
|
74
61
|
(0, _uikitUtils.useAsyncEffect)(async () => {
|
|
75
62
|
updateLoading(true);
|
|
76
63
|
updateError(null);
|
|
77
|
-
|
|
78
64
|
try {
|
|
79
65
|
await init(userId);
|
|
80
66
|
} catch (e) {
|
|
@@ -83,11 +69,10 @@ const useOpenChannelListWithQuery = (sdk, userId, options) => {
|
|
|
83
69
|
} finally {
|
|
84
70
|
updateLoading(false);
|
|
85
71
|
}
|
|
86
|
-
}, [
|
|
72
|
+
}, [userId]);
|
|
87
73
|
const refresh = (0, _uikitUtils.useFreshCallback)(async () => {
|
|
88
74
|
updateRefreshing(true);
|
|
89
75
|
updateError(null);
|
|
90
|
-
|
|
91
76
|
try {
|
|
92
77
|
await init(userId);
|
|
93
78
|
} catch (e) {
|
|
@@ -99,7 +84,6 @@ const useOpenChannelListWithQuery = (sdk, userId, options) => {
|
|
|
99
84
|
});
|
|
100
85
|
const next = (0, _uikitUtils.useFreshCallback)(async () => {
|
|
101
86
|
var _queryRef$current2;
|
|
102
|
-
|
|
103
87
|
if ((_queryRef$current2 = queryRef.current) !== null && _queryRef$current2 !== void 0 && _queryRef$current2.hasNext) {
|
|
104
88
|
const channels = await queryRef.current.next();
|
|
105
89
|
appendChannels(channels, false);
|
|
@@ -114,6 +98,5 @@ const useOpenChannelListWithQuery = (sdk, userId, options) => {
|
|
|
114
98
|
next
|
|
115
99
|
};
|
|
116
100
|
};
|
|
117
|
-
|
|
118
101
|
exports.useOpenChannelListWithQuery = useOpenChannelListWithQuery;
|
|
119
102
|
//# sourceMappingURL=useOpenChannelListWithQuery.js.map
|