@uimkit/uikit-react
Version:
<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>
92 lines (87 loc) • 3.83 kB
JavaScript
;
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