UNPKG

@uimkit/uikit-react

Version:

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

92 lines (87 loc) 3.83 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib = require('tslib'); var React = require('react'); var models = 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 useMomentList = function (userId, query) { var _a = React.useState(false), loading = _a[0], setLoading = _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), moments = _d[0], setMoments = _d[1]; var _e = React.useState(undefined), error = _e[0], setError = _e[1]; var client = UIKitContext.useUIKit('useMomentList').client; var fetch = React.useCallback(function (queryType, nextCursor) { return tslib.__awaiter(void 0, void 0, void 0, function () { var limit, cursor, newQuery, response, newMoments1, 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 : 20; if (queryType === 'reload') { setMoments([]); } cursor = queryType === 'reload' ? undefined : nextCursor; newQuery = tslib.__assign(tslib.__assign({}, query), { contact_id: userId, cursor: cursor, limit: limit }); return [4 /*yield*/, client.getContactMomentList(newQuery)]; case 1: response = _b.sent(); queryType === 'reload' ? response.data : tslib.__spreadArray(tslib.__spreadArray([], moments, true), response.data, true); newMoments1 = [ { id: '1', type: models.MomentType.Video, }, { id: '2', type: models.MomentType.Video, } ]; setMoments(newMoments1); setHasMore(response.extra.has_next); setNextCursor(response.extra.end_cursor); return [3 /*break*/, 4]; case 2: e_1 = _b.sent(); console.error(e_1); setError(e_1); return [3 /*break*/, 4]; case 3: setLoading(false); return [7 /*endfinally*/]; case 4: return [2 /*return*/]; } }); }); }, [client, query, userId]); React.useEffect(function () { if (userId) fetch('reload'); }, [fetch, userId]); var loadMore = React.useCallback(function () { if (userId) fetch(undefined, nextCursor); }, [fetch, userId, nextCursor]); var reload = React.useCallback(function () { if (userId) fetch('reload'); }, [fetch, userId]); return { loading: loading, hasMore: hasMore, moments: moments, error: error, reload: reload, loadMore: loadMore, }; }; exports.useMomentList = useMomentList; //# sourceMappingURL=useMomentList.js.map