mirror of
https://github.com/trezor/trezor-wallet
synced 2024-11-12 11:28:56 +00:00
108 lines
2.2 KiB
JavaScript
108 lines
2.2 KiB
JavaScript
/* @flow */
|
|
|
|
import * as SEND from 'actions/constants/send';
|
|
import * as ACCOUNT from 'actions/constants/account';
|
|
|
|
import type { Action } from 'flowtype';
|
|
|
|
export type FeeLevel = {
|
|
label: string,
|
|
fee: string,
|
|
value: string,
|
|
};
|
|
|
|
export type State = {
|
|
+networkName: string,
|
|
+networkSymbol: string,
|
|
|
|
// form fields
|
|
localCurrency: string,
|
|
advanced: boolean,
|
|
untouched: boolean, // set to true when user made any changes in form
|
|
touched: { [k: string]: boolean },
|
|
address: string,
|
|
amount: string,
|
|
localAmount: string,
|
|
minAmount: string,
|
|
setMax: boolean,
|
|
feeLevels: Array<FeeLevel>,
|
|
selectedFeeLevel: FeeLevel,
|
|
fee: string,
|
|
feeNeedsUpdate: boolean,
|
|
sequence: string,
|
|
destinationTag: string,
|
|
total: string,
|
|
|
|
errors: { [k: string]: string },
|
|
warnings: { [k: string]: string },
|
|
infos: { [k: string]: string },
|
|
|
|
sending: boolean,
|
|
};
|
|
|
|
export const initialState: State = {
|
|
networkName: '',
|
|
networkSymbol: '',
|
|
localCurrency: '',
|
|
|
|
advanced: false,
|
|
untouched: true,
|
|
touched: {},
|
|
address: '',
|
|
amount: '',
|
|
localAmount: '',
|
|
minAmount: '0',
|
|
setMax: false,
|
|
feeLevels: [],
|
|
selectedFeeLevel: {
|
|
value: 'Normal',
|
|
label: '',
|
|
fee: '0',
|
|
},
|
|
fee: '0',
|
|
feeNeedsUpdate: false,
|
|
sequence: '0',
|
|
destinationTag: '',
|
|
total: '0',
|
|
|
|
errors: {},
|
|
warnings: {},
|
|
infos: {},
|
|
|
|
sending: false,
|
|
};
|
|
|
|
export default (state: State = initialState, action: Action): State => {
|
|
if (action.type === ACCOUNT.DISPOSE) return initialState;
|
|
if (!action.networkType || action.networkType !== 'ripple') return state;
|
|
|
|
switch (action.type) {
|
|
case SEND.INIT:
|
|
case SEND.CHANGE:
|
|
case SEND.VALIDATION:
|
|
case SEND.CLEAR:
|
|
return action.state;
|
|
|
|
case SEND.TOGGLE_ADVANCED:
|
|
return {
|
|
...state,
|
|
advanced: !state.advanced,
|
|
};
|
|
|
|
case SEND.TX_SENDING:
|
|
return {
|
|
...state,
|
|
sending: true,
|
|
};
|
|
|
|
case SEND.TX_ERROR:
|
|
return {
|
|
...state,
|
|
sending: false,
|
|
};
|
|
|
|
default:
|
|
return state;
|
|
}
|
|
};
|