1
0
mirror of https://github.com/trezor/trezor-wallet synced 2024-12-25 00:18:07 +00:00

FORGET_SILENT if disconnected device is not selected and modal is opened

This commit is contained in:
Szymon Lesisz 2018-10-05 17:55:26 +02:00
parent 5c9194e814
commit 25d95a971f
3 changed files with 20 additions and 18 deletions

View File

@ -6,6 +6,7 @@ import * as CONNECT from 'actions/constants/TrezorConnect';
import * as NOTIFICATION from 'actions/constants/notification'; import * as NOTIFICATION from 'actions/constants/notification';
import { getDuplicateInstanceNumber } from 'reducers/utils'; import { getDuplicateInstanceNumber } from 'reducers/utils';
import * as RouterActions from 'actions/RouterActions'; import * as RouterActions from 'actions/RouterActions';
import * as deviceUtils from 'utils/device';
import type { import type {
DeviceMessage, DeviceMessage,
@ -58,7 +59,7 @@ export type TrezorConnectAction = {
type: typeof CONNECT.FORGET, type: typeof CONNECT.FORGET,
device: TrezorDevice device: TrezorDevice
} | { } | {
type: typeof CONNECT.FORGET_SINGLE, type: typeof CONNECT.FORGET_SINGLE | typeof CONNECT.FORGET_SILENT,
device: TrezorDevice device: TrezorDevice
} | { } | {
type: typeof CONNECT.REMEMBER, type: typeof CONNECT.REMEMBER,
@ -222,11 +223,19 @@ export const deviceDisconnect = (device: Device): AsyncAction => async (dispatch
if (device.features) { if (device.features) {
const instances = getState().devices.filter(d => d.features && device.features && d.state && !d.remember && d.features.device_id === device.features.device_id); const instances = getState().devices.filter(d => d.features && device.features && d.state && !d.remember && d.features.device_id === device.features.device_id);
if (instances.length > 0) { if (instances.length > 0) {
const isSelected = deviceUtils.isSelectedDevice(getState().wallet.selectedDevice, instances[0]);
if (!isSelected && getState().modal.opened) {
dispatch({
type: CONNECT.FORGET_SILENT,
device: instances[0],
});
} else {
dispatch({ dispatch({
type: CONNECT.REMEMBER_REQUEST, type: CONNECT.REMEMBER_REQUEST,
device: instances[0], device: instances[0],
instances, instances,
}); });
}
} else { } else {
dispatch(RouterActions.selectFirstAvailableDevice()); dispatch(RouterActions.selectFirstAvailableDevice());
} }
@ -291,12 +300,7 @@ export const forget = (device: TrezorDevice): Action => ({
device, device,
}); });
export const duplicateDevice1 = (device: TrezorDevice): AsyncAction => async (dispatch: Dispatch, getState: GetState): Promise<void> => { export const duplicateDeviceOld = (device: TrezorDevice): AsyncAction => async (dispatch: Dispatch, getState: GetState): Promise<void> => {
// dispatch({
// type: CONNECT.TRY_TO_DUPLICATE,
// device,
// });
const instance: number = getDuplicateInstanceNumber(getState().devices, device); const instance: number = getDuplicateInstanceNumber(getState().devices, device);
const extended: Object = { instance }; const extended: Object = { instance };
dispatch({ dispatch({
@ -305,12 +309,7 @@ export const duplicateDevice1 = (device: TrezorDevice): AsyncAction => async (di
}); });
}; };
export const duplicateDevice = (device: TrezorDevice): AsyncAction => async (dispatch: Dispatch, getState: GetState): Promise<void> => { export const duplicateDevice = (device: TrezorDevice): AsyncAction => async (dispatch: Dispatch): Promise<void> => {
// dispatch({
// type: CONNECT.TRY_TO_DUPLICATE,
// device,
// });
dispatch({ dispatch({
type: CONNECT.REQUEST_WALLET_TYPE, type: CONNECT.REQUEST_WALLET_TYPE,
device, device,

View File

@ -16,6 +16,7 @@ export const REMEMBER_REQUEST: 'connect__remember_request' = 'connect__remember_
export const FORGET_REQUEST: 'connect__forget_request' = 'connect__forget_request'; export const FORGET_REQUEST: 'connect__forget_request' = 'connect__forget_request';
export const FORGET: 'connect__forget' = 'connect__forget'; export const FORGET: 'connect__forget' = 'connect__forget';
export const FORGET_SINGLE: 'connect__forget_single' = 'connect__forget_single'; export const FORGET_SINGLE: 'connect__forget_single' = 'connect__forget_single';
export const FORGET_SILENT: 'connect__forget_silent' = 'connect__forget_silent';
export const DISCONNECT_REQUEST: 'connect__disconnect_request' = 'connect__disconnect_request'; export const DISCONNECT_REQUEST: 'connect__disconnect_request' = 'connect__disconnect_request';
export const REMEMBER: 'connect__remember' = 'connect__remember'; export const REMEMBER: 'connect__remember' = 'connect__remember';

View File

@ -271,6 +271,7 @@ const onChangeWalletType = (state: State, device: TrezorDevice, hidden: boolean)
...d, ...d,
state: null, state: null,
useEmptyPassphrase: !hidden, useEmptyPassphrase: !hidden,
ts: new Date().getTime(),
} : d; } : d;
}); });
return otherDevices.concat(changedDevices); return otherDevices.concat(changedDevices);
@ -296,6 +297,7 @@ export default function devices(state: State = initialState, action: Action): St
case CONNECT.FORGET: case CONNECT.FORGET:
return forgetDevice(state, action.device); return forgetDevice(state, action.device);
case CONNECT.FORGET_SINGLE: case CONNECT.FORGET_SINGLE:
case CONNECT.FORGET_SILENT:
return forgetSingleDevice(state, action.device); return forgetSingleDevice(state, action.device);
case DEVICE.CONNECT: case DEVICE.CONNECT: