-
Notifications
You must be signed in to change notification settings - Fork 67
/
selectors.js
45 lines (35 loc) · 1.15 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
43
44
45
/** @format */
/**
* External dependencies.
*/
import { isNil } from 'lodash';
/**
* Internal dependencies.
*/
import { DEFAULT_REQUIREMENT } from '../../constants';
const getTransactions = ( getResource, requireResource ) => (
requirement = DEFAULT_REQUIREMENT
) => {
const resourceName = 'transactions-list';
return requireResource( requirement, resourceName ).data || {};
}
const transactionsInitStatus = ( getResource ) => () => {
const resourceName = 'transactions-list';
const transactionsResource = getResource( resourceName );
return ! ( isNil( transactionsResource.lastRequested ) || isNil( transactionsResource.lastReceived ) );
}
const getTransactionsIsLoading = ( getResource ) => () => {
const resourceName = 'transactions-list';
const transactionsResource = getResource( resourceName );
return transactionsResource.lastRequested > transactionsResource.lastReceived;
}
const showTransactionsPlaceholder = ( getResource ) => () => {
const isInitialized = transactionsInitStatus( getResource )();
return ! isInitialized;
}
export default {
getTransactions,
getTransactionsIsLoading,
transactionsInitStatus,
showTransactionsPlaceholder,
};