diff --git a/src/actions/PendingTxActions.js b/src/actions/PendingTxActions.js index a6377171..fd9e3763 100644 --- a/src/actions/PendingTxActions.js +++ b/src/actions/PendingTxActions.js @@ -3,12 +3,8 @@ import * as PENDING from 'actions/constants/pendingTx'; -import type { - Action, ThunkAction, GetState, Dispatch, -} from 'flowtype'; import type { State, PendingTx } from 'reducers/PendingTxReducer'; - export type PendingTxAction = { type: typeof PENDING.FROM_STORAGE, payload: State @@ -25,29 +21,4 @@ export type PendingTxAction = { } | { type: typeof PENDING.TX_TOKEN_ERROR, tx: PendingTx, -} - -export const reject = (tx: PendingTx): ThunkAction => (dispatch: Dispatch, getState: GetState): void => { - /* - dispatch({ - type: NOTIFICATION.ADD, - payload: { - type: 'warning', - title: 'Pending transaction rejected', - message: `Transaction with id: ${tx.id} not found.`, - cancelable: true, - actions: [ - { - label: 'OK', - callback: () => { - dispatch({ - type: PENDING.TX_RESOLVED, - tx, - }); - }, - }, - ], - }, - }); - */ -}; \ No newline at end of file +} \ No newline at end of file diff --git a/src/reducers/PendingTxReducer.js b/src/reducers/PendingTxReducer.js index f89243ea..7493c4c9 100644 --- a/src/reducers/PendingTxReducer.js +++ b/src/reducers/PendingTxReducer.js @@ -1,20 +1,22 @@ /* @flow */ +import * as CONNECT from 'actions/constants/TrezorConnect'; import * as PENDING from 'actions/constants/pendingTx'; import * as SEND from 'actions/constants/send'; -import type { Action } from 'flowtype'; +import type { TrezorDevice, Action } from 'flowtype'; import type { SendTxAction } from 'actions/SendFormActions'; export type PendingTx = { - +type: 'send' | 'recv'; + +type: 'send' | 'receive'; +id: string; +network: string; + +address: string; + +deviceState: string; +currency: string; +amount: string; +total: string; +tx: any; +nonce: number; - +address: string; rejected: boolean; } @@ -28,12 +30,14 @@ const add = (state: State, action: SendTxAction): State => { type: 'send', id: action.txid, network: action.account.network, + address: action.account.address, + deviceState: action.account.deviceState, + currency: action.selectedCurrency, amount: action.amount, total: action.total, tx: action.tx, nonce: action.nonce, - address: action.account.address, rejected: false, }); return newState; @@ -47,6 +51,8 @@ const addFromBloockbokNotifiaction = (state: State, payload: any): State => { }; */ +const clear = (state: State, device: TrezorDevice): State => state.filter(tx => tx.deviceState !== device.state); + const remove = (state: State, id: string): State => state.filter(tx => tx.id !== id); const reject = (state: State, id: string): State => state.map((tx) => { @@ -61,6 +67,12 @@ export default function pending(state: State = initialState, action: Action): St case SEND.TX_COMPLETE: return add(state, action); + case CONNECT.FORGET: + case CONNECT.FORGET_SINGLE: + case CONNECT.FORGET_SILENT: + case CONNECT.RECEIVE_WALLET_TYPE: + return clear(state, action.device); + // case PENDING.ADD: // return add(state, action.payload); case PENDING.TX_RESOLVED: