@sendbird/uikit-chat-hooks 2.4.1 → 2.5.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.
- package/README.md +2 -2
- package/lib/commonjs/channel/useChannelMessagesReducer.js +153 -0
- package/lib/commonjs/channel/useChannelMessagesReducer.js.map +1 -0
- 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/useGroupChannelMessagesWithCollection.js +172 -131
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +76 -73
- 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 -22
- 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/useOpenChannelMessagesWithQuery.js +128 -57
- 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 +5 -20
- 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/commonjs/types.js.map +1 -1
- package/lib/module/channel/useChannelMessagesReducer.js +146 -0
- package/lib/module/channel/useChannelMessagesReducer.js.map +1 -0
- 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/useGroupChannelMessagesWithCollection.js +174 -125
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -1
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +78 -70
- 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 -17
- 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/useOpenChannelMessagesWithQuery.js +129 -53
- 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 +5 -15
- 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/module/types.js.map +1 -1
- package/lib/typescript/src/channel/useChannelMessagesReducer.d.ts +18 -0
- package/lib/typescript/src/channel/useGroupChannelList/reducer.d.ts +1 -1
- 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/lib/typescript/src/types.d.ts +51 -20
- package/package.json +15 -10
- package/src/channel/useChannelMessagesReducer.ts +143 -0
- 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/useGroupChannelMessagesWithCollection.ts +174 -105
- package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +90 -63
- package/src/channel/useOpenChannelList/useOpenChannelListWithQuery.ts +1 -5
- package/src/channel/useOpenChannelMessages/useOpenChannelMessagesWithQuery.ts +143 -26
- package/src/common/useUserList.ts +4 -4
- package/src/handler/useChannelHandler.ts +11 -24
- package/src/handler/useConnectionHandler.ts +11 -5
- package/src/index.ts +0 -1
- package/src/types.ts +58 -20
- package/lib/commonjs/channel/useGroupChannelMessages/reducer.js +0 -154
- package/lib/commonjs/channel/useGroupChannelMessages/reducer.js.map +0 -1
- package/lib/commonjs/channel/useOpenChannelMessages/reducer.js +0 -154
- package/lib/commonjs/channel/useOpenChannelMessages/reducer.js.map +0 -1
- package/lib/commonjs/common/useTotalUnreadChannelCount.js +0 -29
- package/lib/commonjs/common/useTotalUnreadChannelCount.js.map +0 -1
- package/lib/module/channel/useGroupChannelMessages/reducer.js +0 -144
- package/lib/module/channel/useGroupChannelMessages/reducer.js.map +0 -1
- package/lib/module/channel/useOpenChannelMessages/reducer.js +0 -144
- package/lib/module/channel/useOpenChannelMessages/reducer.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/channel/useGroupChannelMessages/reducer.d.ts +0 -15
- package/lib/typescript/src/channel/useOpenChannelMessages/reducer.d.ts +0 -15
- package/lib/typescript/src/common/useTotalUnreadChannelCount.d.ts +0 -6
- package/src/channel/useGroupChannelMessages/reducer.ts +0 -125
- package/src/channel/useOpenChannelMessages/reducer.ts +0 -125
- package/src/common/useTotalUnreadChannelCount.ts +0 -26
|
@@ -4,18 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useTotalUnreadMessageCount = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _groupChannel = require("@sendbird/chat/groupChannel");
|
|
11
|
-
|
|
12
9
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
13
|
-
|
|
14
10
|
var _useUserEventHandler = require("../handler/useUserEventHandler");
|
|
15
|
-
|
|
16
11
|
const useTotalUnreadMessageCount = (sdk, options) => {
|
|
17
12
|
var _options$params, _options$params2;
|
|
18
|
-
|
|
19
13
|
const handlerId = (0, _uikitUtils.useUniqHandlerId)('useTotalUnreadMessageCount');
|
|
20
14
|
const [unreadMessageCount, setUnreadMessageCount] = (0, _react.useState)(0);
|
|
21
15
|
(0, _uikitUtils.useAsyncEffect)(async () => {
|
|
@@ -30,6 +24,5 @@ const useTotalUnreadMessageCount = (sdk, options) => {
|
|
|
30
24
|
});
|
|
31
25
|
return (0, _uikitUtils.truncatedCount)(unreadMessageCount, options === null || options === void 0 ? void 0 : options.maxCount);
|
|
32
26
|
};
|
|
33
|
-
|
|
34
27
|
exports.useTotalUnreadMessageCount = useTotalUnreadMessageCount;
|
|
35
28
|
//# sourceMappingURL=useTotalUnreadMessageCount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useTotalUnreadMessageCount","sdk","options","handlerId","useUniqHandlerId","unreadMessageCount","setUnreadMessageCount","useState","useAsyncEffect","unreadCount","groupChannel","getTotalUnreadMessageCount","superChannelFilter","SuperChannelFilter","ALL","params","channelCustomTypesFilter","useUserEventHandler","onTotalUnreadMessageCountUpdated","totalCount","truncatedCount","maxCount"],"sources":["useTotalUnreadMessageCount.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { SuperChannelFilter, TotalUnreadMessageCountParams } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { truncatedCount, useAsyncEffect, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useUserEventHandler } from '../handler/useUserEventHandler';\n\ntype Options = {\n params?: TotalUnreadMessageCountParams;\n maxCount?: number;\n};\n\nexport const useTotalUnreadMessageCount = (sdk: SendbirdChatSDK, options?: Options) => {\n const handlerId = useUniqHandlerId('useTotalUnreadMessageCount');\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n\n useAsyncEffect(async () => {\n const unreadCount = await sdk.groupChannel.getTotalUnreadMessageCount({\n superChannelFilter: SuperChannelFilter.ALL,\n ...options?.params,\n });\n setUnreadMessageCount(unreadCount);\n }, [sdk, options?.params?.superChannelFilter, options?.params?.channelCustomTypesFilter]);\n\n useUserEventHandler(sdk, handlerId, {\n onTotalUnreadMessageCountUpdated: (totalCount: number) => setUnreadMessageCount(totalCount),\n });\n\n return truncatedCount(unreadMessageCount, options?.maxCount);\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","require","_groupChannel","_uikitUtils","_useUserEventHandler","useTotalUnreadMessageCount","sdk","options","_options$params","_options$params2","handlerId","useUniqHandlerId","unreadMessageCount","setUnreadMessageCount","useState","useAsyncEffect","unreadCount","groupChannel","getTotalUnreadMessageCount","superChannelFilter","SuperChannelFilter","ALL","params","channelCustomTypesFilter","useUserEventHandler","onTotalUnreadMessageCountUpdated","totalCount","truncatedCount","maxCount","exports"],"sources":["useTotalUnreadMessageCount.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { SuperChannelFilter, TotalUnreadMessageCountParams } from '@sendbird/chat/groupChannel';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { truncatedCount, useAsyncEffect, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { useUserEventHandler } from '../handler/useUserEventHandler';\n\ntype Options = {\n params?: TotalUnreadMessageCountParams;\n maxCount?: number;\n};\n\nexport const useTotalUnreadMessageCount = (sdk: SendbirdChatSDK, options?: Options) => {\n const handlerId = useUniqHandlerId('useTotalUnreadMessageCount');\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n\n useAsyncEffect(async () => {\n const unreadCount = await sdk.groupChannel.getTotalUnreadMessageCount({\n superChannelFilter: SuperChannelFilter.ALL,\n ...options?.params,\n });\n setUnreadMessageCount(unreadCount);\n }, [sdk, options?.params?.superChannelFilter, options?.params?.channelCustomTypesFilter]);\n\n useUserEventHandler(sdk, handlerId, {\n onTotalUnreadMessageCountUpdated: (totalCount: number) => setUnreadMessageCount(totalCount),\n });\n\n return truncatedCount(unreadMessageCount, options?.maxCount);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,oBAAA,GAAAH,OAAA;AAOO,MAAMI,0BAA0B,GAAGA,CAACC,GAAoB,EAAEC,OAAiB,KAAK;EAAA,IAAAC,eAAA,EAAAC,gBAAA;EACrF,MAAMC,SAAS,GAAG,IAAAC,4BAAgB,EAAC,4BAA4B,CAAC;EAChE,MAAM,CAACC,kBAAkB,EAAEC,qBAAqB,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC;EAE/D,IAAAC,0BAAc,EAAC,YAAY;IACzB,MAAMC,WAAW,GAAG,MAAMV,GAAG,CAACW,YAAY,CAACC,0BAA0B,CAAC;MACpEC,kBAAkB,EAAEC,gCAAkB,CAACC,GAAG;MAC1C,IAAGd,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEe,MAAM;IACpB,CAAC,CAAC;IACFT,qBAAqB,CAACG,WAAW,CAAC;EACpC,CAAC,EAAE,CAACV,GAAG,EAAEC,OAAO,aAAPA,OAAO,wBAAAC,eAAA,GAAPD,OAAO,CAAEe,MAAM,cAAAd,eAAA,uBAAfA,eAAA,CAAiBW,kBAAkB,EAAEZ,OAAO,aAAPA,OAAO,wBAAAE,gBAAA,GAAPF,OAAO,CAAEe,MAAM,cAAAb,gBAAA,uBAAfA,gBAAA,CAAiBc,wBAAwB,CAAC,CAAC;EAEzF,IAAAC,wCAAmB,EAAClB,GAAG,EAAEI,SAAS,EAAE;IAClCe,gCAAgC,EAAGC,UAAkB,IAAKb,qBAAqB,CAACa,UAAU;EAC5F,CAAC,CAAC;EAEF,OAAO,IAAAC,0BAAc,EAACf,kBAAkB,EAAEL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEqB,QAAQ,CAAC;AAC9D,CAAC;AAACC,OAAA,CAAAxB,0BAAA,GAAAA,0BAAA"}
|
|
@@ -4,16 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useUserList = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
-
|
|
12
9
|
const createUserQuery = (sdk, queryCreator) => {
|
|
13
|
-
if (queryCreator) return queryCreator();
|
|
14
|
-
|
|
10
|
+
if (queryCreator) return queryCreator();
|
|
11
|
+
// In order to use the API, the option must be turned on in the dashboard.
|
|
15
12
|
return sdk.createApplicationUserListQuery();
|
|
16
13
|
};
|
|
14
|
+
|
|
17
15
|
/**
|
|
18
16
|
* Get user list from query.
|
|
19
17
|
* default query uses 'instance.createApplicationUserListQuery'
|
|
@@ -35,8 +33,6 @@ const createUserQuery = (sdk, queryCreator) => {
|
|
|
35
33
|
* })
|
|
36
34
|
* ```
|
|
37
35
|
* */
|
|
38
|
-
|
|
39
|
-
|
|
40
36
|
const useUserList = (sdk, options) => {
|
|
41
37
|
const query = (0, _react.useRef)();
|
|
42
38
|
const [error, setError] = (0, _react.useState)(null);
|
|
@@ -63,23 +59,17 @@ const useUserList = (sdk, options) => {
|
|
|
63
59
|
return draft;
|
|
64
60
|
});
|
|
65
61
|
});
|
|
66
|
-
|
|
67
62
|
const updateUsers = (users, clearPrev) => {
|
|
68
63
|
if (clearPrev) setUsers(users);else setUsers(prev => prev.concat(users));
|
|
69
64
|
};
|
|
70
|
-
|
|
71
65
|
const init = (0, _uikitUtils.useFreshCallback)(async () => {
|
|
72
66
|
var _query$current;
|
|
73
|
-
|
|
74
67
|
query.current = createUserQuery(sdk, options === null || options === void 0 ? void 0 : options.queryCreator);
|
|
75
|
-
|
|
76
68
|
if ((_query$current = query.current) !== null && _query$current !== void 0 && _query$current.hasNext) {
|
|
77
69
|
var _query$current2;
|
|
78
|
-
|
|
79
70
|
const users = await ((_query$current2 = query.current) === null || _query$current2 === void 0 ? void 0 : _query$current2.next().catch(e => {
|
|
80
71
|
_uikitUtils.Logger.error(e);
|
|
81
|
-
|
|
82
|
-
if (e.code === _uikitUtils.SBErrorCode.NON_AUTHORIZED) _uikitUtils.Logger.warn(_uikitUtils.SBErrorMessage.ACL);
|
|
72
|
+
if (e.code === _uikitUtils.SBErrorCode.UNAUTHORIZED_REQUEST) _uikitUtils.Logger.warn(_uikitUtils.SBErrorMessage.ACL);
|
|
83
73
|
throw e;
|
|
84
74
|
}));
|
|
85
75
|
updateUsers(users, true);
|
|
@@ -88,7 +78,6 @@ const useUserList = (sdk, options) => {
|
|
|
88
78
|
(0, _uikitUtils.useAsyncEffect)(async () => {
|
|
89
79
|
setLoading(true);
|
|
90
80
|
setError(null);
|
|
91
|
-
|
|
92
81
|
try {
|
|
93
82
|
await init();
|
|
94
83
|
} catch (e) {
|
|
@@ -101,7 +90,6 @@ const useUserList = (sdk, options) => {
|
|
|
101
90
|
const refresh = (0, _uikitUtils.useFreshCallback)(async () => {
|
|
102
91
|
setRefreshing(true);
|
|
103
92
|
setError(null);
|
|
104
|
-
|
|
105
93
|
try {
|
|
106
94
|
await init();
|
|
107
95
|
} catch (e) {
|
|
@@ -113,12 +101,10 @@ const useUserList = (sdk, options) => {
|
|
|
113
101
|
});
|
|
114
102
|
const next = (0, _uikitUtils.useFreshCallback)(async () => {
|
|
115
103
|
var _query$current3;
|
|
116
|
-
|
|
117
104
|
if (query.current && (_query$current3 = query.current) !== null && _query$current3 !== void 0 && _query$current3.hasNext) {
|
|
118
105
|
const nextUsers = await query.current.next().catch(e => {
|
|
119
106
|
_uikitUtils.Logger.error(e);
|
|
120
|
-
|
|
121
|
-
if (e.code === _uikitUtils.SBErrorCode.NON_AUTHORIZED) _uikitUtils.Logger.warn(_uikitUtils.SBErrorMessage.ACL);
|
|
107
|
+
if (e.code === _uikitUtils.SBErrorCode.UNAUTHORIZED_REQUEST) _uikitUtils.Logger.warn(_uikitUtils.SBErrorMessage.ACL);
|
|
122
108
|
throw e;
|
|
123
109
|
});
|
|
124
110
|
updateUsers(nextUsers, false);
|
|
@@ -135,6 +121,5 @@ const useUserList = (sdk, options) => {
|
|
|
135
121
|
refresh
|
|
136
122
|
};
|
|
137
123
|
};
|
|
138
|
-
|
|
139
124
|
exports.useUserList = useUserList;
|
|
140
125
|
//# sourceMappingURL=useUserList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createUserQuery","sdk","queryCreator","createApplicationUserListQuery","useUserList","options","query","useRef","error","setError","useState","loading","setLoading","refreshing","setRefreshing","users","setUsers","sortedUsers","useMemo","sortComparator","sort","upsertUser","useFreshCallback","user","draft","userIdx","findIndex","it","userId","push","deleteUser","splice","updateUsers","clearPrev","prev","concat","init","current","hasNext","next","catch","e","Logger","code","SBErrorCode","
|
|
1
|
+
{"version":3,"names":["_react","require","_uikitUtils","createUserQuery","sdk","queryCreator","createApplicationUserListQuery","useUserList","options","query","useRef","error","setError","useState","loading","setLoading","refreshing","setRefreshing","users","setUsers","sortedUsers","useMemo","sortComparator","sort","upsertUser","useFreshCallback","user","_ref","draft","userIdx","findIndex","it","userId","push","deleteUser","_ref2","splice","updateUsers","clearPrev","prev","concat","init","_query$current","current","hasNext","_query$current2","next","catch","e","Logger","code","SBErrorCode","UNAUTHORIZED_REQUEST","warn","SBErrorMessage","ACL","useAsyncEffect","refresh","_query$current3","nextUsers","exports"],"sources":["useUserList.ts"],"sourcesContent":["import { useMemo, useRef, useState } from 'react';\n\nimport type { Optional, SendbirdChatSDK, SendbirdUser, UserStruct } from '@sendbird/uikit-utils';\nimport { Logger, SBErrorCode, SBErrorMessage, useAsyncEffect, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport type { CustomQueryInterface, UseUserListOptions, UseUserListReturn } from '../types';\n\nconst createUserQuery = <User extends UserStruct>(\n sdk: SendbirdChatSDK,\n queryCreator?: UseUserListOptions<User>['queryCreator'],\n) => {\n if (queryCreator) return queryCreator();\n // In order to use the API, the option must be turned on in the dashboard.\n return sdk.createApplicationUserListQuery() as unknown as CustomQueryInterface<User>;\n};\n\n/**\n * Get user list from query.\n * default query uses 'instance.createApplicationUserListQuery'\n * The response type of hook is depends on return type of 'query.next()'\n *\n * You can call hook with your custom query using {@link CustomQuery}\n * Or you can create your 'CustomQueryClass' implemented {@link CustomQueryInterface}'\n *\n * ```example\n * const { users } = useUserList(sdk, {\n * queryCreator: () => {\n * const friendQuery = sdk.createFriendListQuery();\n * return new CustomQuery({\n * next: () => friendQuery.next(),\n * isLoading: () => friendQuery.isLoading,\n * hasNext: () => friendQuery.hasMore,\n * });\n * }\n * })\n * ```\n * */\nexport const useUserList = <\n Options extends UseUserListOptions<UserStruct>,\n QueriedUser extends UserStruct = Options['queryCreator'] extends Optional<\n () => CustomQueryInterface<infer User extends UserStruct>\n >\n ? User\n : SendbirdUser,\n>(\n sdk: SendbirdChatSDK,\n options?: UseUserListOptions<QueriedUser>,\n): UseUserListReturn<QueriedUser> => {\n const query = useRef<CustomQueryInterface<QueriedUser>>();\n\n const [error, setError] = useState<unknown>(null);\n const [loading, setLoading] = useState(false);\n const [refreshing, setRefreshing] = useState(false);\n\n const [users, setUsers] = useState<QueriedUser[]>([]);\n const sortedUsers = useMemo((): QueriedUser[] => {\n if (options?.sortComparator) return users.sort(options.sortComparator);\n return users;\n }, [users, options?.sortComparator]);\n\n const upsertUser = useFreshCallback((user: QueriedUser) => {\n setUsers(([...draft]) => {\n const userIdx = draft.findIndex((it) => it.userId === user.userId);\n if (userIdx > -1) draft[userIdx] = user;\n else draft.push(user);\n return draft;\n });\n });\n\n const deleteUser = useFreshCallback((userId: QueriedUser['userId']) => {\n setUsers(([...draft]) => {\n const userIdx = draft.findIndex((it) => it.userId === userId);\n if (userIdx > -1) draft.splice(userIdx, 1);\n return draft;\n });\n });\n\n const updateUsers = (users: QueriedUser[], clearPrev: boolean) => {\n if (clearPrev) setUsers(users);\n else setUsers((prev) => prev.concat(users));\n };\n\n const init = useFreshCallback(async () => {\n query.current = createUserQuery<QueriedUser>(sdk, options?.queryCreator);\n if (query.current?.hasNext) {\n const users = await query.current?.next().catch((e) => {\n Logger.error(e);\n if (e.code === SBErrorCode.UNAUTHORIZED_REQUEST) Logger.warn(SBErrorMessage.ACL);\n throw e;\n });\n updateUsers(users, true);\n }\n });\n\n useAsyncEffect(async () => {\n setLoading(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n setUsers([]);\n } finally {\n setLoading(false);\n }\n }, []);\n\n const refresh = useFreshCallback(async () => {\n setRefreshing(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n setUsers([]);\n } finally {\n setRefreshing(false);\n }\n });\n\n const next = useFreshCallback(async () => {\n if (query.current && query.current?.hasNext) {\n const nextUsers = await query.current.next().catch((e) => {\n Logger.error(e);\n if (e.code === SBErrorCode.UNAUTHORIZED_REQUEST) Logger.warn(SBErrorMessage.ACL);\n throw e;\n });\n updateUsers(nextUsers, false);\n }\n });\n\n return {\n loading,\n error,\n users: sortedUsers,\n upsertUser,\n deleteUser,\n next,\n refreshing,\n refresh,\n };\n};\n"],"mappings":"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"}
|
|
@@ -4,30 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useChannelHandler = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _groupChannel = require("@sendbird/chat/groupChannel");
|
|
11
|
-
|
|
12
9
|
var _openChannel = require("@sendbird/chat/openChannel");
|
|
13
|
-
|
|
14
|
-
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
15
|
-
|
|
16
|
-
function getChannelHandler(type) {
|
|
17
|
-
switch (type) {
|
|
18
|
-
case 'open':
|
|
19
|
-
{
|
|
20
|
-
return new _openChannel.OpenChannelHandler();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
case 'group':
|
|
24
|
-
default:
|
|
25
|
-
{
|
|
26
|
-
return new _groupChannel.GroupChannelHandler();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
10
|
const useChannelHandler = function (sdk, handlerId, hookHandler) {
|
|
32
11
|
let type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'group';
|
|
33
12
|
const handlerRef = (0, _react.useRef)(hookHandler);
|
|
@@ -35,29 +14,25 @@ const useChannelHandler = function (sdk, handlerId, hookHandler) {
|
|
|
35
14
|
handlerRef.current = hookHandler;
|
|
36
15
|
});
|
|
37
16
|
(0, _react.useEffect)(() => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const handlerKeys = Object.keys(handler);
|
|
42
|
-
handlerKeys.forEach(key => {
|
|
43
|
-
handler[key] = function () {
|
|
44
|
-
var _handlerRef$current$k, _handlerRef$current;
|
|
45
|
-
|
|
46
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
47
|
-
args[_key] = arguments[_key];
|
|
48
|
-
}
|
|
49
|
-
|
|
17
|
+
const handlerMapper = handler => {
|
|
18
|
+
const handlerKeys = Object.keys(handler);
|
|
19
|
+
handlerKeys.forEach(key => {
|
|
50
20
|
// @ts-ignore
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
21
|
+
handler[key] = function () {
|
|
22
|
+
var _handlerRef$current, _handlerRef$current$k;
|
|
23
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
24
|
+
args[_key] = arguments[_key];
|
|
25
|
+
}
|
|
26
|
+
return (_handlerRef$current = handlerRef.current) === null || _handlerRef$current === void 0 ? void 0 : (_handlerRef$current$k = _handlerRef$current[key]) === null || _handlerRef$current$k === void 0 ? void 0 : _handlerRef$current$k.call(_handlerRef$current, ...args);
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
return handler;
|
|
30
|
+
};
|
|
55
31
|
if (type === 'group') {
|
|
56
|
-
sdk.groupChannel.addGroupChannelHandler(handlerId,
|
|
32
|
+
sdk.groupChannel.addGroupChannelHandler(handlerId, handlerMapper(new _groupChannel.GroupChannelHandler()));
|
|
57
33
|
} else if (type === 'open') {
|
|
58
|
-
sdk.openChannel.addOpenChannelHandler(handlerId,
|
|
34
|
+
sdk.openChannel.addOpenChannelHandler(handlerId, handlerMapper(new _openChannel.OpenChannelHandler()));
|
|
59
35
|
}
|
|
60
|
-
|
|
61
36
|
return () => {
|
|
62
37
|
if (type === 'group') {
|
|
63
38
|
sdk.groupChannel.removeGroupChannelHandler(handlerId);
|
|
@@ -67,6 +42,5 @@ const useChannelHandler = function (sdk, handlerId, hookHandler) {
|
|
|
67
42
|
};
|
|
68
43
|
}, [sdk, handlerId]);
|
|
69
44
|
};
|
|
70
|
-
|
|
71
45
|
exports.useChannelHandler = useChannelHandler;
|
|
72
46
|
//# sourceMappingURL=useChannelHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_react","require","_groupChannel","_openChannel","useChannelHandler","sdk","handlerId","hookHandler","type","arguments","length","undefined","handlerRef","useRef","useLayoutEffect","current","useEffect","handlerMapper","handler","handlerKeys","Object","keys","forEach","key","_handlerRef$current","_handlerRef$current$k","_len","args","Array","_key","call","groupChannel","addGroupChannelHandler","GroupChannelHandler","openChannel","addOpenChannelHandler","OpenChannelHandler","removeGroupChannelHandler","removeOpenChannelHandler","exports"],"sources":["useChannelHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { GroupChannelHandler } from '@sendbird/chat/groupChannel';\nimport { OpenChannelHandler } from '@sendbird/chat/openChannel';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\n\ntype ChannelType = 'open' | 'group';\n\nexport const useChannelHandler = <T extends ChannelType = 'group'>(\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<T extends 'group' ? GroupChannelHandler : OpenChannelHandler>,\n type: T = 'group' as T,\n) => {\n const handlerRef = useRef(hookHandler);\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n const handlerMapper = <T extends GroupChannelHandler | OpenChannelHandler>(handler: T): T => {\n const handlerKeys = Object.keys(handler) as (keyof T)[];\n handlerKeys.forEach((key) => {\n // @ts-ignore\n handler[key] = (...args: unknown[]) => handlerRef.current?.[key]?.(...args);\n });\n return handler;\n };\n\n if (type === 'group') {\n sdk.groupChannel.addGroupChannelHandler(handlerId, handlerMapper(new GroupChannelHandler()));\n } else if (type === 'open') {\n sdk.openChannel.addOpenChannelHandler(handlerId, handlerMapper(new OpenChannelHandler()));\n }\n\n return () => {\n if (type === 'group') {\n sdk.groupChannel.removeGroupChannelHandler(handlerId);\n } else if (type === 'open') {\n sdk.openChannel.removeOpenChannelHandler(handlerId);\n }\n };\n }, [sdk, handlerId]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAKO,MAAMG,iBAAiB,GAAG,SAAAA,CAC/BC,GAAoB,EACpBC,SAAiB,EACjBC,WAAkF,EAE/E;EAAA,IADHC,IAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,OAAO;EAEjB,MAAMG,UAAU,GAAG,IAAAC,aAAM,EAACN,WAAW,CAAC;EACtC,IAAAO,sBAAe,EAAC,MAAM;IACpBF,UAAU,CAACG,OAAO,GAAGR,WAAW;EAClC,CAAC,CAAC;EAEF,IAAAS,gBAAS,EAAC,MAAM;IACd,MAAMC,aAAa,GAAwDC,OAAU,IAAQ;MAC3F,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACH,OAAO,CAAgB;MACvDC,WAAW,CAACG,OAAO,CAAEC,GAAG,IAAK;QAC3B;QACAL,OAAO,CAACK,GAAG,CAAC,GAAG;UAAA,IAAAC,mBAAA,EAAAC,qBAAA;UAAA,SAAAC,IAAA,GAAAjB,SAAA,CAAAC,MAAA,EAAIiB,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;YAAJF,IAAI,CAAAE,IAAA,IAAApB,SAAA,CAAAoB,IAAA;UAAA;UAAA,QAAAL,mBAAA,GAAgBZ,UAAU,CAACG,OAAO,cAAAS,mBAAA,wBAAAC,qBAAA,GAAlBD,mBAAA,CAAqBD,GAAG,CAAC,cAAAE,qBAAA,uBAAzBA,qBAAA,CAAAK,IAAA,CAAAN,mBAAA,EAA4B,GAAGG,IAAI,CAAC;QAAA;MAC7E,CAAC,CAAC;MACF,OAAOT,OAAO;IAChB,CAAC;IAED,IAAIV,IAAI,KAAK,OAAO,EAAE;MACpBH,GAAG,CAAC0B,YAAY,CAACC,sBAAsB,CAAC1B,SAAS,EAAEW,aAAa,CAAC,IAAIgB,iCAAmB,EAAE,CAAC,CAAC;IAC9F,CAAC,MAAM,IAAIzB,IAAI,KAAK,MAAM,EAAE;MAC1BH,GAAG,CAAC6B,WAAW,CAACC,qBAAqB,CAAC7B,SAAS,EAAEW,aAAa,CAAC,IAAImB,+BAAkB,EAAE,CAAC,CAAC;IAC3F;IAEA,OAAO,MAAM;MACX,IAAI5B,IAAI,KAAK,OAAO,EAAE;QACpBH,GAAG,CAAC0B,YAAY,CAACM,yBAAyB,CAAC/B,SAAS,CAAC;MACvD,CAAC,MAAM,IAAIE,IAAI,KAAK,MAAM,EAAE;QAC1BH,GAAG,CAAC6B,WAAW,CAACI,wBAAwB,CAAChC,SAAS,CAAC;MACrD;IACF,CAAC;EACH,CAAC,EAAE,CAACD,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB,CAAC;AAACiC,OAAA,CAAAnC,iBAAA,GAAAA,iBAAA"}
|
|
@@ -4,28 +4,31 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useConnectionHandler = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _chat = require("@sendbird/chat");
|
|
11
|
-
|
|
12
9
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
10
|
+
const useConnectionHandler = (sdk, handlerId, hookHandler) => {
|
|
11
|
+
const handlerRef = (0, _react.useRef)();
|
|
12
|
+
(0, _react.useLayoutEffect)(() => {
|
|
13
|
+
handlerRef.current = hookHandler;
|
|
14
|
+
});
|
|
16
15
|
(0, _react.useEffect)(() => {
|
|
17
16
|
_uikitUtils.Logger.info('[useConnectionHandler]', handlerId);
|
|
18
|
-
|
|
19
17
|
const handler = new _chat.ConnectionHandler();
|
|
20
18
|
const handlerKeys = Object.keys(handler);
|
|
21
19
|
handlerKeys.forEach(key => {
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
handler[key] = function () {
|
|
21
|
+
var _handlerRef$current$k, _handlerRef$current;
|
|
22
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
23
|
+
args[_key] = arguments[_key];
|
|
24
|
+
}
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
(_handlerRef$current$k = (_handlerRef$current = handlerRef.current)[key]) === null || _handlerRef$current$k === void 0 ? void 0 : _handlerRef$current$k.call(_handlerRef$current, ...args);
|
|
27
|
+
};
|
|
24
28
|
});
|
|
25
29
|
sdk.addConnectionHandler(handlerId, handler);
|
|
26
30
|
return () => sdk.removeConnectionHandler(handlerId);
|
|
27
|
-
}, [sdk, handlerId
|
|
31
|
+
}, [sdk, handlerId]);
|
|
28
32
|
};
|
|
29
|
-
|
|
30
33
|
exports.useConnectionHandler = useConnectionHandler;
|
|
31
34
|
//# sourceMappingURL=useConnectionHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useConnectionHandler","sdk","handlerId","hookHandler","
|
|
1
|
+
{"version":3,"names":["_react","require","_chat","_uikitUtils","useConnectionHandler","sdk","handlerId","hookHandler","handlerRef","useRef","useLayoutEffect","current","useEffect","Logger","info","handler","ConnectionHandler","handlerKeys","Object","keys","forEach","key","_handlerRef$current$k","_handlerRef$current","_len","arguments","length","args","Array","_key","call","addConnectionHandler","removeConnectionHandler","exports"],"sources":["useConnectionHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { ConnectionHandler } from '@sendbird/chat';\nimport { Logger, SendbirdChatSDK } from '@sendbird/uikit-utils';\n\nexport const useConnectionHandler = (\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<ConnectionHandler>,\n) => {\n const handlerRef = useRef<Partial<ConnectionHandler>>();\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n Logger.info('[useConnectionHandler]', handlerId);\n\n const handler = new ConnectionHandler();\n const handlerKeys = Object.keys(handler) as (keyof typeof handler)[];\n handlerKeys.forEach((key) => {\n handler[key] = (...args: unknown[]) => {\n // @ts-ignore\n handlerRef.current[key]?.(...args);\n };\n });\n\n sdk.addConnectionHandler(handlerId, handler);\n return () => sdk.removeConnectionHandler(handlerId);\n }, [sdk, handlerId]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEO,MAAMG,oBAAoB,GAAGA,CAClCC,GAAoB,EACpBC,SAAiB,EACjBC,WAAuC,KACpC;EACH,MAAMC,UAAU,GAAG,IAAAC,aAAM,GAA8B;EACvD,IAAAC,sBAAe,EAAC,MAAM;IACpBF,UAAU,CAACG,OAAO,GAAGJ,WAAW;EAClC,CAAC,CAAC;EAEF,IAAAK,gBAAS,EAAC,MAAM;IACdC,kBAAM,CAACC,IAAI,CAAC,wBAAwB,EAAER,SAAS,CAAC;IAEhD,MAAMS,OAAO,GAAG,IAAIC,uBAAiB,EAAE;IACvC,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAA6B;IACpEE,WAAW,CAACG,OAAO,CAAEC,GAAG,IAAK;MAC3BN,OAAO,CAACM,GAAG,CAAC,GAAG,YAAwB;QAAA,IAAAC,qBAAA,EAAAC,mBAAA;QAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAApBC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;UAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;QAAA;QACrB;QACA,CAAAP,qBAAA,IAAAC,mBAAA,GAAAf,UAAU,CAACG,OAAO,EAACU,GAAG,CAAC,cAAAC,qBAAA,uBAAvBA,qBAAA,CAAAQ,IAAA,CAAAP,mBAAA,EAA0B,GAAGI,IAAI,CAAC;MACpC,CAAC;IACH,CAAC,CAAC;IAEFtB,GAAG,CAAC0B,oBAAoB,CAACzB,SAAS,EAAES,OAAO,CAAC;IAC5C,OAAO,MAAMV,GAAG,CAAC2B,uBAAuB,CAAC1B,SAAS,CAAC;EACrD,CAAC,EAAE,CAACD,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB,CAAC;AAAC2B,OAAA,CAAA7B,oBAAA,GAAAA,oBAAA"}
|
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useUserEventHandler = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _chat = require("@sendbird/chat");
|
|
11
|
-
|
|
12
9
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
13
|
-
|
|
14
10
|
const useUserEventHandler = (sdk, handlerId, hookHandler) => {
|
|
15
11
|
const handlerRef = (0, _react.useRef)(hookHandler);
|
|
16
12
|
(0, _react.useLayoutEffect)(() => {
|
|
@@ -18,17 +14,14 @@ const useUserEventHandler = (sdk, handlerId, hookHandler) => {
|
|
|
18
14
|
});
|
|
19
15
|
(0, _react.useEffect)(() => {
|
|
20
16
|
_uikitUtils.Logger.debug('[useUserEventHandler] hook called by', handlerId);
|
|
21
|
-
|
|
22
17
|
const handler = new _chat.UserEventHandler();
|
|
23
18
|
const handlerKeys = Object.keys(handler);
|
|
24
19
|
handlerKeys.forEach(key => {
|
|
25
20
|
handler[key] = function () {
|
|
26
21
|
var _handlerRef$current$k, _handlerRef$current;
|
|
27
|
-
|
|
28
22
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
29
23
|
args[_key] = arguments[_key];
|
|
30
24
|
}
|
|
31
|
-
|
|
32
25
|
// @ts-ignore
|
|
33
26
|
(_handlerRef$current$k = (_handlerRef$current = handlerRef.current)[key]) === null || _handlerRef$current$k === void 0 ? void 0 : _handlerRef$current$k.call(_handlerRef$current, ...args);
|
|
34
27
|
};
|
|
@@ -37,6 +30,5 @@ const useUserEventHandler = (sdk, handlerId, hookHandler) => {
|
|
|
37
30
|
return () => sdk.removeUserEventHandler(handlerId);
|
|
38
31
|
}, [sdk, handlerId]);
|
|
39
32
|
};
|
|
40
|
-
|
|
41
33
|
exports.useUserEventHandler = useUserEventHandler;
|
|
42
34
|
//# sourceMappingURL=useUserEventHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useUserEventHandler","sdk","handlerId","hookHandler","handlerRef","useRef","useLayoutEffect","current","useEffect","Logger","debug","handler","UserEventHandler","handlerKeys","Object","keys","forEach","key","args","addUserEventHandler","removeUserEventHandler"],"sources":["useUserEventHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { UserEventHandler } from '@sendbird/chat';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport const useUserEventHandler = (\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<UserEventHandler>,\n) => {\n const handlerRef = useRef(hookHandler);\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n Logger.debug('[useUserEventHandler] hook called by', handlerId);\n\n const handler = new UserEventHandler();\n const handlerKeys = Object.keys(handler) as (keyof typeof handler)[];\n\n handlerKeys.forEach((key) => {\n handler[key] = (...args: unknown[]) => {\n // @ts-ignore\n handlerRef.current[key]?.(...args);\n };\n });\n\n sdk.addUserEventHandler(handlerId, handler);\n return () => sdk.removeUserEventHandler(handlerId);\n }, [sdk, handlerId]);\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","require","_chat","_uikitUtils","useUserEventHandler","sdk","handlerId","hookHandler","handlerRef","useRef","useLayoutEffect","current","useEffect","Logger","debug","handler","UserEventHandler","handlerKeys","Object","keys","forEach","key","_handlerRef$current$k","_handlerRef$current","_len","arguments","length","args","Array","_key","call","addUserEventHandler","removeUserEventHandler","exports"],"sources":["useUserEventHandler.ts"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { UserEventHandler } from '@sendbird/chat';\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { Logger } from '@sendbird/uikit-utils';\n\nexport const useUserEventHandler = (\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<UserEventHandler>,\n) => {\n const handlerRef = useRef(hookHandler);\n useLayoutEffect(() => {\n handlerRef.current = hookHandler;\n });\n\n useEffect(() => {\n Logger.debug('[useUserEventHandler] hook called by', handlerId);\n\n const handler = new UserEventHandler();\n const handlerKeys = Object.keys(handler) as (keyof typeof handler)[];\n\n handlerKeys.forEach((key) => {\n handler[key] = (...args: unknown[]) => {\n // @ts-ignore\n handlerRef.current[key]?.(...args);\n };\n });\n\n sdk.addUserEventHandler(handlerId, handler);\n return () => sdk.removeUserEventHandler(handlerId);\n }, [sdk, handlerId]);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAEO,MAAMG,mBAAmB,GAAGA,CACjCC,GAAoB,EACpBC,SAAiB,EACjBC,WAAsC,KACnC;EACH,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACF,WAAW,CAAC;EACtC,IAAAG,sBAAe,EAAC,MAAM;IACpBF,UAAU,CAACG,OAAO,GAAGJ,WAAW;EAClC,CAAC,CAAC;EAEF,IAAAK,gBAAS,EAAC,MAAM;IACdC,kBAAM,CAACC,KAAK,CAAC,sCAAsC,EAAER,SAAS,CAAC;IAE/D,MAAMS,OAAO,GAAG,IAAIC,sBAAgB,EAAE;IACtC,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAA6B;IAEpEE,WAAW,CAACG,OAAO,CAAEC,GAAG,IAAK;MAC3BN,OAAO,CAACM,GAAG,CAAC,GAAG,YAAwB;QAAA,IAAAC,qBAAA,EAAAC,mBAAA;QAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAApBC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;UAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;QAAA;QACrB;QACA,CAAAP,qBAAA,IAAAC,mBAAA,GAAAf,UAAU,CAACG,OAAO,EAACU,GAAG,CAAC,cAAAC,qBAAA,uBAAvBA,qBAAA,CAAAQ,IAAA,CAAAP,mBAAA,EAA0B,GAAGI,IAAI,CAAC;MACpC,CAAC;IACH,CAAC,CAAC;IAEFtB,GAAG,CAAC0B,mBAAmB,CAACzB,SAAS,EAAES,OAAO,CAAC;IAC3C,OAAO,MAAMV,GAAG,CAAC2B,sBAAsB,CAAC1B,SAAS,CAAC;EACpD,CAAC,EAAE,CAACD,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB,CAAC;AAAC2B,OAAA,CAAA7B,mBAAA,GAAAA,mBAAA"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -75,12 +75,6 @@ Object.defineProperty(exports, "usePushTrigger", {
|
|
|
75
75
|
return _usePushTrigger.usePushTrigger;
|
|
76
76
|
}
|
|
77
77
|
});
|
|
78
|
-
Object.defineProperty(exports, "useTotalUnreadChannelCount", {
|
|
79
|
-
enumerable: true,
|
|
80
|
-
get: function () {
|
|
81
|
-
return _useTotalUnreadChannelCount.useTotalUnreadChannelCount;
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
78
|
Object.defineProperty(exports, "useTotalUnreadMessageCount", {
|
|
85
79
|
enumerable: true,
|
|
86
80
|
get: function () {
|
|
@@ -99,36 +93,19 @@ Object.defineProperty(exports, "useUserList", {
|
|
|
99
93
|
return _useUserList.useUserList;
|
|
100
94
|
}
|
|
101
95
|
});
|
|
102
|
-
|
|
103
96
|
var _useGroupChannelList = require("./channel/useGroupChannelList");
|
|
104
|
-
|
|
105
97
|
var _useGroupChannelMessages = require("./channel/useGroupChannelMessages");
|
|
106
|
-
|
|
107
98
|
var _useGroupChannel = require("./channel/useGroupChannel");
|
|
108
|
-
|
|
109
99
|
var _useOpenChannelList = require("./channel/useOpenChannelList");
|
|
110
|
-
|
|
111
100
|
var _useOpenChannelMessages = require("./channel/useOpenChannelMessages");
|
|
112
|
-
|
|
113
101
|
var _useOpenChannel = require("./channel/useOpenChannel");
|
|
114
|
-
|
|
115
102
|
var _useAppFeatures = require("./common/useAppFeatures");
|
|
116
|
-
|
|
117
103
|
var _useMessageOutgoingStatus = require("./common/useMessageOutgoingStatus");
|
|
118
|
-
|
|
119
104
|
var _usePushTrigger = require("./common/usePushTrigger");
|
|
120
|
-
|
|
121
|
-
var _useTotalUnreadChannelCount = require("./common/useTotalUnreadChannelCount");
|
|
122
|
-
|
|
123
105
|
var _useTotalUnreadMessageCount = require("./common/useTotalUnreadMessageCount");
|
|
124
|
-
|
|
125
106
|
var _useUserList = require("./common/useUserList");
|
|
126
|
-
|
|
127
107
|
var _useChannelHandler = require("./handler/useChannelHandler");
|
|
128
|
-
|
|
129
108
|
var _useConnectionHandler = require("./handler/useConnectionHandler");
|
|
130
|
-
|
|
131
109
|
var _useUserEventHandler = require("./handler/useUserEventHandler");
|
|
132
|
-
|
|
133
110
|
var _CustomQuery = require("./model/CustomQuery");
|
|
134
111
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { useGroupChannelList } from './channel/useGroupChannelList';\nexport { useGroupChannelMessages } from './channel/useGroupChannelMessages';\nexport { useGroupChannel } from './channel/useGroupChannel';\n\nexport { useOpenChannelList } from './channel/useOpenChannelList';\nexport { useOpenChannelMessages } from './channel/useOpenChannelMessages';\nexport { useOpenChannel } from './channel/useOpenChannel';\n\nexport { useAppFeatures } from './common/useAppFeatures';\nexport { useMessageOutgoingStatus } from './common/useMessageOutgoingStatus';\nexport { usePushTrigger } from './common/usePushTrigger';\nexport {
|
|
1
|
+
{"version":3,"names":["_useGroupChannelList","require","_useGroupChannelMessages","_useGroupChannel","_useOpenChannelList","_useOpenChannelMessages","_useOpenChannel","_useAppFeatures","_useMessageOutgoingStatus","_usePushTrigger","_useTotalUnreadMessageCount","_useUserList","_useChannelHandler","_useConnectionHandler","_useUserEventHandler","_CustomQuery"],"sources":["index.ts"],"sourcesContent":["export { useGroupChannelList } from './channel/useGroupChannelList';\nexport { useGroupChannelMessages } from './channel/useGroupChannelMessages';\nexport { useGroupChannel } from './channel/useGroupChannel';\n\nexport { useOpenChannelList } from './channel/useOpenChannelList';\nexport { useOpenChannelMessages } from './channel/useOpenChannelMessages';\nexport { useOpenChannel } from './channel/useOpenChannel';\n\nexport { useAppFeatures } from './common/useAppFeatures';\nexport { useMessageOutgoingStatus } from './common/useMessageOutgoingStatus';\nexport { usePushTrigger } from './common/usePushTrigger';\nexport { useTotalUnreadMessageCount } from './common/useTotalUnreadMessageCount';\nexport { useUserList } from './common/useUserList';\n\nexport { useChannelHandler } from './handler/useChannelHandler';\nexport { useConnectionHandler } from './handler/useConnectionHandler';\nexport { useUserEventHandler } from './handler/useUserEventHandler';\n\nexport { CustomQuery } from './model/CustomQuery';\n\nexport type {\n UseGroupChannelList,\n UseGroupChannelListOptions,\n UseGroupChannelMessages,\n UseGroupChannelMessagesOptions,\n UseUserListOptions,\n UseUserListReturn,\n CustomQueryInterface,\n CustomBidirectionalQueryInterface,\n UseOpenChannelMessagesOptions,\n UseOpenChannelListOptions,\n UseOpenChannelList,\n UseOpenChannelMessages,\n} from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,uBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AAEA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,yBAAA,GAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;AACA,IAAAS,2BAAA,GAAAT,OAAA;AACA,IAAAU,YAAA,GAAAV,OAAA;AAEA,IAAAW,kBAAA,GAAAX,OAAA;AACA,IAAAY,qBAAA,GAAAZ,OAAA;AACA,IAAAa,oBAAA,GAAAb,OAAA;AAEA,IAAAc,YAAA,GAAAd,OAAA"}
|
|
@@ -4,25 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.CustomQuery = void 0;
|
|
7
|
-
|
|
8
7
|
class CustomQuery {
|
|
9
8
|
constructor(params) {
|
|
10
9
|
this.params = params;
|
|
11
10
|
}
|
|
12
|
-
|
|
13
11
|
get isLoading() {
|
|
14
12
|
return this.params.isLoading();
|
|
15
13
|
}
|
|
16
|
-
|
|
17
14
|
get hasNext() {
|
|
18
15
|
return this.params.hasNext();
|
|
19
16
|
}
|
|
20
|
-
|
|
21
17
|
next() {
|
|
22
18
|
return this.params.next();
|
|
23
19
|
}
|
|
24
|
-
|
|
25
20
|
}
|
|
26
|
-
|
|
27
21
|
exports.CustomQuery = CustomQuery;
|
|
28
22
|
//# sourceMappingURL=CustomQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CustomQuery","constructor","params","isLoading","hasNext","next"],"sources":["CustomQuery.ts"],"sourcesContent":["import type { CustomQueryInterface } from '../types';\n\ntype ConstructorParams<T> = {\n next: () => Promise<T[]>;\n isLoading: () => boolean;\n hasNext: () => boolean;\n};\n\nexport class CustomQuery<T> implements CustomQueryInterface<T> {\n constructor(private params: ConstructorParams<T>) {}\n get isLoading(): boolean {\n return this.params.isLoading();\n }\n get hasNext(): boolean {\n return this.params.hasNext();\n }\n next() {\n return this.params.next();\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["CustomQuery","constructor","params","isLoading","hasNext","next","exports"],"sources":["CustomQuery.ts"],"sourcesContent":["import type { CustomQueryInterface } from '../types';\n\ntype ConstructorParams<T> = {\n next: () => Promise<T[]>;\n isLoading: () => boolean;\n hasNext: () => boolean;\n};\n\nexport class CustomQuery<T> implements CustomQueryInterface<T> {\n constructor(private params: ConstructorParams<T>) {}\n get isLoading(): boolean {\n return this.params.isLoading();\n }\n get hasNext(): boolean {\n return this.params.hasNext();\n }\n next() {\n return this.params.next();\n }\n}\n"],"mappings":";;;;;;AAQO,MAAMA,WAAW,CAAuC;EAC7DC,WAAWA,CAASC,MAA4B,EAAE;IAAA,KAA9BA,MAA4B,GAA5BA,MAA4B;EAAG;EACnD,IAAIC,SAASA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACD,MAAM,CAACC,SAAS,EAAE;EAChC;EACA,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACF,MAAM,CAACE,OAAO,EAAE;EAC9B;EACAC,IAAIA,CAAA,EAAG;IACL,OAAO,IAAI,CAACH,MAAM,CAACG,IAAI,EAAE;EAC3B;AACF;AAACC,OAAA,CAAAN,WAAA,GAAAA,WAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n SendbirdChatSDK,\n SendbirdError,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdGroupChannel,\n SendbirdGroupChannelCollection,\n SendbirdGroupChannelListQuery,\n SendbirdMessage,\n SendbirdMessageCollection,\n SendbirdOpenChannel,\n SendbirdOpenChannelListQuery,\n SendbirdPreviousMessageListQuery,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n UserStruct,\n} from '@sendbird/uikit-utils';\n\nexport interface CustomQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: boolean;\n}\nexport interface CustomBidirectionalQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: () => boolean;\n prev: () => Promise<Data[]>;\n hasPrev: () => boolean;\n}\n\n/**\n * @interface UseGroupChannelList\n * @description interface for group channel list hook\n * */\nexport interface UseGroupChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseGroupChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get group channels state\n * */\n groupChannels: SendbirdGroupChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseGroupChannelListOptions = {\n queryCreator?: () => SendbirdGroupChannelListQuery;\n collectionCreator?: () => SendbirdGroupChannelCollection;\n enableCollectionWithoutLocalCache?: boolean;\n};\n\n/**\n * @interface UseGroupChannelMessages\n * @description interface for group channel messages hook\n * - Receive new messages from other users -> append to state(nextMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> next() -> nextMessages append to state(messages)\n * */\nexport interface UseGroupChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdGroupChannel, userId?: string, options?: UseGroupChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Get messages, this state is for temporary data before render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * */\n nextMessages: SendbirdMessage[];\n\n /**\n * Get new messages from nextMessages\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessagesFromMembers: SendbirdMessage[];\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseGroupChannelMessagesOptions = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n collectionCreator?: () => SendbirdMessageCollection;\n enableCollectionWithoutLocalCache?: boolean;\n onChannelDeleted?: () => void;\n};\n\n/**\n * @interface UseOpenChannelList\n * @description interface for open channel list hook\n * */\nexport interface UseOpenChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseOpenChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Get open channels state\n * */\n openChannels: SendbirdOpenChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseOpenChannelListOptions = {\n queryCreator?: () => SendbirdOpenChannelListQuery;\n};\n\n/**\n * @interface UseOpenChannelMessages\n * @description interface for open channel messages hook\n * - Receive new messages from other users -> append to state(nextMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> next() -> nextMessages append to state(messages)\n * */\nexport interface UseOpenChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdOpenChannel, userId?: string, options?: UseOpenChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Get messages, this state is for temporary data before render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * */\n nextMessages: SendbirdMessage[];\n\n /**\n * Get new messages from nextMessages\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessagesFromMembers: SendbirdMessage[];\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n };\n}\n\nexport type UseOpenChannelMessagesOptions = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n onChannelDeleted?: () => void;\n onError?: (error?: unknown) => void;\n};\n\n/**\n * @interface UseUserListReturn\n * @description interface for user list hook return value\n * */\nexport interface UseUserListReturn<User extends UserStruct> {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get users state\n * */\n users: User[];\n\n /**\n * Update or Insert user to list\n * */\n upsertUser: (user: User) => void;\n\n /**\n * Delete user from list\n * */\n deleteUser: (userId: User['userId']) => void;\n\n /**\n * Fetch next users to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n}\n\nexport type UseUserListOptions<User extends UserStruct> = {\n sortComparator?: (a: User, b: User) => number;\n queryCreator?: () => CustomQueryInterface<User>;\n};\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type {\n SendbirdChatSDK,\n SendbirdError,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdGroupChannel,\n SendbirdGroupChannelCollection,\n SendbirdGroupChannelListQuery,\n SendbirdMessage,\n SendbirdMessageCollection,\n SendbirdOpenChannel,\n SendbirdOpenChannelListQuery,\n SendbirdPreviousMessageListQuery,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n UserStruct,\n} from '@sendbird/uikit-utils';\n\nexport interface CustomQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: boolean;\n}\nexport interface CustomBidirectionalQueryInterface<Data> {\n isLoading: boolean;\n next: () => Promise<Data[]>;\n hasNext: () => boolean;\n prev: () => Promise<Data[]>;\n hasPrev: () => boolean;\n}\n\n/**\n * @interface UseGroupChannelList\n * @description interface for group channel list hook\n * */\nexport interface UseGroupChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseGroupChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get group channels state\n * */\n groupChannels: SendbirdGroupChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseGroupChannelListOptions = {\n queryCreator?: () => SendbirdGroupChannelListQuery;\n collectionCreator?: () => SendbirdGroupChannelCollection;\n enableCollectionWithoutLocalCache?: boolean;\n};\n\n/**\n * @interface UseGroupChannelMessages\n * @description interface for group channel messages hook\n * - Receive new messages from other users & should count new messages -> append to state(newMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> next() -> fetch next messages and append to state(messages)\n * */\nexport interface UseGroupChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdGroupChannel, userId?: string, options?: UseGroupChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Check if there are more prev messages to fetch\n * @return {boolean}\n * */\n hasPrev: () => boolean;\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Check if there are more next messages to fetch\n * @return {boolean}\n * */\n hasNext: () => boolean;\n\n /**\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessages: SendbirdMessage[];\n\n /**\n * reset message list with starting point\n * */\n resetWithStartingPoint: (startingPoint: number, callback?: () => void) => void;\n\n /**\n * Reset new messages\n * */\n resetNewMessages: () => void;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /** @deprecated Please use `newMessages` instead **/\n newMessagesFromMembers: SendbirdMessage[];\n /** @deprecated Please use `newMessages` instead **/\n nextMessages: SendbirdMessage[];\n };\n}\n\nexport type UseGroupChannelMessagesOptions = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n collectionCreator?: (options?: Pick<UseGroupChannelMessagesOptions, 'startingPoint'>) => SendbirdMessageCollection;\n enableCollectionWithoutLocalCache?: boolean;\n onChannelDeleted?: () => void;\n shouldCountNewMessages?: () => boolean;\n startingPoint?: number;\n onMessagesReceived?: (messages: SendbirdMessage[]) => void;\n};\n\n/**\n * @interface UseOpenChannelList\n * @description interface for open channel list hook\n * */\nexport interface UseOpenChannelList {\n (sdk: SendbirdChatSDK, userId?: string, options?: UseOpenChannelListOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Get open channels state\n * */\n openChannels: SendbirdOpenChannel[];\n\n /**\n * Fetch next channels to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n };\n}\nexport type UseOpenChannelListOptions = {\n queryCreator?: () => SendbirdOpenChannelListQuery;\n};\n\n/**\n * @interface UseOpenChannelMessages\n * @description interface for open channel messages hook\n * - Receive new messages from other users & should count new messages -> append to state(newMessages)\n * - onTopReached -> prev() -> fetch prev messages and append to state(messages)\n * - onBottomReached -> noop\n * */\nexport interface UseOpenChannelMessages {\n (sdk: SendbirdChatSDK, channel: SendbirdOpenChannel, userId?: string, options?: UseOpenChannelMessagesOptions): {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get messages, this state is for render\n * For example, if a user receives a new messages while searching for an old message\n * for this case, new messages will be included here.\n * @return {SendbirdMessage[]}\n * */\n messages: SendbirdMessage[];\n\n /**\n * Fetch prev messages to state\n * @return {Promise<void>}\n * */\n prev: () => Promise<void>;\n\n /**\n * Check if there are more prev messages to fetch\n * @return {boolean}\n * */\n hasPrev: () => boolean;\n\n /**\n * A new message means a message that meets the below conditions\n * - Not admin message\n * - Not updated message\n * - Not current user's message\n * */\n newMessages: SendbirdMessage[];\n\n /**\n * Reset new messages\n * */\n resetNewMessages: () => void;\n\n /**\n * Fetch next messages to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n\n /**\n * Check if there are more next messages to fetch\n * @return {boolean}\n * */\n hasNext: () => boolean;\n\n /**\n * Send file message\n * @param params file message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendFileMessage: (\n params: SendbirdFileMessageCreateParams,\n onPending?: (message: SendbirdFileMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdFileMessage>;\n\n /**\n * Send user message\n * @param params user message params\n * @param callback sent message callback\n * @return pending message\n * */\n sendUserMessage: (\n params: SendbirdUserMessageCreateParams,\n onPending?: (message: SendbirdUserMessage, error?: SendbirdError) => void,\n ) => Promise<SendbirdUserMessage>;\n\n /**\n * Update file message\n * @param messageId\n * @param params file message params\n * @return updated message\n * */\n updateFileMessage: (messageId: number, params: SendbirdFileMessageUpdateParams) => Promise<SendbirdFileMessage>;\n\n /**\n * Update user message\n * @param messageId\n * @param params user message params\n * @return updated message\n * */\n updateUserMessage: (messageId: number, params: SendbirdUserMessageUpdateParams) => Promise<SendbirdUserMessage>;\n\n /**\n * Resend failed message\n * @param failedMessage failed message to resend\n * @return {Promise<void>}\n * */\n resendMessage: (failedMessage: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /**\n * Delete message\n * @param message sent or failed message\n * @return {Promise<void>}\n * */\n deleteMessage: (message: SendbirdFileMessage | SendbirdUserMessage) => Promise<void>;\n\n /** @deprecated Please use `newMessages` instead **/\n newMessagesFromMembers: SendbirdMessage[];\n /** @deprecated Please use `newMessages` instead **/\n nextMessages: SendbirdMessage[];\n };\n}\n\nexport type UseOpenChannelMessagesOptions = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => SendbirdPreviousMessageListQuery;\n onChannelDeleted?: () => void;\n onError?: (error?: unknown) => void;\n shouldCountNewMessages?: () => boolean;\n onMessagesReceived?: (messages: SendbirdMessage[]) => void;\n};\n\n/**\n * @interface UseUserListReturn\n * @description interface for user list hook return value\n * */\nexport interface UseUserListReturn<User extends UserStruct> {\n /**\n * Loading state, only available on first render\n * */\n loading: boolean;\n\n /**\n * Refreshing state, status is changes when the refresh is called.\n * */\n refreshing: boolean;\n\n /**\n * Error state\n * */\n error: unknown | null;\n\n /**\n * Refresh, clear and reload messages from latest\n * @return {Promise<void>}\n * */\n refresh: () => Promise<void>;\n\n /**\n * Get users state\n * */\n users: User[];\n\n /**\n * Update or Insert user to list\n * */\n upsertUser: (user: User) => void;\n\n /**\n * Delete user from list\n * */\n deleteUser: (userId: User['userId']) => void;\n\n /**\n * Fetch next users to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n}\n\nexport type UseUserListOptions<User extends UserStruct> = {\n sortComparator?: (a: User, b: User) => number;\n queryCreator?: () => CustomQueryInterface<User>;\n};\n"],"mappings":""}
|