Merge pull request #200 from lbryio/paginateTransactionsRedux

transaction pagination selectors
This commit is contained in:
Sean Yesmunt 2019-09-25 17:01:22 -04:00 committed by GitHub
commit 85b333f25d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 63 additions and 0 deletions

27
dist/bundle.es.js vendored
View file

@ -643,6 +643,13 @@ var transaction_types = /*#__PURE__*/Object.freeze({
ABANDON: ABANDON
});
// PAGE SIZE
const PAGE_SIZE$1 = 50;
var transaction_list = /*#__PURE__*/Object.freeze({
PAGE_SIZE: PAGE_SIZE$1
});
const SEARCH_TYPES = {
FILE: 'file',
CHANNEL: 'channel',
@ -1283,6 +1290,8 @@ function doDismissError() {
};
}
//
const selectState$1 = state => state.wallet || {};
const selectWalletState = selectState$1;
@ -1441,6 +1450,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$1);
const end = Number(page) * Number(PAGE_SIZE$1);
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; }
@ -4972,6 +4995,7 @@ exports.SETTINGS = settings;
exports.SORT_OPTIONS = sort_options;
exports.THUMBNAIL_STATUSES = thumbnail_upload_statuses;
exports.TRANSACTIONS = transaction_types;
exports.TX_LIST = transaction_list;
exports.batchActions = batchActions;
exports.blockedReducer = blockedReducer;
exports.buildURI = buildURI;
@ -5064,6 +5088,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 +5157,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

@ -0,0 +1,2 @@
// PAGE SIZE
export const PAGE_SIZE = 50;

View file

@ -6,6 +6,7 @@ import * as SETTINGS from 'constants/settings';
import * as SORT_OPTIONS from 'constants/sort_options';
import * as THUMBNAIL_STATUSES from 'constants/thumbnail_upload_statuses';
import * as TRANSACTIONS from 'constants/transaction_types';
import * as TX_LIST from 'constants/transaction_list';
import { SEARCH_TYPES, SEARCH_OPTIONS } from 'constants/search';
import { DEFAULT_KNOWN_TAGS, DEFAULT_FOLLOWED_TAGS, MATURE_TAGS } from 'constants/tags';
import Lbry from 'lbry';
@ -21,6 +22,7 @@ export {
SEARCH_OPTIONS,
SETTINGS,
TRANSACTIONS,
TX_LIST,
SORT_OPTIONS,
PAGES,
DEFAULT_KNOWN_TAGS,
@ -287,6 +289,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/transaction_list';
export const selectState = state => state.wallet || {};
@ -288,3 +291,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
);