/
selectors.js
42 lines (33 loc) · 1.03 KB
/
selectors.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/** @format */
/**
* External dependencies.
*/
import { isNil } from 'lodash';
/**
* Internal dependencies.
*/
import { DEFAULT_REQUIREMENT } from '../../constants';
const getTransactions = ( getResource, requireResource ) => (
requirement = DEFAULT_REQUIREMENT
) => {
return requireResource( requirement, 'transactions-list' ).data || {};
}
const isWaitingForInitialLoad = ( getResource ) => () => {
const resourceName = 'transactions-list';
const transactionsResource = getResource( resourceName );
return transactionsResource.lastReceived === undefined;
}
const getTransactionsIsLoading = ( getResource ) => () => {
const resourceName = 'transactions-list';
const transactionsResource = getResource( resourceName );
return transactionsResource.lastRequested > transactionsResource.lastReceived;
}
const showTransactionsPlaceholder = ( getResource ) => () => {
return isWaitingForInitialLoad( getResource )();
}
export default {
getTransactions,
getTransactionsIsLoading,
isWaitingForInitialLoad,
showTransactionsPlaceholder,
};