UNPKG

@uimkit/uikit-react

Version:

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

77 lines (72 loc) 3.05 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib = require('tslib'); require('../../types/models.js'); require('../../types/events.js'); var actions = require('./actions.js'); var createInitialState = function () { return ({ fetchingRequest: null, accounts: [] }); }; var createAccountListReducer = function () { return function (state, action) { if (state === void 0) { state = createInitialState(); } switch (action.type) { case actions.AccountListActionType.ACCOUNT_FETCHED: { return handleAccountFetched(state, action.payload); } case actions.AccountListActionType.FETCHING_ACCOUNT_LIST: { return handleFetchingAccountList(state, action.payload); } case actions.AccountListActionType.ACCOUNT_LIST_FETCHED: { return handleAccountListFetched(state, action.payload); } case actions.AccountListActionType.ERROR_FETCHING_ACCOUNT_LIST: { return tslib.__assign(tslib.__assign({}, state), { fetchingRequest: null }); } default: return state; } }; }; var handleAccountFetched = function (state, payload) { var accounts = state.accounts; var idx = accounts.findIndex(function (it) { return it.id === payload.id; }); if (idx < 0) { accounts.push(payload); } else { accounts[idx] = tslib.__assign(tslib.__assign({}, accounts[idx]), payload); } accounts.sort(function (a, b) { return b.created_at - a.created_at; }); accounts = tslib.__spreadArray([], accounts, true); return tslib.__assign(tslib.__assign({}, state), { accounts: accounts }); }; var handleFetchingAccountList = function (state, payload) { return tslib.__assign(tslib.__assign({}, state), { fetchingRequest: payload }); }; var handleAccountListFetched = function (state, payload) { var accounts = state.accounts; var request = payload.request, response = payload.response; var offset = request.offset; var data = response.data; var accountIndexes = {}; accounts.forEach(function (it, idx) { return accountIndexes[it.id] = idx; }); // 有offset是查询更多,追加结果;没有offset是重新查询,重置结果 var results = !!offset ? tslib.__spreadArray([], accounts, true) : []; data.forEach(function (it) { var idx = accountIndexes[it.id]; var acct = idx === undefined ? it : tslib.__assign(tslib.__assign({}, accounts[idx]), it); if (!!offset && idx !== undefined) { results[idx] = acct; } else { results.push(acct); } }); // 排序 results.sort(function (a, b) { return b.created_at - a.created_at; }); return tslib.__assign(tslib.__assign({}, state), { fetchingRequest: null, accounts: results }); }; var AccountListReducer = createAccountListReducer(); exports.AccountListReducer = AccountListReducer; exports.createAccountListReducer = createAccountListReducer; //# sourceMappingURL=reducers.js.map