Merge pull request #200 from lbryio/paginateTransactionsRedux
transaction pagination selectors
This commit is contained in:
commit
85b333f25d
4 changed files with 63 additions and 0 deletions
27
dist/bundle.es.js
vendored
27
dist/bundle.es.js
vendored
|
@ -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;
|
||||
|
|
2
src/constants/transaction_list.js
Normal file
2
src/constants/transaction_list.js
Normal file
|
@ -0,0 +1,2 @@
|
|||
// PAGE SIZE
|
||||
export const PAGE_SIZE = 50;
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
);
|
||||
|
|
Loading…
Add table
Reference in a new issue