@sendbird/uikit-chat-hooks 1.0.0-rc.1
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/LICENSE +21 -0
- package/README.md +9 -0
- package/lib/commonjs/channel/useActiveGroupChannel.js +22 -0
- package/lib/commonjs/channel/useActiveGroupChannel.js.map +1 -0
- package/lib/commonjs/channel/useGroupChannelList.js +21 -0
- package/lib/commonjs/channel/useGroupChannelList.js.map +1 -0
- package/lib/commonjs/channel/useGroupChannelListWithCollection.js +148 -0
- package/lib/commonjs/channel/useGroupChannelListWithCollection.js.map +1 -0
- package/lib/commonjs/channel/useGroupChannelListWithQuery.js +130 -0
- package/lib/commonjs/channel/useGroupChannelListWithQuery.js.map +1 -0
- package/lib/commonjs/channel/useGroupChannelMessages/index.js +21 -0
- package/lib/commonjs/channel/useGroupChannelMessages/index.js.map +1 -0
- package/lib/commonjs/channel/useGroupChannelMessages/reducer.js +158 -0
- package/lib/commonjs/channel/useGroupChannelMessages/reducer.js.map +1 -0
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +305 -0
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -0
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +249 -0
- package/lib/commonjs/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -0
- package/lib/commonjs/common/useAppFeatures.js +44 -0
- package/lib/commonjs/common/useAppFeatures.js.map +1 -0
- package/lib/commonjs/common/usePushTrigger.js +33 -0
- package/lib/commonjs/common/usePushTrigger.js.map +1 -0
- package/lib/commonjs/common/useTotalUnreadChannelCount.js +29 -0
- package/lib/commonjs/common/useTotalUnreadChannelCount.js.map +1 -0
- package/lib/commonjs/common/useTotalUnreadMessageCount.js +40 -0
- package/lib/commonjs/common/useTotalUnreadMessageCount.js.map +1 -0
- package/lib/commonjs/common/useUserList.js +110 -0
- package/lib/commonjs/common/useUserList.js.map +1 -0
- package/lib/commonjs/handler/useChannelHandler.js +29 -0
- package/lib/commonjs/handler/useChannelHandler.js.map +1 -0
- package/lib/commonjs/handler/useConnectionHandler.js +29 -0
- package/lib/commonjs/handler/useConnectionHandler.js.map +1 -0
- package/lib/commonjs/handler/useUserEventHandler.js +29 -0
- package/lib/commonjs/handler/useUserEventHandler.js.map +1 -0
- package/lib/commonjs/index.js +102 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/model/CustomQuery.js +28 -0
- package/lib/commonjs/model/CustomQuery.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/channel/useActiveGroupChannel.js +12 -0
- package/lib/module/channel/useActiveGroupChannel.js.map +1 -0
- package/lib/module/channel/useGroupChannelList.js +10 -0
- package/lib/module/channel/useGroupChannelList.js.map +1 -0
- package/lib/module/channel/useGroupChannelListWithCollection.js +135 -0
- package/lib/module/channel/useGroupChannelListWithCollection.js.map +1 -0
- package/lib/module/channel/useGroupChannelListWithQuery.js +117 -0
- package/lib/module/channel/useGroupChannelListWithQuery.js.map +1 -0
- package/lib/module/channel/useGroupChannelMessages/index.js +10 -0
- package/lib/module/channel/useGroupChannelMessages/index.js.map +1 -0
- package/lib/module/channel/useGroupChannelMessages/reducer.js +148 -0
- package/lib/module/channel/useGroupChannelMessages/reducer.js.map +1 -0
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js +289 -0
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.js.map +1 -0
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js +234 -0
- package/lib/module/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.js.map +1 -0
- package/lib/module/common/useAppFeatures.js +33 -0
- package/lib/module/common/useAppFeatures.js.map +1 -0
- package/lib/module/common/usePushTrigger.js +22 -0
- package/lib/module/common/usePushTrigger.js.map +1 -0
- package/lib/module/common/useTotalUnreadChannelCount.js +17 -0
- package/lib/module/common/useTotalUnreadChannelCount.js.map +1 -0
- package/lib/module/common/useTotalUnreadMessageCount.js +28 -0
- package/lib/module/common/useTotalUnreadMessageCount.js.map +1 -0
- package/lib/module/common/useUserList.js +100 -0
- package/lib/module/common/useUserList.js.map +1 -0
- package/lib/module/handler/useChannelHandler.js +17 -0
- package/lib/module/handler/useChannelHandler.js.map +1 -0
- package/lib/module/handler/useConnectionHandler.js +17 -0
- package/lib/module/handler/useConnectionHandler.js.map +1 -0
- package/lib/module/handler/useUserEventHandler.js +17 -0
- package/lib/module/handler/useUserEventHandler.js.map +1 -0
- package/lib/module/index.js +13 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/model/CustomQuery.js +19 -0
- package/lib/module/model/CustomQuery.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/src/channel/useActiveGroupChannel.d.ts +5 -0
- package/lib/typescript/src/channel/useGroupChannelList.d.ts +2 -0
- package/lib/typescript/src/channel/useGroupChannelListWithCollection.d.ts +2 -0
- package/lib/typescript/src/channel/useGroupChannelListWithQuery.d.ts +2 -0
- package/lib/typescript/src/channel/useGroupChannelMessages/index.d.ts +2 -0
- package/lib/typescript/src/channel/useGroupChannelMessages/reducer.d.ts +15 -0
- package/lib/typescript/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.d.ts +2 -0
- package/lib/typescript/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.d.ts +2 -0
- package/lib/typescript/src/common/useAppFeatures.d.ts +7 -0
- package/lib/typescript/src/common/usePushTrigger.d.ts +7 -0
- package/lib/typescript/src/common/useTotalUnreadChannelCount.d.ts +6 -0
- package/lib/typescript/src/common/useTotalUnreadMessageCount.d.ts +8 -0
- package/lib/typescript/src/common/useUserList.d.ts +24 -0
- package/lib/typescript/src/handler/useChannelHandler.d.ts +4 -0
- package/lib/typescript/src/handler/useConnectionHandler.d.ts +4 -0
- package/lib/typescript/src/handler/useUserEventHandler.d.ts +4 -0
- package/lib/typescript/src/index.d.ts +13 -0
- package/lib/typescript/src/model/CustomQuery.d.ts +14 -0
- package/lib/typescript/src/types.d.ts +198 -0
- package/package.json +73 -0
- package/src/channel/useActiveGroupChannel.ts +13 -0
- package/src/channel/useGroupChannelList.ts +11 -0
- package/src/channel/useGroupChannelListWithCollection.ts +144 -0
- package/src/channel/useGroupChannelListWithQuery.ts +124 -0
- package/src/channel/useGroupChannelMessages/index.ts +11 -0
- package/src/channel/useGroupChannelMessages/reducer.ts +134 -0
- package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithCollection.ts +315 -0
- package/src/channel/useGroupChannelMessages/useGroupChannelMessagesWithQuery.ts +251 -0
- package/src/common/useAppFeatures.ts +28 -0
- package/src/common/usePushTrigger.ts +31 -0
- package/src/common/useTotalUnreadChannelCount.ts +26 -0
- package/src/common/useTotalUnreadMessageCount.ts +43 -0
- package/src/common/useUserList.ts +103 -0
- package/src/handler/useChannelHandler.ts +25 -0
- package/src/handler/useConnectionHandler.ts +25 -0
- package/src/handler/useUserEventHandler.ts +26 -0
- package/src/index.ts +26 -0
- package/src/model/CustomQuery.ts +20 -0
- package/src/types.ts +246 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useAppFeatures = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
+
|
|
12
|
+
const useAppFeatures = sdk => {
|
|
13
|
+
var _sdk$appInfo2, _sdk$appInfo4, _sdk$appInfo6, _sdk$appInfo8;
|
|
14
|
+
|
|
15
|
+
const deliveryReceiptEnabled = (0, _react.useMemo)(() => {
|
|
16
|
+
var _sdk$appInfo, _sdk$appInfo$premiumF, _sdk$appInfo$premiumF2;
|
|
17
|
+
|
|
18
|
+
return Boolean((_sdk$appInfo = sdk.appInfo) === null || _sdk$appInfo === void 0 ? void 0 : (_sdk$appInfo$premiumF = _sdk$appInfo.premiumFeatureList) === null || _sdk$appInfo$premiumF === void 0 ? void 0 : (_sdk$appInfo$premiumF2 = _sdk$appInfo$premiumF.includes) === null || _sdk$appInfo$premiumF2 === void 0 ? void 0 : _sdk$appInfo$premiumF2.call(_sdk$appInfo$premiumF, _uikitUtils.PremiumFeatures.delivery_receipt));
|
|
19
|
+
}, [(_sdk$appInfo2 = sdk.appInfo) === null || _sdk$appInfo2 === void 0 ? void 0 : _sdk$appInfo2.premiumFeatureList]);
|
|
20
|
+
const broadcastChannelEnabled = (0, _react.useMemo)(() => {
|
|
21
|
+
var _sdk$appInfo3, _sdk$appInfo3$applica, _sdk$appInfo3$applica2;
|
|
22
|
+
|
|
23
|
+
return Boolean((_sdk$appInfo3 = sdk.appInfo) === null || _sdk$appInfo3 === void 0 ? void 0 : (_sdk$appInfo3$applica = _sdk$appInfo3.applicationAttributes) === null || _sdk$appInfo3$applica === void 0 ? void 0 : (_sdk$appInfo3$applica2 = _sdk$appInfo3$applica.includes) === null || _sdk$appInfo3$applica2 === void 0 ? void 0 : _sdk$appInfo3$applica2.call(_sdk$appInfo3$applica, _uikitUtils.ApplicationAttributes.allow_broadcast_channel));
|
|
24
|
+
}, [(_sdk$appInfo4 = sdk.appInfo) === null || _sdk$appInfo4 === void 0 ? void 0 : _sdk$appInfo4.applicationAttributes]);
|
|
25
|
+
const superGroupChannelEnabled = (0, _react.useMemo)(() => {
|
|
26
|
+
var _sdk$appInfo5, _sdk$appInfo5$applica, _sdk$appInfo5$applica2;
|
|
27
|
+
|
|
28
|
+
return Boolean((_sdk$appInfo5 = sdk.appInfo) === null || _sdk$appInfo5 === void 0 ? void 0 : (_sdk$appInfo5$applica = _sdk$appInfo5.applicationAttributes) === null || _sdk$appInfo5$applica === void 0 ? void 0 : (_sdk$appInfo5$applica2 = _sdk$appInfo5$applica.includes) === null || _sdk$appInfo5$applica2 === void 0 ? void 0 : _sdk$appInfo5$applica2.call(_sdk$appInfo5$applica, _uikitUtils.ApplicationAttributes.allow_super_group_channel));
|
|
29
|
+
}, [(_sdk$appInfo6 = sdk.appInfo) === null || _sdk$appInfo6 === void 0 ? void 0 : _sdk$appInfo6.applicationAttributes]);
|
|
30
|
+
const reactionEnabled = (0, _react.useMemo)(() => {
|
|
31
|
+
var _sdk$appInfo7, _sdk$appInfo7$applica, _sdk$appInfo7$applica2;
|
|
32
|
+
|
|
33
|
+
return Boolean((_sdk$appInfo7 = sdk.appInfo) === null || _sdk$appInfo7 === void 0 ? void 0 : (_sdk$appInfo7$applica = _sdk$appInfo7.applicationAttributes) === null || _sdk$appInfo7$applica === void 0 ? void 0 : (_sdk$appInfo7$applica2 = _sdk$appInfo7$applica.includes) === null || _sdk$appInfo7$applica2 === void 0 ? void 0 : _sdk$appInfo7$applica2.call(_sdk$appInfo7$applica, _uikitUtils.ApplicationAttributes.reactions));
|
|
34
|
+
}, [(_sdk$appInfo8 = sdk.appInfo) === null || _sdk$appInfo8 === void 0 ? void 0 : _sdk$appInfo8.applicationAttributes]);
|
|
35
|
+
return {
|
|
36
|
+
deliveryReceiptEnabled,
|
|
37
|
+
broadcastChannelEnabled,
|
|
38
|
+
superGroupChannelEnabled,
|
|
39
|
+
reactionEnabled
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.useAppFeatures = useAppFeatures;
|
|
44
|
+
//# sourceMappingURL=useAppFeatures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useAppFeatures","sdk","deliveryReceiptEnabled","useMemo","Boolean","appInfo","premiumFeatureList","includes","PremiumFeatures","delivery_receipt","broadcastChannelEnabled","applicationAttributes","ApplicationAttributes","allow_broadcast_channel","superGroupChannelEnabled","allow_super_group_channel","reactionEnabled","reactions"],"sources":["useAppFeatures.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { ApplicationAttributes, PremiumFeatures, SendbirdChatSDK } from '@sendbird/uikit-utils';\n\nexport const useAppFeatures = (sdk: SendbirdChatSDK) => {\n const deliveryReceiptEnabled = useMemo(() => {\n return Boolean(sdk.appInfo?.premiumFeatureList?.includes?.(PremiumFeatures.delivery_receipt));\n }, [sdk.appInfo?.premiumFeatureList]);\n\n const broadcastChannelEnabled = useMemo(() => {\n return Boolean(sdk.appInfo?.applicationAttributes?.includes?.(ApplicationAttributes.allow_broadcast_channel));\n }, [sdk.appInfo?.applicationAttributes]);\n\n const superGroupChannelEnabled = useMemo(() => {\n return Boolean(sdk.appInfo?.applicationAttributes?.includes?.(ApplicationAttributes.allow_super_group_channel));\n }, [sdk.appInfo?.applicationAttributes]);\n\n const reactionEnabled = useMemo(() => {\n return Boolean(sdk.appInfo?.applicationAttributes?.includes?.(ApplicationAttributes.reactions));\n }, [sdk.appInfo?.applicationAttributes]);\n\n return {\n deliveryReceiptEnabled,\n broadcastChannelEnabled,\n superGroupChannelEnabled,\n reactionEnabled,\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEO,MAAMA,cAAc,GAAIC,GAAD,IAA0B;EAAA;;EACtD,MAAMC,sBAAsB,GAAG,IAAAC,cAAA,EAAQ,MAAM;IAAA;;IAC3C,OAAOC,OAAO,iBAACH,GAAG,CAACI,OAAL,0EAAC,aAAaC,kBAAd,oFAAC,sBAAiCC,QAAlC,2DAAC,mDAA4CC,2BAAA,CAAgBC,gBAA5D,CAAD,CAAd;EACD,CAF8B,EAE5B,kBAACR,GAAG,CAACI,OAAL,kDAAC,cAAaC,kBAAd,CAF4B,CAA/B;EAIA,MAAMI,uBAAuB,GAAG,IAAAP,cAAA,EAAQ,MAAM;IAAA;;IAC5C,OAAOC,OAAO,kBAACH,GAAG,CAACI,OAAL,2EAAC,cAAaM,qBAAd,oFAAC,sBAAoCJ,QAArC,2DAAC,mDAA+CK,iCAAA,CAAsBC,uBAArE,CAAD,CAAd;EACD,CAF+B,EAE7B,kBAACZ,GAAG,CAACI,OAAL,kDAAC,cAAaM,qBAAd,CAF6B,CAAhC;EAIA,MAAMG,wBAAwB,GAAG,IAAAX,cAAA,EAAQ,MAAM;IAAA;;IAC7C,OAAOC,OAAO,kBAACH,GAAG,CAACI,OAAL,2EAAC,cAAaM,qBAAd,oFAAC,sBAAoCJ,QAArC,2DAAC,mDAA+CK,iCAAA,CAAsBG,yBAArE,CAAD,CAAd;EACD,CAFgC,EAE9B,kBAACd,GAAG,CAACI,OAAL,kDAAC,cAAaM,qBAAd,CAF8B,CAAjC;EAIA,MAAMK,eAAe,GAAG,IAAAb,cAAA,EAAQ,MAAM;IAAA;;IACpC,OAAOC,OAAO,kBAACH,GAAG,CAACI,OAAL,2EAAC,cAAaM,qBAAd,oFAAC,sBAAoCJ,QAArC,2DAAC,mDAA+CK,iCAAA,CAAsBK,SAArE,CAAD,CAAd;EACD,CAFuB,EAErB,kBAAChB,GAAG,CAACI,OAAL,kDAAC,cAAaM,qBAAd,CAFqB,CAAxB;EAIA,OAAO;IACLT,sBADK;IAELQ,uBAFK;IAGLI,wBAHK;IAILE;EAJK,CAAP;AAMD,CAvBM"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.usePushTrigger = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
+
|
|
12
|
+
const usePushTrigger = sdk => {
|
|
13
|
+
const [option, setOption] = (0, _react.useState)('off');
|
|
14
|
+
const updateOption = (0, _react.useCallback)(async value => {
|
|
15
|
+
try {
|
|
16
|
+
await sdk.setPushTriggerOption(value);
|
|
17
|
+
setOption(value);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
_uikitUtils.Logger.warn('[usePushTrigger]', 'Cannot update push trigger option', e);
|
|
20
|
+
}
|
|
21
|
+
}, [sdk, sdk.currentUser]);
|
|
22
|
+
(0, _uikitUtils.useAsyncEffect)(async () => {
|
|
23
|
+
const currentOption = await sdk.getPushTriggerOption();
|
|
24
|
+
setOption(currentOption);
|
|
25
|
+
}, [sdk, sdk.currentUser]);
|
|
26
|
+
return {
|
|
27
|
+
option,
|
|
28
|
+
updateOption
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.usePushTrigger = usePushTrigger;
|
|
33
|
+
//# sourceMappingURL=usePushTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["usePushTrigger","sdk","option","setOption","useState","updateOption","useCallback","value","setPushTriggerOption","e","Logger","warn","currentUser","useAsyncEffect","currentOption","getPushTriggerOption"],"sources":["usePushTrigger.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { Logger, useAsyncEffect } from '@sendbird/uikit-utils';\n\ntype PushTriggerOptionType = 'all' | 'mention_only' | 'off';\nexport const usePushTrigger = (sdk: SendbirdChatSDK) => {\n const [option, setOption] = useState<PushTriggerOptionType>('off');\n\n const updateOption = useCallback(\n async (value: PushTriggerOptionType) => {\n try {\n await sdk.setPushTriggerOption(value);\n setOption(value);\n } catch (e) {\n Logger.warn('[usePushTrigger]', 'Cannot update push trigger option', e);\n }\n },\n [sdk, sdk.currentUser],\n );\n\n useAsyncEffect(async () => {\n const currentOption = await sdk.getPushTriggerOption();\n setOption(currentOption as PushTriggerOptionType);\n }, [sdk, sdk.currentUser]);\n\n return {\n option,\n updateOption,\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAGA;;AAGO,MAAMA,cAAc,GAAIC,GAAD,IAA0B;EACtD,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsB,IAAAC,eAAA,EAAgC,KAAhC,CAA5B;EAEA,MAAMC,YAAY,GAAG,IAAAC,kBAAA,EACnB,MAAOC,KAAP,IAAwC;IACtC,IAAI;MACF,MAAMN,GAAG,CAACO,oBAAJ,CAAyBD,KAAzB,CAAN;MACAJ,SAAS,CAACI,KAAD,CAAT;IACD,CAHD,CAGE,OAAOE,CAAP,EAAU;MACVC,kBAAA,CAAOC,IAAP,CAAY,kBAAZ,EAAgC,mCAAhC,EAAqEF,CAArE;IACD;EACF,CARkB,EASnB,CAACR,GAAD,EAAMA,GAAG,CAACW,WAAV,CATmB,CAArB;EAYA,IAAAC,0BAAA,EAAe,YAAY;IACzB,MAAMC,aAAa,GAAG,MAAMb,GAAG,CAACc,oBAAJ,EAA5B;IACAZ,SAAS,CAACW,aAAD,CAAT;EACD,CAHD,EAGG,CAACb,GAAD,EAAMA,GAAG,CAACW,WAAV,CAHH;EAKA,OAAO;IACLV,MADK;IAELG;EAFK,CAAP;AAID,CAxBM"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useTotalUnreadChannelCount = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
+
|
|
12
|
+
var _useUserEventHandler = require("../handler/useUserEventHandler");
|
|
13
|
+
|
|
14
|
+
const HOOK_NAME = 'useTotalUnreadChannelCount';
|
|
15
|
+
|
|
16
|
+
const useTotalUnreadChannelCount = (sdk, params) => {
|
|
17
|
+
const id = (0, _uikitUtils.useUniqId)(HOOK_NAME);
|
|
18
|
+
const [unreadChannelCount, setUnreadChannelCount] = (0, _react.useState)(0);
|
|
19
|
+
(0, _uikitUtils.useAsyncEffect)(async () => {
|
|
20
|
+
setUnreadChannelCount(await sdk.getTotalUnreadChannelCount());
|
|
21
|
+
}, [sdk]);
|
|
22
|
+
(0, _useUserEventHandler.useUserEventHandler)(sdk, HOOK_NAME + id, {
|
|
23
|
+
onTotalUnreadMessageCountUpdated: async () => setUnreadChannelCount(await sdk.getTotalUnreadChannelCount())
|
|
24
|
+
});
|
|
25
|
+
return (0, _uikitUtils.truncatedBadgeCount)(unreadChannelCount, params === null || params === void 0 ? void 0 : params.maxCount);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports.useTotalUnreadChannelCount = useTotalUnreadChannelCount;
|
|
29
|
+
//# sourceMappingURL=useTotalUnreadChannelCount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HOOK_NAME","useTotalUnreadChannelCount","sdk","params","id","useUniqId","unreadChannelCount","setUnreadChannelCount","useState","useAsyncEffect","getTotalUnreadChannelCount","useUserEventHandler","onTotalUnreadMessageCountUpdated","truncatedBadgeCount","maxCount"],"sources":["useTotalUnreadChannelCount.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { truncatedBadgeCount, useAsyncEffect } from '@sendbird/uikit-utils';\nimport { useUniqId } from '@sendbird/uikit-utils';\n\nimport { useUserEventHandler } from '../handler/useUserEventHandler';\n\ntype Params = {\n maxCount?: number;\n};\nconst HOOK_NAME = 'useTotalUnreadChannelCount';\nexport const useTotalUnreadChannelCount = (sdk: SendbirdChatSDK, params?: Params) => {\n const id = useUniqId(HOOK_NAME);\n const [unreadChannelCount, setUnreadChannelCount] = useState(0);\n\n useAsyncEffect(async () => {\n setUnreadChannelCount(await sdk.getTotalUnreadChannelCount());\n }, [sdk]);\n\n useUserEventHandler(sdk, HOOK_NAME + id, {\n onTotalUnreadMessageCountUpdated: async () => setUnreadChannelCount(await sdk.getTotalUnreadChannelCount()),\n });\n\n return truncatedBadgeCount(unreadChannelCount, params?.maxCount);\n};\n"],"mappings":";;;;;;;AAAA;;AAGA;;AAGA;;AAKA,MAAMA,SAAS,GAAG,4BAAlB;;AACO,MAAMC,0BAA0B,GAAG,CAACC,GAAD,EAAuBC,MAAvB,KAA2C;EACnF,MAAMC,EAAE,GAAG,IAAAC,qBAAA,EAAUL,SAAV,CAAX;EACA,MAAM,CAACM,kBAAD,EAAqBC,qBAArB,IAA8C,IAAAC,eAAA,EAAS,CAAT,CAApD;EAEA,IAAAC,0BAAA,EAAe,YAAY;IACzBF,qBAAqB,CAAC,MAAML,GAAG,CAACQ,0BAAJ,EAAP,CAArB;EACD,CAFD,EAEG,CAACR,GAAD,CAFH;EAIA,IAAAS,wCAAA,EAAoBT,GAApB,EAAyBF,SAAS,GAAGI,EAArC,EAAyC;IACvCQ,gCAAgC,EAAE,YAAYL,qBAAqB,CAAC,MAAML,GAAG,CAACQ,0BAAJ,EAAP;EAD5B,CAAzC;EAIA,OAAO,IAAAG,+BAAA,EAAoBP,kBAApB,EAAwCH,MAAxC,aAAwCA,MAAxC,uBAAwCA,MAAM,CAAEW,QAAhD,CAAP;AACD,CAbM"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useTotalUnreadMessageCount = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
+
|
|
12
|
+
var _useUserEventHandler = require("../handler/useUserEventHandler");
|
|
13
|
+
|
|
14
|
+
const HOOK_NAME = 'useTotalUnreadMessageCount';
|
|
15
|
+
|
|
16
|
+
const useTotalUnreadMessageCount = (sdk, params) => {
|
|
17
|
+
const id = (0, _uikitUtils.useUniqId)(HOOK_NAME);
|
|
18
|
+
const [unreadMessageCount, setUnreadMessageCount] = (0, _react.useState)(0);
|
|
19
|
+
(0, _uikitUtils.useAsyncEffect)(async () => {
|
|
20
|
+
let param;
|
|
21
|
+
|
|
22
|
+
if (params !== null && params !== void 0 && params.paramCreator) {
|
|
23
|
+
param = params.paramCreator();
|
|
24
|
+
} else {
|
|
25
|
+
const params = new sdk.GroupChannelTotalUnreadMessageCountParams();
|
|
26
|
+
params.superChannelFilter = 'all';
|
|
27
|
+
param = params;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const unreadCount = await sdk.getTotalUnreadMessageCount(param);
|
|
31
|
+
setUnreadMessageCount(unreadCount);
|
|
32
|
+
}, [sdk, params === null || params === void 0 ? void 0 : params.paramCreator]);
|
|
33
|
+
(0, _useUserEventHandler.useUserEventHandler)(sdk, `${HOOK_NAME}_${id}`, {
|
|
34
|
+
onTotalUnreadMessageCountUpdated: totalCount => setUnreadMessageCount(totalCount)
|
|
35
|
+
}, [sdk]);
|
|
36
|
+
return (0, _uikitUtils.truncatedBadgeCount)(unreadMessageCount, params === null || params === void 0 ? void 0 : params.maxCount);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
exports.useTotalUnreadMessageCount = useTotalUnreadMessageCount;
|
|
40
|
+
//# sourceMappingURL=useTotalUnreadMessageCount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HOOK_NAME","useTotalUnreadMessageCount","sdk","params","id","useUniqId","unreadMessageCount","setUnreadMessageCount","useState","useAsyncEffect","param","paramCreator","GroupChannelTotalUnreadMessageCountParams","superChannelFilter","unreadCount","getTotalUnreadMessageCount","useUserEventHandler","onTotalUnreadMessageCountUpdated","totalCount","truncatedBadgeCount","maxCount"],"sources":["useTotalUnreadMessageCount.ts"],"sourcesContent":["import { useState } from 'react';\nimport type Sendbird from 'sendbird';\n\nimport type { SendbirdChatSDK } from '@sendbird/uikit-utils';\nimport { truncatedBadgeCount, useAsyncEffect } from '@sendbird/uikit-utils';\nimport { useUniqId } from '@sendbird/uikit-utils';\n\nimport { useUserEventHandler } from '../handler/useUserEventHandler';\n\ntype Params = {\n paramCreator?: () => Sendbird.GroupChannelTotalUnreadMessageCountParams;\n maxCount?: number;\n};\n\nconst HOOK_NAME = 'useTotalUnreadMessageCount';\nexport const useTotalUnreadMessageCount = (sdk: SendbirdChatSDK, params?: Params) => {\n const id = useUniqId(HOOK_NAME);\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n\n useAsyncEffect(async () => {\n let param;\n if (params?.paramCreator) {\n param = params.paramCreator();\n } else {\n const params = new sdk.GroupChannelTotalUnreadMessageCountParams();\n params.superChannelFilter = 'all';\n param = params;\n }\n const unreadCount = await sdk.getTotalUnreadMessageCount(param);\n setUnreadMessageCount(unreadCount);\n }, [sdk, params?.paramCreator]);\n\n useUserEventHandler(\n sdk,\n `${HOOK_NAME}_${id}`,\n {\n onTotalUnreadMessageCountUpdated: (totalCount: number) => setUnreadMessageCount(totalCount),\n },\n [sdk],\n );\n\n return truncatedBadgeCount(unreadMessageCount, params?.maxCount);\n};\n"],"mappings":";;;;;;;AAAA;;AAIA;;AAGA;;AAOA,MAAMA,SAAS,GAAG,4BAAlB;;AACO,MAAMC,0BAA0B,GAAG,CAACC,GAAD,EAAuBC,MAAvB,KAA2C;EACnF,MAAMC,EAAE,GAAG,IAAAC,qBAAA,EAAUL,SAAV,CAAX;EACA,MAAM,CAACM,kBAAD,EAAqBC,qBAArB,IAA8C,IAAAC,eAAA,EAAS,CAAT,CAApD;EAEA,IAAAC,0BAAA,EAAe,YAAY;IACzB,IAAIC,KAAJ;;IACA,IAAIP,MAAJ,aAAIA,MAAJ,eAAIA,MAAM,CAAEQ,YAAZ,EAA0B;MACxBD,KAAK,GAAGP,MAAM,CAACQ,YAAP,EAAR;IACD,CAFD,MAEO;MACL,MAAMR,MAAM,GAAG,IAAID,GAAG,CAACU,yCAAR,EAAf;MACAT,MAAM,CAACU,kBAAP,GAA4B,KAA5B;MACAH,KAAK,GAAGP,MAAR;IACD;;IACD,MAAMW,WAAW,GAAG,MAAMZ,GAAG,CAACa,0BAAJ,CAA+BL,KAA/B,CAA1B;IACAH,qBAAqB,CAACO,WAAD,CAArB;EACD,CAXD,EAWG,CAACZ,GAAD,EAAMC,MAAN,aAAMA,MAAN,uBAAMA,MAAM,CAAEQ,YAAd,CAXH;EAaA,IAAAK,wCAAA,EACEd,GADF,EAEG,GAAEF,SAAU,IAAGI,EAAG,EAFrB,EAGE;IACEa,gCAAgC,EAAGC,UAAD,IAAwBX,qBAAqB,CAACW,UAAD;EADjF,CAHF,EAME,CAAChB,GAAD,CANF;EASA,OAAO,IAAAiB,+BAAA,EAAoBb,kBAApB,EAAwCH,MAAxC,aAAwCA,MAAxC,uBAAwCA,MAAM,CAAEiB,QAAhD,CAAP;AACD,CA3BM"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useUserList = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
+
|
|
12
|
+
const createUserQuery = (sdk, queryCreator) => {
|
|
13
|
+
if (queryCreator) return queryCreator();
|
|
14
|
+
return sdk.createApplicationUserListQuery();
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Get user list from query.
|
|
18
|
+
* default query uses 'instance.createApplicationUserListQuery'
|
|
19
|
+
* The response type of hook is depends on return type of 'query.next()'
|
|
20
|
+
*
|
|
21
|
+
* You can call hook with your custom query using {@link CustomQuery}
|
|
22
|
+
* Or you can create your 'CustomQueryClass' implemented {@link CustomQueryInterface}'
|
|
23
|
+
*
|
|
24
|
+
* ```example
|
|
25
|
+
* const { users } = useUserList(sdk, {
|
|
26
|
+
* queryCreator: () => {
|
|
27
|
+
* const friendQuery = sdk.createFriendListQuery();
|
|
28
|
+
* return new CustomQuery({
|
|
29
|
+
* next: () => friendQuery.next(),
|
|
30
|
+
* isLoading: () => friendQuery.isLoading,
|
|
31
|
+
* hasNext: () => friendQuery.hasMore,
|
|
32
|
+
* });
|
|
33
|
+
* }
|
|
34
|
+
* })
|
|
35
|
+
* ```
|
|
36
|
+
* */
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
const useUserList = (sdk, options) => {
|
|
40
|
+
const query = (0, _react.useRef)();
|
|
41
|
+
const [error, setError] = (0, _react.useState)(null);
|
|
42
|
+
const [loading, setLoading] = (0, _react.useState)(false);
|
|
43
|
+
const [refreshing, setRefreshing] = (0, _react.useState)(false);
|
|
44
|
+
const [users, setUsers] = (0, _react.useState)([]);
|
|
45
|
+
const sortedUsers = (0, _react.useMemo)(() => {
|
|
46
|
+
if (options !== null && options !== void 0 && options.sortComparator) return users.sort(options.sortComparator);
|
|
47
|
+
return users;
|
|
48
|
+
}, [users, options === null || options === void 0 ? void 0 : options.sortComparator]);
|
|
49
|
+
|
|
50
|
+
const updateUsers = (users, clearPrev) => {
|
|
51
|
+
if (clearPrev) setUsers(users);else setUsers(prev => prev.concat(users));
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const init = (0, _react.useCallback)(async () => {
|
|
55
|
+
var _query$current;
|
|
56
|
+
|
|
57
|
+
query.current = createUserQuery(sdk, options === null || options === void 0 ? void 0 : options.queryCreator);
|
|
58
|
+
|
|
59
|
+
if ((_query$current = query.current) !== null && _query$current !== void 0 && _query$current.hasNext) {
|
|
60
|
+
var _query$current2;
|
|
61
|
+
|
|
62
|
+
const users = await ((_query$current2 = query.current) === null || _query$current2 === void 0 ? void 0 : _query$current2.next());
|
|
63
|
+
updateUsers(users, true);
|
|
64
|
+
}
|
|
65
|
+
}, [sdk, options === null || options === void 0 ? void 0 : options.queryCreator]);
|
|
66
|
+
(0, _uikitUtils.useAsyncEffect)(async () => {
|
|
67
|
+
setLoading(true);
|
|
68
|
+
setError(null);
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
await init();
|
|
72
|
+
} catch (e) {
|
|
73
|
+
setError(e);
|
|
74
|
+
} finally {
|
|
75
|
+
setLoading(false);
|
|
76
|
+
}
|
|
77
|
+
}, [init]);
|
|
78
|
+
const refresh = (0, _react.useCallback)(async () => {
|
|
79
|
+
setRefreshing(true);
|
|
80
|
+
setError(null);
|
|
81
|
+
|
|
82
|
+
try {
|
|
83
|
+
await init();
|
|
84
|
+
} catch (e) {
|
|
85
|
+
setError(e);
|
|
86
|
+
} finally {
|
|
87
|
+
setRefreshing(false);
|
|
88
|
+
}
|
|
89
|
+
}, [init]);
|
|
90
|
+
const next = (0, _react.useCallback)(async () => {
|
|
91
|
+
var _query$current3;
|
|
92
|
+
|
|
93
|
+
if (query.current && (_query$current3 = query.current) !== null && _query$current3 !== void 0 && _query$current3.hasNext) {
|
|
94
|
+
var _query$current4;
|
|
95
|
+
|
|
96
|
+
updateUsers(await ((_query$current4 = query.current) === null || _query$current4 === void 0 ? void 0 : _query$current4.next()), false);
|
|
97
|
+
}
|
|
98
|
+
}, []);
|
|
99
|
+
return {
|
|
100
|
+
loading,
|
|
101
|
+
error,
|
|
102
|
+
users: sortedUsers,
|
|
103
|
+
next,
|
|
104
|
+
refreshing,
|
|
105
|
+
refresh
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
exports.useUserList = useUserList;
|
|
110
|
+
//# sourceMappingURL=useUserList.js.map
|
|
@@ -0,0 +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","updateUsers","clearPrev","prev","concat","init","useCallback","current","hasNext","next","useAsyncEffect","e","refresh"],"sources":["useUserList.ts"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { Optional, SendbirdChatSDK, SendbirdUser, useAsyncEffect } from '@sendbird/uikit-utils';\n\nimport type { CustomQueryInterface, UseUserListOptions, UseUserListReturn } from '../types';\n\nconst createUserQuery = <User>(sdk: SendbirdChatSDK, queryCreator?: UseUserListOptions<User>['queryCreator']) => {\n if (queryCreator) return queryCreator();\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<QueriedUser>,\n QueriedUser = Options['queryCreator'] extends Optional<() => CustomQueryInterface<infer User>> ? User : SendbirdUser,\n>(\n sdk: SendbirdChatSDK,\n options?: Options,\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 updateUsers = (users: QueriedUser[], clearPrev: boolean) => {\n if (clearPrev) setUsers(users);\n else setUsers((prev) => prev.concat(users));\n };\n\n const init = useCallback(async () => {\n query.current = createUserQuery<QueriedUser>(sdk, options?.queryCreator);\n if (query.current?.hasNext) {\n const users = await query.current?.next();\n updateUsers(users, true);\n }\n }, [sdk, options?.queryCreator]);\n\n useAsyncEffect(async () => {\n setLoading(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n } finally {\n setLoading(false);\n }\n }, [init]);\n\n const refresh = useCallback(async () => {\n setRefreshing(true);\n setError(null);\n try {\n await init();\n } catch (e) {\n setError(e);\n } finally {\n setRefreshing(false);\n }\n }, [init]);\n\n const next = useCallback(async () => {\n if (query.current && query.current?.hasNext) {\n updateUsers(await query.current?.next(), false);\n }\n }, []);\n\n return {\n loading,\n error,\n users: sortedUsers,\n next,\n refreshing,\n refresh,\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAIA,MAAMA,eAAe,GAAG,CAAOC,GAAP,EAA6BC,YAA7B,KAAyF;EAC/G,IAAIA,YAAJ,EAAkB,OAAOA,YAAY,EAAnB;EAClB,OAAOD,GAAG,CAACE,8BAAJ,EAAP;AACD,CAHD;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,MAAMC,WAAW,GAAG,CAIzBH,GAJyB,EAKzBI,OALyB,KAMU;EACnC,MAAMC,KAAK,GAAG,IAAAC,aAAA,GAAd;EAEA,MAAM,CAACC,KAAD,EAAQC,QAAR,IAAoB,IAAAC,eAAA,EAAkB,IAAlB,CAA1B;EACA,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwB,IAAAF,eAAA,EAAS,KAAT,CAA9B;EACA,MAAM,CAACG,UAAD,EAAaC,aAAb,IAA8B,IAAAJ,eAAA,EAAS,KAAT,CAApC;EAEA,MAAM,CAACK,KAAD,EAAQC,QAAR,IAAoB,IAAAN,eAAA,EAAwB,EAAxB,CAA1B;EACA,MAAMO,WAAW,GAAG,IAAAC,cAAA,EAAQ,MAAqB;IAC/C,IAAIb,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEc,cAAb,EAA6B,OAAOJ,KAAK,CAACK,IAAN,CAAWf,OAAO,CAACc,cAAnB,CAAP;IAC7B,OAAOJ,KAAP;EACD,CAHmB,EAGjB,CAACA,KAAD,EAAQV,OAAR,aAAQA,OAAR,uBAAQA,OAAO,CAAEc,cAAjB,CAHiB,CAApB;;EAKA,MAAME,WAAW,GAAG,CAACN,KAAD,EAAuBO,SAAvB,KAA8C;IAChE,IAAIA,SAAJ,EAAeN,QAAQ,CAACD,KAAD,CAAR,CAAf,KACKC,QAAQ,CAAEO,IAAD,IAAUA,IAAI,CAACC,MAAL,CAAYT,KAAZ,CAAX,CAAR;EACN,CAHD;;EAKA,MAAMU,IAAI,GAAG,IAAAC,kBAAA,EAAY,YAAY;IAAA;;IACnCpB,KAAK,CAACqB,OAAN,GAAgB3B,eAAe,CAAcC,GAAd,EAAmBI,OAAnB,aAAmBA,OAAnB,uBAAmBA,OAAO,CAAEH,YAA5B,CAA/B;;IACA,sBAAII,KAAK,CAACqB,OAAV,2CAAI,eAAeC,OAAnB,EAA4B;MAAA;;MAC1B,MAAMb,KAAK,GAAG,0BAAMT,KAAK,CAACqB,OAAZ,oDAAM,gBAAeE,IAAf,EAAN,CAAd;MACAR,WAAW,CAACN,KAAD,EAAQ,IAAR,CAAX;IACD;EACF,CANY,EAMV,CAACd,GAAD,EAAMI,OAAN,aAAMA,OAAN,uBAAMA,OAAO,CAAEH,YAAf,CANU,CAAb;EAQA,IAAA4B,0BAAA,EAAe,YAAY;IACzBlB,UAAU,CAAC,IAAD,CAAV;IACAH,QAAQ,CAAC,IAAD,CAAR;;IACA,IAAI;MACF,MAAMgB,IAAI,EAAV;IACD,CAFD,CAEE,OAAOM,CAAP,EAAU;MACVtB,QAAQ,CAACsB,CAAD,CAAR;IACD,CAJD,SAIU;MACRnB,UAAU,CAAC,KAAD,CAAV;IACD;EACF,CAVD,EAUG,CAACa,IAAD,CAVH;EAYA,MAAMO,OAAO,GAAG,IAAAN,kBAAA,EAAY,YAAY;IACtCZ,aAAa,CAAC,IAAD,CAAb;IACAL,QAAQ,CAAC,IAAD,CAAR;;IACA,IAAI;MACF,MAAMgB,IAAI,EAAV;IACD,CAFD,CAEE,OAAOM,CAAP,EAAU;MACVtB,QAAQ,CAACsB,CAAD,CAAR;IACD,CAJD,SAIU;MACRjB,aAAa,CAAC,KAAD,CAAb;IACD;EACF,CAVe,EAUb,CAACW,IAAD,CAVa,CAAhB;EAYA,MAAMI,IAAI,GAAG,IAAAH,kBAAA,EAAY,YAAY;IAAA;;IACnC,IAAIpB,KAAK,CAACqB,OAAN,uBAAiBrB,KAAK,CAACqB,OAAvB,4CAAiB,gBAAeC,OAApC,EAA6C;MAAA;;MAC3CP,WAAW,CAAC,0BAAMf,KAAK,CAACqB,OAAZ,oDAAM,gBAAeE,IAAf,EAAN,CAAD,EAA8B,KAA9B,CAAX;IACD;EACF,CAJY,EAIV,EAJU,CAAb;EAMA,OAAO;IACLlB,OADK;IAELH,KAFK;IAGLO,KAAK,EAAEE,WAHF;IAILY,IAJK;IAKLhB,UALK;IAMLmB;EANK,CAAP;AAQD,CAtEM"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useChannelHandler = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
+
|
|
12
|
+
const useChannelHandler = function (sdk, handlerId, hookHandler) {
|
|
13
|
+
let deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
14
|
+
(0, _react.useEffect)(() => {
|
|
15
|
+
_uikitUtils.Logger.debug('[useChannelHandler] hook called by', handlerId);
|
|
16
|
+
|
|
17
|
+
const handler = new sdk.ChannelHandler();
|
|
18
|
+
const handlerKeys = Object.keys(handler);
|
|
19
|
+
handlerKeys.forEach(key => {
|
|
20
|
+
const hookHandlerFn = hookHandler[key];
|
|
21
|
+
if (hookHandlerFn) handler[key] = hookHandlerFn;
|
|
22
|
+
});
|
|
23
|
+
sdk.addChannelHandler(handlerId, handler);
|
|
24
|
+
return () => sdk.removeChannelHandler(handlerId);
|
|
25
|
+
}, [sdk, handlerId, ...deps]);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports.useChannelHandler = useChannelHandler;
|
|
29
|
+
//# sourceMappingURL=useChannelHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useChannelHandler","sdk","handlerId","hookHandler","deps","useEffect","Logger","debug","handler","ChannelHandler","handlerKeys","Object","keys","forEach","key","hookHandlerFn","addChannelHandler","removeChannelHandler"],"sources":["useChannelHandler.ts"],"sourcesContent":["import React, { useEffect } from 'react';\nimport type Sendbird from 'sendbird';\n\nimport { Logger, SendbirdChatSDK } from '@sendbird/uikit-utils';\n\nexport const useChannelHandler = (\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<Sendbird.ChannelHandler>,\n deps: React.DependencyList = [],\n) => {\n useEffect(() => {\n Logger.debug('[useChannelHandler] hook called by', handlerId);\n\n const handler = new sdk.ChannelHandler();\n const handlerKeys = Object.keys(handler) as (keyof typeof handler)[];\n handlerKeys.forEach((key) => {\n const hookHandlerFn = hookHandler[key];\n if (hookHandlerFn) handler[key] = hookHandlerFn as () => unknown;\n });\n\n sdk.addChannelHandler(handlerId, handler);\n return () => sdk.removeChannelHandler(handlerId);\n }, [sdk, handlerId, ...deps]);\n};\n"],"mappings":";;;;;;;AAAA;;AAGA;;AAEO,MAAMA,iBAAiB,GAAG,UAC/BC,GAD+B,EAE/BC,SAF+B,EAG/BC,WAH+B,EAK5B;EAAA,IADHC,IACG,uEAD0B,EAC1B;EACH,IAAAC,gBAAA,EAAU,MAAM;IACdC,kBAAA,CAAOC,KAAP,CAAa,oCAAb,EAAmDL,SAAnD;;IAEA,MAAMM,OAAO,GAAG,IAAIP,GAAG,CAACQ,cAAR,EAAhB;IACA,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAP,CAAYJ,OAAZ,CAApB;IACAE,WAAW,CAACG,OAAZ,CAAqBC,GAAD,IAAS;MAC3B,MAAMC,aAAa,GAAGZ,WAAW,CAACW,GAAD,CAAjC;MACA,IAAIC,aAAJ,EAAmBP,OAAO,CAACM,GAAD,CAAP,GAAeC,aAAf;IACpB,CAHD;IAKAd,GAAG,CAACe,iBAAJ,CAAsBd,SAAtB,EAAiCM,OAAjC;IACA,OAAO,MAAMP,GAAG,CAACgB,oBAAJ,CAAyBf,SAAzB,CAAb;EACD,CAZD,EAYG,CAACD,GAAD,EAAMC,SAAN,EAAiB,GAAGE,IAApB,CAZH;AAaD,CAnBM"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useConnectionHandler = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
+
|
|
12
|
+
const useConnectionHandler = function (sdk, handlerId, hookHandler) {
|
|
13
|
+
let deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
14
|
+
(0, _react.useEffect)(() => {
|
|
15
|
+
_uikitUtils.Logger.info('[useConnectionHandler]', handlerId);
|
|
16
|
+
|
|
17
|
+
const handler = new sdk.ConnectionHandler();
|
|
18
|
+
const handlerKeys = Object.keys(handler);
|
|
19
|
+
handlerKeys.forEach(key => {
|
|
20
|
+
const hookHandlerFn = hookHandler[key];
|
|
21
|
+
if (hookHandlerFn) handler[key] = hookHandlerFn;
|
|
22
|
+
});
|
|
23
|
+
sdk.addConnectionHandler(handlerId, handler);
|
|
24
|
+
return () => sdk.removeConnectionHandler(handlerId);
|
|
25
|
+
}, [sdk, handlerId, ...deps]);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports.useConnectionHandler = useConnectionHandler;
|
|
29
|
+
//# sourceMappingURL=useConnectionHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useConnectionHandler","sdk","handlerId","hookHandler","deps","useEffect","Logger","info","handler","ConnectionHandler","handlerKeys","Object","keys","forEach","key","hookHandlerFn","addConnectionHandler","removeConnectionHandler"],"sources":["useConnectionHandler.ts"],"sourcesContent":["import React, { useEffect } from 'react';\nimport type Sendbird from 'sendbird';\n\nimport { Logger, SendbirdChatSDK } from '@sendbird/uikit-utils';\n\nexport const useConnectionHandler = (\n sdk: SendbirdChatSDK,\n handlerId: string,\n hookHandler: Partial<Sendbird.ConnectionHandler>,\n deps: React.DependencyList = [],\n) => {\n useEffect(() => {\n Logger.info('[useConnectionHandler]', handlerId);\n\n const handler = new sdk.ConnectionHandler();\n const handlerKeys = Object.keys(handler) as (keyof typeof handler)[];\n handlerKeys.forEach((key) => {\n const hookHandlerFn = hookHandler[key];\n if (hookHandlerFn) handler[key] = hookHandlerFn;\n });\n\n sdk.addConnectionHandler(handlerId, handler);\n return () => sdk.removeConnectionHandler(handlerId);\n }, [sdk, handlerId, ...deps]);\n};\n"],"mappings":";;;;;;;AAAA;;AAGA;;AAEO,MAAMA,oBAAoB,GAAG,UAClCC,GADkC,EAElCC,SAFkC,EAGlCC,WAHkC,EAK/B;EAAA,IADHC,IACG,uEAD0B,EAC1B;EACH,IAAAC,gBAAA,EAAU,MAAM;IACdC,kBAAA,CAAOC,IAAP,CAAY,wBAAZ,EAAsCL,SAAtC;;IAEA,MAAMM,OAAO,GAAG,IAAIP,GAAG,CAACQ,iBAAR,EAAhB;IACA,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAP,CAAYJ,OAAZ,CAApB;IACAE,WAAW,CAACG,OAAZ,CAAqBC,GAAD,IAAS;MAC3B,MAAMC,aAAa,GAAGZ,WAAW,CAACW,GAAD,CAAjC;MACA,IAAIC,aAAJ,EAAmBP,OAAO,CAACM,GAAD,CAAP,GAAeC,aAAf;IACpB,CAHD;IAKAd,GAAG,CAACe,oBAAJ,CAAyBd,SAAzB,EAAoCM,OAApC;IACA,OAAO,MAAMP,GAAG,CAACgB,uBAAJ,CAA4Bf,SAA5B,CAAb;EACD,CAZD,EAYG,CAACD,GAAD,EAAMC,SAAN,EAAiB,GAAGE,IAApB,CAZH;AAaD,CAnBM"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useUserEventHandler = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
|
+
|
|
12
|
+
const useUserEventHandler = function (sdk, handlerId, hookHandler) {
|
|
13
|
+
let deps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
14
|
+
(0, _react.useEffect)(() => {
|
|
15
|
+
_uikitUtils.Logger.debug('[useUserEventHandler] hook called by', handlerId);
|
|
16
|
+
|
|
17
|
+
const handler = new sdk.UserEventHandler();
|
|
18
|
+
const handlerKeys = Object.keys(handler);
|
|
19
|
+
handlerKeys.forEach(key => {
|
|
20
|
+
const hookHandlerFn = hookHandler[key];
|
|
21
|
+
if (hookHandlerFn) handler[key] = hookHandlerFn;
|
|
22
|
+
});
|
|
23
|
+
sdk.addUserEventHandler(handlerId, handler);
|
|
24
|
+
return () => sdk.removeUserEventHandler(handlerId);
|
|
25
|
+
}, [sdk, handlerId, ...deps]);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports.useUserEventHandler = useUserEventHandler;
|
|
29
|
+
//# sourceMappingURL=useUserEventHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useUserEventHandler","sdk","handlerId","hookHandler","deps","useEffect","Logger","debug","handler","UserEventHandler","handlerKeys","Object","keys","forEach","key","hookHandlerFn","addUserEventHandler","removeUserEventHandler"],"sources":["useUserEventHandler.ts"],"sourcesContent":["import React, { useEffect } from 'react';\nimport type Sendbird from 'sendbird';\n\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<Sendbird.UserEventHandler>,\n deps: React.DependencyList = [],\n) => {\n useEffect(() => {\n Logger.debug('[useUserEventHandler] hook called by', handlerId);\n\n const handler = new sdk.UserEventHandler();\n const handlerKeys = Object.keys(handler) as (keyof typeof handler)[];\n handlerKeys.forEach((key) => {\n const hookHandlerFn = hookHandler[key];\n if (hookHandlerFn) handler[key] = hookHandlerFn as () => unknown;\n });\n\n sdk.addUserEventHandler(handlerId, handler);\n return () => sdk.removeUserEventHandler(handlerId);\n }, [sdk, handlerId, ...deps]);\n};\n"],"mappings":";;;;;;;AAAA;;AAIA;;AAEO,MAAMA,mBAAmB,GAAG,UACjCC,GADiC,EAEjCC,SAFiC,EAGjCC,WAHiC,EAK9B;EAAA,IADHC,IACG,uEAD0B,EAC1B;EACH,IAAAC,gBAAA,EAAU,MAAM;IACdC,kBAAA,CAAOC,KAAP,CAAa,sCAAb,EAAqDL,SAArD;;IAEA,MAAMM,OAAO,GAAG,IAAIP,GAAG,CAACQ,gBAAR,EAAhB;IACA,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAP,CAAYJ,OAAZ,CAApB;IACAE,WAAW,CAACG,OAAZ,CAAqBC,GAAD,IAAS;MAC3B,MAAMC,aAAa,GAAGZ,WAAW,CAACW,GAAD,CAAjC;MACA,IAAIC,aAAJ,EAAmBP,OAAO,CAACM,GAAD,CAAP,GAAeC,aAAf;IACpB,CAHD;IAKAd,GAAG,CAACe,mBAAJ,CAAwBd,SAAxB,EAAmCM,OAAnC;IACA,OAAO,MAAMP,GAAG,CAACgB,sBAAJ,CAA2Bf,SAA3B,CAAb;EACD,CAZD,EAYG,CAACD,GAAD,EAAMC,SAAN,EAAiB,GAAGE,IAApB,CAZH;AAaD,CAnBM"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "CustomQuery", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _CustomQuery.CustomQuery;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "useActiveGroupChannel", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _useActiveGroupChannel.useActiveGroupChannel;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "useAppFeatures", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _useAppFeatures.useAppFeatures;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "useChannelHandler", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _useChannelHandler.useChannelHandler;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "useConnectionHandler", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _useConnectionHandler.useConnectionHandler;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "useGroupChannelList", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _useGroupChannelList.useGroupChannelList;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "useGroupChannelMessages", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _useGroupChannelMessages.useGroupChannelMessages;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "usePushTrigger", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _usePushTrigger.usePushTrigger;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "useTotalUnreadChannelCount", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _useTotalUnreadChannelCount.useTotalUnreadChannelCount;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "useTotalUnreadMessageCount", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _useTotalUnreadMessageCount.useTotalUnreadMessageCount;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "useUserEventHandler", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _useUserEventHandler.useUserEventHandler;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "useUserList", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _useUserList.useUserList;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
var _useGroupChannelList = require("./channel/useGroupChannelList");
|
|
80
|
+
|
|
81
|
+
var _useGroupChannelMessages = require("./channel/useGroupChannelMessages");
|
|
82
|
+
|
|
83
|
+
var _useActiveGroupChannel = require("./channel/useActiveGroupChannel");
|
|
84
|
+
|
|
85
|
+
var _useUserList = require("./common/useUserList");
|
|
86
|
+
|
|
87
|
+
var _usePushTrigger = require("./common/usePushTrigger");
|
|
88
|
+
|
|
89
|
+
var _useTotalUnreadMessageCount = require("./common/useTotalUnreadMessageCount");
|
|
90
|
+
|
|
91
|
+
var _useTotalUnreadChannelCount = require("./common/useTotalUnreadChannelCount");
|
|
92
|
+
|
|
93
|
+
var _useAppFeatures = require("./common/useAppFeatures");
|
|
94
|
+
|
|
95
|
+
var _useChannelHandler = require("./handler/useChannelHandler");
|
|
96
|
+
|
|
97
|
+
var _useConnectionHandler = require("./handler/useConnectionHandler");
|
|
98
|
+
|
|
99
|
+
var _useUserEventHandler = require("./handler/useUserEventHandler");
|
|
100
|
+
|
|
101
|
+
var _CustomQuery = require("./model/CustomQuery");
|
|
102
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { useGroupChannelList } from './channel/useGroupChannelList';\nexport { useGroupChannelMessages } from './channel/useGroupChannelMessages';\nexport { useActiveGroupChannel } from './channel/useActiveGroupChannel';\n\nexport { useUserList } from './common/useUserList';\nexport { usePushTrigger } from './common/usePushTrigger';\nexport { useTotalUnreadMessageCount } from './common/useTotalUnreadMessageCount';\nexport { useTotalUnreadChannelCount } from './common/useTotalUnreadChannelCount';\nexport { useAppFeatures } from './common/useAppFeatures';\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 UseUserListOptions,\n UseGroupChannelMessagesOptions,\n UseUserListReturn,\n CustomQueryInterface,\n CustomBidirectionalQueryInterface,\n} from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAEA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CustomQuery = void 0;
|
|
7
|
+
|
|
8
|
+
class CustomQuery {
|
|
9
|
+
constructor(params) {
|
|
10
|
+
this.params = params;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
get isLoading() {
|
|
14
|
+
return this.params.isLoading();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
get hasNext() {
|
|
18
|
+
return this.params.hasNext();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
next() {
|
|
22
|
+
return this.params.next();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
exports.CustomQuery = CustomQuery;
|
|
28
|
+
//# sourceMappingURL=CustomQuery.js.map
|
|
@@ -0,0 +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":";;;;;;;AAQO,MAAMA,WAAN,CAAwD;EAC7DC,WAAW,CAASC,MAAT,EAAuC;IAAA,KAA9BA,MAA8B,GAA9BA,MAA8B;EAAE;;EACvC,IAATC,SAAS,GAAY;IACvB,OAAO,KAAKD,MAAL,CAAYC,SAAZ,EAAP;EACD;;EACU,IAAPC,OAAO,GAAY;IACrB,OAAO,KAAKF,MAAL,CAAYE,OAAZ,EAAP;EACD;;EACDC,IAAI,GAAG;IACL,OAAO,KAAKH,MAAL,CAAYG,IAAZ,EAAP;EACD;;AAV4D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type Sendbird from 'sendbird';\n\nimport type {\n SendbirdChatSDK,\n SendbirdError,\n SendbirdFileMessage,\n SendbirdFileMessageParams,\n SendbirdGroupChannel,\n SendbirdGroupChannelCollection,\n SendbirdMessage,\n SendbirdMessageCollection,\n SendbirdUserMessage,\n SendbirdUserMessageParams,\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 * Update channel, update or insert channel to state\n * @param {SendbirdGroupChannel} channel\n * @return {void}\n * */\n update: (channel: SendbirdGroupChannel) => 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 sortComparator?: (a: SendbirdGroupChannel, b: SendbirdGroupChannel) => number;\n queryCreator?: () => Sendbird.GroupChannelListQuery;\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: SendbirdFileMessageParams,\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: SendbirdUserMessageParams,\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: SendbirdFileMessageParams) => 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: SendbirdUserMessageParams) => 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 * Activated channel\n * */\n activeChannel: SendbirdGroupChannel;\n };\n}\n\nexport type UseGroupChannelMessagesOptions = {\n sortComparator?: (a: SendbirdMessage, b: SendbirdMessage) => number;\n queryCreator?: () => Sendbird.PreviousMessageListQuery;\n collectionCreator?: () => SendbirdMessageCollection;\n enableCollectionWithoutLocalCache?: boolean;\n onChannelDeleted?: () => void;\n};\n\n/**\n * @interface UseUserListReturn\n * @description interface for user list hook return value\n * */\nexport interface UseUserListReturn<User> {\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 * Fetch next users to state\n * @return {Promise<void>}\n * */\n next: () => Promise<void>;\n}\n\nexport type UseUserListOptions<User> = {\n sortComparator?: (a: User, b: User) => number;\n queryCreator?: () => CustomQueryInterface<User>;\n};\n"],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
export const useActiveGroupChannel = (sdk, staleChannel) => {
|
|
3
|
+
const [activeChannel, setActiveChannel] = useState(() => staleChannel);
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
sdk.GroupChannel.getChannel(staleChannel.url).then(setActiveChannel);
|
|
6
|
+
}, [staleChannel.url]);
|
|
7
|
+
return {
|
|
8
|
+
activeChannel,
|
|
9
|
+
setActiveChannel
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=useActiveGroupChannel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","useActiveGroupChannel","sdk","staleChannel","activeChannel","setActiveChannel","GroupChannel","getChannel","url","then"],"sources":["useActiveGroupChannel.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { SendbirdChatSDK, SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nexport const useActiveGroupChannel = (sdk: SendbirdChatSDK, staleChannel: SendbirdGroupChannel) => {\n const [activeChannel, setActiveChannel] = useState(() => staleChannel);\n\n useEffect(() => {\n sdk.GroupChannel.getChannel(staleChannel.url).then(setActiveChannel);\n }, [staleChannel.url]);\n\n return { activeChannel, setActiveChannel };\n};\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,QAApB,QAAoC,OAApC;AAIA,OAAO,MAAMC,qBAAqB,GAAG,CAACC,GAAD,EAAuBC,YAAvB,KAA8D;EACjG,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoCL,QAAQ,CAAC,MAAMG,YAAP,CAAlD;EAEAJ,SAAS,CAAC,MAAM;IACdG,GAAG,CAACI,YAAJ,CAAiBC,UAAjB,CAA4BJ,YAAY,CAACK,GAAzC,EAA8CC,IAA9C,CAAmDJ,gBAAnD;EACD,CAFQ,EAEN,CAACF,YAAY,CAACK,GAAd,CAFM,CAAT;EAIA,OAAO;IAAEJ,aAAF;IAAiBC;EAAjB,CAAP;AACD,CARM"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { useGroupChannelListWithCollection } from './useGroupChannelListWithCollection';
|
|
2
|
+
import { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';
|
|
3
|
+
export const useGroupChannelList = (sdk, userId, options) => {
|
|
4
|
+
if (sdk.isCacheEnabled || options !== null && options !== void 0 && options.enableCollectionWithoutLocalCache) {
|
|
5
|
+
return useGroupChannelListWithCollection(sdk, userId, options);
|
|
6
|
+
} else {
|
|
7
|
+
return useGroupChannelListWithQuery(sdk, userId, options);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=useGroupChannelList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useGroupChannelListWithCollection","useGroupChannelListWithQuery","useGroupChannelList","sdk","userId","options","isCacheEnabled","enableCollectionWithoutLocalCache"],"sources":["useGroupChannelList.ts"],"sourcesContent":["import type { UseGroupChannelList } from '../types';\nimport { useGroupChannelListWithCollection } from './useGroupChannelListWithCollection';\nimport { useGroupChannelListWithQuery } from './useGroupChannelListWithQuery';\n\nexport const useGroupChannelList: UseGroupChannelList = (sdk, userId, options) => {\n if (sdk.isCacheEnabled || options?.enableCollectionWithoutLocalCache) {\n return useGroupChannelListWithCollection(sdk, userId, options);\n } else {\n return useGroupChannelListWithQuery(sdk, userId, options);\n }\n};\n"],"mappings":"AACA,SAASA,iCAAT,QAAkD,qCAAlD;AACA,SAASC,4BAAT,QAA6C,gCAA7C;AAEA,OAAO,MAAMC,mBAAwC,GAAG,CAACC,GAAD,EAAMC,MAAN,EAAcC,OAAd,KAA0B;EAChF,IAAIF,GAAG,CAACG,cAAJ,IAAsBD,OAAtB,aAAsBA,OAAtB,eAAsBA,OAAO,CAAEE,iCAAnC,EAAsE;IACpE,OAAOP,iCAAiC,CAACG,GAAD,EAAMC,MAAN,EAAcC,OAAd,CAAxC;EACD,CAFD,MAEO;IACL,OAAOJ,4BAA4B,CAACE,GAAD,EAAMC,MAAN,EAAcC,OAAd,CAAnC;EACD;AACF,CANM"}
|