UNPKG

@uimkit/uikit-react

Version:

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

88 lines (85 loc) 3.68 kB
import { __awaiter, __generator, __spreadArray, __assign } from 'tslib'; import { useState, useCallback, useEffect } from 'react'; import { MomentType } from '../../../types/models.js'; import '../../../types/events.js'; import '../../../context/TranslationContext.js'; import { useUIKit } from '../../../context/UIKitContext.js'; import '../../../context/ComponentContext.js'; import '../../../context/ChatActionContext.js'; import '../../../context/MessageInputContext.js'; import '../../../context/UIMessageContext.js'; import '../../../context/ChatStateContext.js'; var useMomentList = function (userId, query) { var _a = useState(false), loading = _a[0], setLoading = _a[1]; var _b = useState(false), hasMore = _b[0], setHasMore = _b[1]; var _c = useState(undefined), nextCursor = _c[0], setNextCursor = _c[1]; var _d = useState(undefined), moments = _d[0], setMoments = _d[1]; var _e = useState(undefined), error = _e[0], setError = _e[1]; var client = useUIKit('useMomentList').client; var fetch = useCallback(function (queryType, nextCursor) { return __awaiter(void 0, void 0, void 0, function () { var limit, cursor, newQuery, response, newMoments1, e_1; var _a; return __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 = __assign(__assign({}, query), { contact_id: userId, cursor: cursor, limit: limit }); return [4 /*yield*/, client.getContactMomentList(newQuery)]; case 1: response = _b.sent(); queryType === 'reload' ? response.data : __spreadArray(__spreadArray([], moments, true), response.data, true); newMoments1 = [ { id: '1', type: MomentType.Video, }, { id: '2', type: 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]); useEffect(function () { if (userId) fetch('reload'); }, [fetch, userId]); var loadMore = useCallback(function () { if (userId) fetch(undefined, nextCursor); }, [fetch, userId, nextCursor]); var reload = useCallback(function () { if (userId) fetch('reload'); }, [fetch, userId]); return { loading: loading, hasMore: hasMore, moments: moments, error: error, reload: reload, loadMore: loadMore, }; }; export { useMomentList }; //# sourceMappingURL=useMomentList.js.map