diff --git a/src/actions/RouterActions.js b/src/actions/RouterActions.js index 18eae118..3cb7dea1 100644 --- a/src/actions/RouterActions.js +++ b/src/actions/RouterActions.js @@ -64,8 +64,8 @@ export const paramsValidation = (params: RouterLocationState): PayloadAction => url = `/device/${device.path}/bootloader`; } else if (device.mode === 'initialize') { url = `/device/${device.features.device_id}/initialize`; + } else if (device.mode === 'seedless') { + url = `/device/${device.features.device_id}/seedless`; } else if (device.firmware === 'required') { url = `/device/${device.features.device_id}/firmware-update`; } else if (typeof device.instance === 'number') { diff --git a/src/support/routes.js b/src/support/routes.js index e1aea88d..90452679 100644 --- a/src/support/routes.js +++ b/src/support/routes.js @@ -47,6 +47,11 @@ export const routes: Array = [ pattern: '/device/:device/initialize', fields: ['device', 'initialize'], }, + { + name: 'wallet-seedless', + pattern: '/device/:device/seedless', + fields: ['device', 'seedless'], + }, { name: 'wallet-firmware-update', pattern: '/device/:device/firmware-update', diff --git a/src/utils/device.js b/src/utils/device.js index 8bf3a368..bd3b29aa 100644 --- a/src/utils/device.js +++ b/src/utils/device.js @@ -21,6 +21,9 @@ export const getStatus = (device: TrezorDevice): string => { if (device.mode === 'initialize') { return 'initialize'; } + if (device.mode === 'seedless') { + return 'seedless'; + } if (device.firmware === 'required') { return 'firmware-required'; } @@ -57,6 +60,8 @@ export const getStatusName = (deviceStatus: string): string => { return 'Connected (bootloader mode)'; case 'initialize': return 'Connected (not initialized)'; + case 'seedless': + return 'Connected (seedless mode)'; case 'firmware-required': return 'Connected (update required)'; case 'firmware-recommended': @@ -81,8 +86,8 @@ export const isDisabled = (selectedDevice: TrezorDevice, devices: Array { return colors.ERROR_PRIMARY; case 'bootloader': case 'initialize': + case 'seedless': case 'firmware-recommended': case 'used-in-other-window': case 'unacquired': diff --git a/src/views/Wallet/views/Seedless/index.js b/src/views/Wallet/views/Seedless/index.js new file mode 100644 index 00000000..799e2e0f --- /dev/null +++ b/src/views/Wallet/views/Seedless/index.js @@ -0,0 +1,37 @@ +import styled from 'styled-components'; +import { H2 } from 'components/Heading'; +import Button from 'components/Button'; +import Paragraph from 'components/Paragraph'; +import React from 'react'; +import { connect } from 'react-redux'; + +const Wrapper = styled.div` + display: flex; + flex: 1; + justify-content: center; + align-items: center; +`; + +const Row = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +`; + +const StyledParagraph = styled(Paragraph)` + margin: 10px 50px; + display: block; + text-align: center; +`; + +const Seedless = () => ( + + +

Device is in seedless mode

+ It's not suitable to use this service. +
+
+); + +export default connect(null, null)(Seedless); diff --git a/src/views/index.js b/src/views/index.js index 28e8bbdc..36d6617f 100644 --- a/src/views/index.js +++ b/src/views/index.js @@ -26,6 +26,7 @@ import WalletSettings from 'views/Wallet/views/WalletSettings'; import WalletBootloader from 'views/Wallet/views/Bootloader'; import WalletFirmwareUpdate from 'views/Wallet/views/FirmwareUpdate'; import WalletInitialize from 'views/Wallet/views/Initialize'; +import WalletSeedless from 'views/Wallet/views/Seedless'; import WalletAcquire from 'views/Wallet/views/Acquire'; import WalletUnreadableDevice from 'views/Wallet/views/UnreadableDevice'; @@ -47,6 +48,7 @@ const App = () => ( +