transaction pagination selectors

This commit is contained in:
jessop 2019-09-22 22:25:12 -04:00
parent fe4ae1568e
commit 66462144b2
3 changed files with 53 additions and 0 deletions

19
dist/bundle.es.js vendored
View file

@ -1283,6 +1283,8 @@ function doDismissError() {
};
}
//
const selectState$1 = state => state.wallet || {};
const selectWalletState = selectState$1;
@ -1441,6 +1443,20 @@ const selectCurrentHeight = reselect.createSelector(selectState$1, state => stat
const selectTransactionListFilter = reselect.createSelector(selectState$1, state => state.transactionListFilter || '');
const selectFilteredTransactions = reselect.createSelector(selectTransactionItems, selectTransactionListFilter, (transactions, filter) => {
return transactions.filter(transaction => {
return filter === ALL || filter === transaction.type;
});
});
const makeSelectFilteredTransactionsForPage = (page = 1) => reselect.createSelector(selectFilteredTransactions, filteredTransactions => {
const start = (Number(page) - 1) * Number(PAGE_SIZE);
const end = Number(page) * Number(PAGE_SIZE);
return filteredTransactions && filteredTransactions.length ? filteredTransactions.slice(start, end) : [];
});
const selectFilteredTransactionCount = reselect.createSelector(selectFilteredTransactions, filteredTransactions => filteredTransactions.length);
var _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _objectWithoutProperties$1(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
@ -5064,6 +5080,7 @@ exports.makeSelectFetchingChannelClaims = makeSelectFetchingChannelClaims;
exports.makeSelectFileInfoForUri = makeSelectFileInfoForUri;
exports.makeSelectFileNameForUri = makeSelectFileNameForUri;
exports.makeSelectFilePartlyDownloaded = makeSelectFilePartlyDownloaded;
exports.makeSelectFilteredTransactionsForPage = makeSelectFilteredTransactionsForPage;
exports.makeSelectFirstRecommendedFileForUri = makeSelectFirstRecommendedFileForUri;
exports.makeSelectIsFollowingTag = makeSelectIsFollowingTag;
exports.makeSelectIsUriResolving = makeSelectIsUriResolving;
@ -5132,6 +5149,8 @@ exports.selectFileInfosByOutpoint = selectFileInfosByOutpoint;
exports.selectFileInfosDownloaded = selectFileInfosDownloaded;
exports.selectFileListDownloadedSort = selectFileListDownloadedSort;
exports.selectFileListPublishedSort = selectFileListPublishedSort;
exports.selectFilteredTransactionCount = selectFilteredTransactionCount;
exports.selectFilteredTransactions = selectFilteredTransactions;
exports.selectFollowedTags = selectFollowedTags;
exports.selectGettingNewAddress = selectGettingNewAddress;
exports.selectHasTransactions = selectHasTransactions;

View file

@ -287,6 +287,9 @@ export {
selectWalletUnlockSucceeded,
selectWalletUnlockResult,
selectTransactionListFilter,
selectFilteredTransactions,
makeSelectFilteredTransactionsForPage,
selectFilteredTransactionCount,
} from 'redux/selectors/wallet';
export {

View file

@ -1,5 +1,8 @@
// @flow
import { createSelector } from 'reselect';
import * as TRANSACTIONS from 'constants/transaction_types';
import { PAGE_SIZE } from 'constants/claim';
export const selectState = state => state.wallet || {};
@ -214,6 +217,8 @@ export const selectTransactionItems = createSelector(
}
);
export const selectRecentTransactions = createSelector(
selectTransactionItems,
transactions => {
@ -288,3 +293,29 @@ export const selectTransactionListFilter = createSelector(
selectState,
state => state.transactionListFilter || ''
);
export const selectFilteredTransactions = createSelector(
selectTransactionItems,
selectTransactionListFilter,
(transactions, filter) => {
return transactions.filter(transaction => {
return filter === TRANSACTIONS.ALL || filter === transaction.type;
});
});
export const makeSelectFilteredTransactionsForPage = (page: number = 1): Array<any> =>
createSelector(
selectFilteredTransactions,
filteredTransactions => {
const start = (Number(page) - 1) * Number(PAGE_SIZE);
const end = (Number(page) * Number(PAGE_SIZE));
return (filteredTransactions && filteredTransactions.length)
? filteredTransactions.slice(start, end)
: [];
}
);
export const selectFilteredTransactionCount = createSelector(
selectFilteredTransactions,
filteredTransactions => filteredTransactions.length
);