mirror of
https://github.com/trezor/trezor-wallet
synced 2024-11-24 01:08:27 +00:00
removed SessionStorageService
This commit is contained in:
parent
09fe94c71d
commit
042540ec95
@ -1,158 +0,0 @@
|
||||
/* @flow */
|
||||
'use strict';
|
||||
|
||||
import * as LocalStorageActions from '../actions/LocalStorageActions';
|
||||
import * as SendFormActions from '../actions/SendFormActions';
|
||||
|
||||
import { DEVICE } from 'trezor-connect';
|
||||
import * as CONNECT from '../actions/constants/TrezorConnect';
|
||||
import * as MODAL from '../actions/constants/modal';
|
||||
import * as TOKEN from '../actions/constants/token';
|
||||
import * as ACCOUNT from '../actions/constants/account';
|
||||
import * as DISCOVERY from '../actions/constants/discovery';
|
||||
import * as SEND from '../actions/constants/send';
|
||||
import * as WEB3 from '../actions/constants/web3';
|
||||
import * as PENDING from '../actions/constants/pendingTx';
|
||||
import { LOCATION_CHANGE } from 'react-router-redux';
|
||||
import { findAccountTokens } from '../reducers/TokensReducer';
|
||||
|
||||
import type {
|
||||
Middleware,
|
||||
MiddlewareAPI,
|
||||
MiddlewareDispatch,
|
||||
State,
|
||||
Dispatch,
|
||||
Action,
|
||||
AsyncAction,
|
||||
GetState
|
||||
} from '~/flowtype';
|
||||
|
||||
import type { TrezorDevice } from '~/flowtype';
|
||||
import type { Account } from '../reducers/AccountsReducer';
|
||||
import type { Token } from '../reducers/TokensReducer';
|
||||
import type { PendingTx } from '../reducers/PendingTxReducer';
|
||||
import type { Discovery } from '../reducers/DiscoveryReducer';
|
||||
|
||||
|
||||
const save = (dispatch: Dispatch, getState: GetState): void => {
|
||||
|
||||
if (typeof window.sessionStorage === 'undefined') return;
|
||||
|
||||
const accountState = getState().selectedAccount;
|
||||
const sendState = getState().sendForm;
|
||||
if (accountState && !sendState.untouched) {
|
||||
const value = {
|
||||
address: sendState.address,
|
||||
amount: sendState.amount,
|
||||
setMax: sendState.setMax,
|
||||
selectedCurrency: sendState.selectedCurrency,
|
||||
selectedFeeLevel: sendState.selectedFeeLevel,
|
||||
advanced: sendState.advanced,
|
||||
gasLimit: sendState.gasLimit,
|
||||
gasPrice: sendState.gasPrice,
|
||||
data: sendState.data,
|
||||
nonce: sendState.nonce,
|
||||
touched: sendState.touched
|
||||
}
|
||||
|
||||
try {
|
||||
window.sessionStorage.setItem(`SEND:${accountState.location}`, JSON.stringify(value) );
|
||||
} catch (error) {
|
||||
console.error("Saving sessionStorage error: " + error)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const load = (dispatch: Dispatch, getState: GetState): void => {
|
||||
|
||||
if (typeof window.localStorage === 'undefined') return;
|
||||
|
||||
const accountState = getState().selectedAccount;
|
||||
const sendState = getState().sendForm;
|
||||
|
||||
if (accountState) {
|
||||
try {
|
||||
const key: string = `SEND:${accountState.location}`;
|
||||
const value: string = window.sessionStorage.getItem(key);
|
||||
const json = JSON.parse(value);
|
||||
|
||||
if (json) {
|
||||
|
||||
// check if this token still exists in user tokens list
|
||||
if (json.selectedCurrency !== sendState.coinSymbol) {
|
||||
const token = getState().tokens.find(t => t.symbol === json.selectedCurrency);
|
||||
if (!token) {
|
||||
window.sessionStorage.removeItem(key);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
dispatch({
|
||||
type: SEND.FROM_SESSION_STORAGE,
|
||||
address: json.address,
|
||||
amount: json.amount,
|
||||
setMax: false,
|
||||
selectedCurrency: json.selectedCurrency,
|
||||
selectedFeeLevel: json.selectedFeeLevel,
|
||||
advanced: json.advanced,
|
||||
gasLimit: json.gasLimit,
|
||||
gasPrice: json.gasPrice,
|
||||
data: json.data,
|
||||
nonce: json.nonce,
|
||||
touched: json.touched,
|
||||
});
|
||||
|
||||
if (json.setMax) {
|
||||
dispatch(SendFormActions.onSetMax());
|
||||
} else {
|
||||
// dispatch(SendFormActions.validation());
|
||||
dispatch(SendFormActions.onAmountChange(json.amount));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Loading sessionStorage error: " + error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const clear = (getState: GetState) => {
|
||||
if (typeof window.localStorage === 'undefined') return;
|
||||
|
||||
const accountState = getState().selectedAccount;
|
||||
if (accountState) {
|
||||
const key: string = `SEND:${accountState.location}`;
|
||||
window.sessionStorage.removeItem(key);
|
||||
}
|
||||
}
|
||||
|
||||
const LocalStorageService: Middleware = (api: MiddlewareAPI) => (next: MiddlewareDispatch) => (action: Action): Action => {
|
||||
|
||||
if (action.type === ACCOUNT.DISPOSE) {
|
||||
// if (action.type === SEND.DISPOSE) {
|
||||
// save fields before dispose action
|
||||
save(api.dispatch, api.getState);
|
||||
}
|
||||
|
||||
next(action);
|
||||
|
||||
|
||||
switch (action.type) {
|
||||
|
||||
// load fields after action
|
||||
case SEND.INIT :
|
||||
load(api.dispatch, api.getState);
|
||||
break;
|
||||
|
||||
case SEND.TX_COMPLETE :
|
||||
clear(api.getState);
|
||||
break;
|
||||
}
|
||||
|
||||
return action;
|
||||
};
|
||||
|
||||
export default LocalStorageService;
|
@ -5,7 +5,6 @@ import WalletService from './WalletService';
|
||||
import LogService from './LogService';
|
||||
import RouterService from './RouterService';
|
||||
import LocalStorageService from './LocalStorageService';
|
||||
import SessionStorageService from './SessionStorageService';
|
||||
import CoinmarketcapService from './CoinmarketcapService';
|
||||
import TrezorConnectService from './TrezorConnectService';
|
||||
|
||||
@ -14,7 +13,6 @@ export default [
|
||||
LogService,
|
||||
RouterService,
|
||||
LocalStorageService,
|
||||
SessionStorageService,
|
||||
TrezorConnectService,
|
||||
CoinmarketcapService,
|
||||
];
|
Loading…
Reference in New Issue
Block a user