diff --git a/src/actions/RouterActions.js b/src/actions/RouterActions.js index e1101652..c5cd20c1 100644 --- a/src/actions/RouterActions.js +++ b/src/actions/RouterActions.js @@ -258,12 +258,12 @@ export const selectDevice = (device: TrezorDevice | Device): ThunkAction => (dis /* * Redirect to first device or landing page */ -export const selectFirstAvailableDevice = (): ThunkAction => (dispatch: Dispatch, getState: GetState): void => { +export const selectFirstAvailableDevice = (gotoRoot: boolean = false): ThunkAction => (dispatch: Dispatch, getState: GetState): void => { const url = dispatch(getFirstAvailableDeviceUrl()); if (url) { const currentParams = getState().router.location.state; const requestedParams = dispatch(pathToParams(url)); - if (currentParams.device !== requestedParams.device || currentParams.deviceInstance !== requestedParams.deviceInstance) { + if (gotoRoot || currentParams.device !== requestedParams.device || currentParams.deviceInstance !== requestedParams.deviceInstance) { dispatch(goto(url)); } } else { diff --git a/src/services/WalletService.js b/src/services/WalletService.js index 0e2b87d2..dac93767 100644 --- a/src/services/WalletService.js +++ b/src/services/WalletService.js @@ -11,6 +11,7 @@ import * as TrezorConnectActions from 'actions/TrezorConnectActions'; import * as SelectedAccountActions from 'actions/SelectedAccountActions'; import * as SendFormActionActions from 'actions/SendFormActions'; import * as DiscoveryActions from 'actions/DiscoveryActions'; +import * as RouterActions from 'actions/RouterActions'; import type { Middleware, @@ -109,6 +110,7 @@ const WalletService: Middleware = (api: MiddlewareAPI) => (next: MiddlewareDispa api.dispatch(DiscoveryActions.restore()); break; case CONNECT.RECEIVE_WALLET_TYPE: + api.dispatch(RouterActions.selectFirstAvailableDevice(true)); api.dispatch(TrezorConnectActions.authorizeDevice()); break; default: break;