UNPKG

@uimkit/uikit-react

Version:

<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>

85 lines (80 loc) 3.6 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib = require('tslib'); require('../../../types/models.js'); require('../../../types/events.js'); require('../../../context/TranslationContext.js'); var UIKitContext = require('../../../context/UIKitContext.js'); require('../../../context/ComponentContext.js'); require('../../../context/ChatActionContext.js'); require('../../../context/MessageInputContext.js'); require('../../../context/UIMessageContext.js'); require('../../../context/ChatStateContext.js'); var React = require('react'); function useGroupList(accountId, query, activeGroupHandler) { var _this = this; var client = UIKitContext.useUIKit('useGroupList').client; var _a = React.useState(undefined), error = _a[0], setError = _a[1]; var _b = React.useState(false), hasMore = _b[0], setHasMore = _b[1]; var _c = React.useState(undefined), nextCursor = _c[0], setNextCursor = _c[1]; var _d = React.useState(undefined), groups = _d[0], setGroups = _d[1]; var _e = React.useState(false), loading = _e[0], setLoading = _e[1]; var fetch = React.useCallback(function (queryType, nextCursor) { return tslib.__awaiter(_this, void 0, void 0, function () { var limit, cursor, newQuery, response, newGroups, e_1; var _a; return tslib.__generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 2, 3, 4]); setLoading(true); limit = (_a = query === null || query === void 0 ? void 0 : query.limit) !== null && _a !== void 0 ? _a : 50; if (queryType === 'reload') { setGroups([]); } cursor = queryType === 'reload' ? undefined : nextCursor; newQuery = tslib.__assign(tslib.__assign({}, query), { account_id: accountId, cursor: cursor, limit: limit }); return [4 /*yield*/, client.getGroupList(newQuery)]; case 1: response = _b.sent(); newGroups = queryType === 'reload' ? response.data : tslib.__spreadArray(tslib.__spreadArray([], groups, true), response.data, true); setGroups(newGroups); setHasMore(response.extra.has_next); setNextCursor(response.extra.end_cursor); if (activeGroupHandler) { activeGroupHandler(newGroups, setGroups); } return [3 /*break*/, 4]; case 2: e_1 = _b.sent(); setError(e_1); return [3 /*break*/, 4]; case 3: setLoading(false); return [7 /*endfinally*/]; case 4: return [2 /*return*/]; } }); }); }, [client, query, accountId]); React.useEffect(function () { if (accountId) fetch('reload'); }, [fetch, accountId]); var loadMore = React.useCallback(function () { if (accountId) fetch(undefined, nextCursor); }, [fetch, accountId, nextCursor]); var reload = React.useCallback(function () { if (accountId) fetch('reload'); }, [fetch, accountId]); return { loading: loading, error: error, groups: groups, reload: reload, hasMore: hasMore, loadMore: loadMore, }; } exports.useGroupList = useGroupList; //# sourceMappingURL=useGroupList.js.map