diff options
author | Esteban MIno <efmino@uc.cl> | 2018-08-29 02:20:30 +0800 |
---|---|---|
committer | Esteban MIno <efmino@uc.cl> | 2018-08-29 02:20:30 +0800 |
commit | e743f44150d4c09908d24945de5a281e15e8469d (patch) | |
tree | 76984504e65b06ae15633d721fedc7ddd5b0cca7 /ui/app/selectors/transactions.js | |
parent | 3106374cc31b66e5a0faadd657b4430e21aa48b2 (diff) | |
parent | 0259eb02140fec1db9861506a6ff7890911af652 (diff) | |
download | tangerine-wallet-browser-e743f44150d4c09908d24945de5a281e15e8469d.tar.gz tangerine-wallet-browser-e743f44150d4c09908d24945de5a281e15e8469d.tar.zst tangerine-wallet-browser-e743f44150d4c09908d24945de5a281e15e8469d.zip |
fix conflicts
Diffstat (limited to 'ui/app/selectors/transactions.js')
-rw-r--r-- | ui/app/selectors/transactions.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/ui/app/selectors/transactions.js b/ui/app/selectors/transactions.js new file mode 100644 index 000000000..3e9843722 --- /dev/null +++ b/ui/app/selectors/transactions.js @@ -0,0 +1,58 @@ +import { createSelector } from 'reselect' +import { valuesFor } from '../util' +import { + UNAPPROVED_STATUS, + APPROVED_STATUS, + SUBMITTED_STATUS, +} from '../constants/transactions' + +import { selectedTokenAddressSelector } from './tokens' + +export const shapeShiftTxListSelector = state => state.metamask.shapeShiftTxList +export const unapprovedMsgsSelector = state => state.metamask.unapprovedMsgs +export const selectedAddressTxListSelector = state => state.metamask.selectedAddressTxList + +const pendingStatusHash = { + [UNAPPROVED_STATUS]: true, + [APPROVED_STATUS]: true, + [SUBMITTED_STATUS]: true, +} + +export const transactionsSelector = createSelector( + selectedTokenAddressSelector, + unapprovedMsgsSelector, + shapeShiftTxListSelector, + selectedAddressTxListSelector, + (selectedTokenAddress, unapprovedMsgs = {}, shapeShiftTxList = [], transactions = []) => { + const unapprovedMsgsList = valuesFor(unapprovedMsgs) + const txsToRender = transactions.concat(unapprovedMsgsList, shapeShiftTxList) + + return selectedTokenAddress + ? txsToRender + .filter(({ txParams }) => txParams && txParams.to === selectedTokenAddress) + .sort((a, b) => b.time - a.time) + : txsToRender + .sort((a, b) => b.time - a.time) + } +) + +export const pendingTransactionsSelector = createSelector( + transactionsSelector, + (transactions = []) => ( + transactions.filter(transaction => transaction.status in pendingStatusHash) + ) +) + +export const submittedPendingTransactionsSelector = createSelector( + transactionsSelector, + (transactions = []) => ( + transactions.filter(transaction => transaction.status === SUBMITTED_STATUS) + ) +) + +export const completedTransactionsSelector = createSelector( + transactionsSelector, + (transactions = []) => ( + transactions.filter(transaction => !(transaction.status in pendingStatusHash)) + ) +) |