diff --git a/common/components/PrimaryButton/PrimaryButton.scss b/common/components/PrimaryButton/PrimaryButton.scss
index 8fbdc276..ebcbbd8d 100644
--- a/common/components/PrimaryButton/PrimaryButton.scss
+++ b/common/components/PrimaryButton/PrimaryButton.scss
@@ -1,6 +1,10 @@
@import 'common/sass/variables';
@import 'common/sass/mixins';
+a.PrimaryButton {
+ color: white;
+}
+
.PrimaryButton {
@include reset-button;
display: block;
diff --git a/common/components/PrimaryButton/index.tsx b/common/components/PrimaryButton/index.tsx
index b335e7f7..a25327ae 100644
--- a/common/components/PrimaryButton/index.tsx
+++ b/common/components/PrimaryButton/index.tsx
@@ -1,34 +1,61 @@
import React from 'react';
-import { Spinner } from 'components/ui';
+import { Spinner, NewTabLink } from 'components/ui';
+import { Link } from 'react-router-dom';
import './PrimaryButton.scss';
-interface Props {
+interface DefaultProps {
className?: string;
disabled?: boolean;
text?: string;
+}
+
+interface InternalLinkProps extends DefaultProps {
+ to: string;
+}
+
+interface ExternalLinkProps extends DefaultProps {
+ href: string;
+}
+
+interface ButtonProps extends DefaultProps {
loading?: boolean;
loadingTxt?: string;
onClick(): void;
}
-export default class PrimaryButton extends React.Component {
- public render() {
- const { text, disabled, className, loading, loadingTxt, onClick } = this.props;
- return (
-
- );
- }
-}
+type Props = ButtonProps | InternalLinkProps | ExternalLinkProps;
+
+const PrimaryButton = (props: Props): JSX.Element => {
+ const { text, disabled, className } = props;
+ const { loading, loadingTxt, onClick } = props as ButtonProps;
+ const { to } = props as InternalLinkProps;
+ const { href } = props as ExternalLinkProps;
+ return !onClick ? (
+ to ? (
+
+ {text}
+
+ ) : (
+
+ {text}
+
+ )
+ ) : (
+
+ );
+};
+
+export default PrimaryButton;
diff --git a/common/components/WalletDecrypt/WalletDecrypt.scss b/common/components/WalletDecrypt/WalletDecrypt.scss
index 47a0be7e..4808b5ac 100644
--- a/common/components/WalletDecrypt/WalletDecrypt.scss
+++ b/common/components/WalletDecrypt/WalletDecrypt.scss
@@ -61,14 +61,16 @@ $speed: 500ms;
display: flex;
justify-content: center;
flex-wrap: wrap;
+ margin: auto;
margin-bottom: 1rem;
+ max-width: 895px;
@media screen and (max-width: $screen-xs) {
margin: 0;
}
&:last-child {
- margin: 0;
+ margin: auto;
}
}
@@ -127,9 +129,10 @@ $speed: 500ms;
&-override {
position: absolute;
- bottom: 0;
- right: 0;
- opacity: 0.3;
+ bottom: -15%;
+ right: 50%;
+ transform: translateX(50%);
+ opacity: 0.8;
&:hover {
opacity: 1;
diff --git a/common/components/WalletDecrypt/components/InsecureWalletWarning.scss b/common/components/WalletDecrypt/components/InsecureWalletWarning.scss
index 901dab58..d86f6f4c 100644
--- a/common/components/WalletDecrypt/components/InsecureWalletWarning.scss
+++ b/common/components/WalletDecrypt/components/InsecureWalletWarning.scss
@@ -1,6 +1,18 @@
@import 'common/sass/variables';
@import 'common/sass/mixins';
+$speed: 500ms;
+@keyframes enter {
+ 0% {
+ opacity: 0;
+ transform: translateY(8px);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateY(0px);
+ }
+}
+
.WalletWarning {
max-width: 820px;
margin: 0 auto;
@@ -8,41 +20,34 @@
&-title {
color: color(brand-danger);
- margin: 0 0 $space;
+ text-align: center;
+ font-size: 24px;
+ line-height: 1;
+ margin: 0;
+ font-weight: normal;
+ animation: enter $speed ease 1;
}
&-desc {
- margin-bottom: $space * 2;
+ text-align: center;
+ font-size: 16px;
+ max-width: 61ch;
+ line-height: 1.6;
+ margin: auto;
+ margin-top: 1.5rem;
+ margin-bottom: 3rem;
+ font-weight: 400;
+ animation: enter $speed ease 1;
}
- &-buttons {
- display: flex;
- flex-direction: column;
- flex-wrap: wrap;
- justify-content: center;
- max-width: 440px;
- margin: 0 auto #{-$space};
-
- &-btn {
- width: 100%;
- margin: 0 0 $space;
-
- &.is-cancel {
- @include reset-button;
- opacity: 0.4;
- transition: $transition;
-
- &:hover {
- opacity: 1;
- }
-
- .fa {
- position: relative;
- top: -1px;
- margin-right: $space-xs;
- font-size: 11px;
- }
- }
+ &-btn {
+ margin: auto !important;
+ width: 100%;
+ max-width: 308px;
+ &-wrapper {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
}
}
}
diff --git a/common/components/WalletDecrypt/components/InsecureWalletWarning.tsx b/common/components/WalletDecrypt/components/InsecureWalletWarning.tsx
index f24abef6..0a40074e 100644
--- a/common/components/WalletDecrypt/components/InsecureWalletWarning.tsx
+++ b/common/components/WalletDecrypt/components/InsecureWalletWarning.tsx
@@ -1,6 +1,6 @@
import React from 'react';
-import translate from 'translations';
-import { NewTabLink } from 'components/ui';
+import translate, { translateRaw } from 'translations';
+import { PrimaryButton, SecondaryButton } from 'components';
import './InsecureWalletWarning.scss';
interface Props {
@@ -25,17 +25,18 @@ export class InsecureWalletWarning extends React.Component {
{translate('INSECURE_WALLET_TYPE_DESC', { $wallet_type: walletType })}
-
-
+
+
+
- {translate('WALLET_SUGGESTION_DESKTOP_APP')}
-
-
+ className="WalletWarning-btn"
+ />
);
diff --git a/common/components/WalletDecrypt/components/LedgerNano.scss b/common/components/WalletDecrypt/components/LedgerNano.scss
index a38f2f1b..0277741b 100644
--- a/common/components/WalletDecrypt/components/LedgerNano.scss
+++ b/common/components/WalletDecrypt/components/LedgerNano.scss
@@ -18,94 +18,96 @@ $speed: 500ms;
&-header {
margin-bottom: 3rem;
}
- &-decrypt {
- position: relative;
+ &-buy {
+ text-align: center;
+ font-size: 16px;
+ line-height: 1;
+ margin: 0;
+ margin-top: 0.5rem;
+ font-weight: 400;
+ animation: decrypt-enter 500ms ease 1;
+ margin-bottom: 3rem;
+ }
- &-title {
- text-align: center;
- font-size: 24px;
- line-height: 1;
- margin: 0;
- font-weight: normal;
- animation: enter $speed ease 1;
- }
- &-desc {
- text-align: center;
- font-size: 16px;
- line-height: 1;
- margin: 0;
- margin-top: 0.5rem;
- font-weight: 400;
- animation: enter $speed ease 1;
- }
- &-tip {
- font-size: $font-size-xs-bump;
- opacity: 0.7;
- margin-bottom: $space;
- }
+ &-title {
+ text-align: center;
+ font-size: 24px;
+ line-height: 1;
+ margin: 0;
+ font-weight: normal;
+ animation: enter $speed ease 1;
+ }
+ &-desc {
+ text-align: center;
+ font-size: 16px;
+ line-height: 1;
+ margin: 0;
+ margin-top: 0.5rem;
+ font-weight: 400;
+ animation: enter $speed ease 1;
+ }
+ &-tip {
+ font-size: $font-size-xs-bump;
+ opacity: 0.7;
+ margin-bottom: $space;
+ }
- &-help {
- margin-top: 10px;
- font-size: 13px;
+ &-help {
+ margin-top: 10px;
+ font-size: 13px;
+ }
+
+ &-error {
+ opacity: 0;
+ transition: none;
+ border-radius: 3px;
+ margin-bottom: 2.5rem;
+
+ &.is-showing {
+ opacity: 1;
}
+ }
- &-error {
- opacity: 0;
- transition: none;
- border-radius: 3px;
- margin-bottom: 2.5rem;
+ &-message {
+ display: flex;
+ justify-content: center;
+ align-items: center;
- &.is-showing {
- opacity: 1;
- }
+ .Spinner {
+ margin-right: 16px;
}
+ }
- &-buy {
- margin: 10px 0;
- }
+ &-illustration {
+ margin-bottom: 2rem;
+ width: 160px;
+ }
- &-message {
+ &-tip {
+ &-wrapper {
display: flex;
- justify-content: center;
- align-items: center;
-
- .Spinner {
- margin-right: 16px;
- }
- }
-
- &-illustration {
- margin-bottom: 2rem;
- width: 128px;
- }
-
- &-tip {
- &-wrapper {
- display: flex;
- flex-direction: row;
- flex-wrap: nowrap;
- margin: auto;
- margin-bottom: 3rem;
- max-width: 360px;
- > p {
- font-size: 1rem;
- font-weight: 400;
- color: #a8adb3;
- text-align: left;
- &:first-child {
- color: #333;
- margin-right: 0.5rem;
- }
+ flex-direction: row;
+ flex-wrap: nowrap;
+ margin: auto;
+ margin-bottom: 3rem;
+ max-width: 360px;
+ > p {
+ font-size: 1rem;
+ font-weight: 400;
+ color: #a8adb3;
+ text-align: left;
+ &:first-child {
+ color: #333;
+ margin-right: 0.5rem;
}
}
}
-
- &-btn {
- &-wrapper {
- display: flex;
- flex-direction: row;
- flex-wrap: nowrap;
- }
+ }
+ &-btn {
+ &-wrapper {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
}
}
}
diff --git a/common/components/WalletDecrypt/components/LedgerNano.tsx b/common/components/WalletDecrypt/components/LedgerNano.tsx
index 50f4679d..c281938b 100644
--- a/common/components/WalletDecrypt/components/LedgerNano.tsx
+++ b/common/components/WalletDecrypt/components/LedgerNano.tsx
@@ -1,7 +1,6 @@
import React, { PureComponent } from 'react';
import { connect } from 'react-redux';
-
-import { SecureWalletName } from 'config';
+import { SecureWalletName, ledgerReferralURL } from 'config';
import translate, { translateRaw } from 'translations';
import { LedgerWallet } from 'libs/wallet';
import { NetworkConfig } from 'types/network';
@@ -71,14 +70,15 @@ class LedgerNanoSDecryptClass extends PureComponent {
return (
-
-
- {translate('UNLOCK_DEVICE', { $device: translateRaw('X_LEDGER') })}
-
-
- {translate('UNLOCK_DEVICE_NEXT_STEP', { $network: this.props.network.name })}{' '}
-
-
+
+ {translate('UNLOCK_DEVICE', { $device: translateRaw('X_LEDGER') })}
+
+
+ Don't have a one?{' '}
+
+ Order now!
+
+
{error && (
{error}
)}
diff --git a/common/components/WalletDecrypt/components/ParitySigner.scss b/common/components/WalletDecrypt/components/ParitySigner.scss
index 4d757b8b..d2176fe5 100644
--- a/common/components/WalletDecrypt/components/ParitySigner.scss
+++ b/common/components/WalletDecrypt/components/ParitySigner.scss
@@ -78,7 +78,7 @@ $speed: 500ms;
&-illustration {
margin-bottom: 2rem;
- width: 128px;
+ width: 160px;
}
&-tip {
@@ -103,7 +103,7 @@ $speed: 500ms;
}
&-btn {
- margin: auto;
+ margin: auto !important;
width: 100%;
max-width: 308px;
&-wrapper {
diff --git a/common/components/WalletDecrypt/components/SafeT.scss b/common/components/WalletDecrypt/components/SafeT.scss
index c4e33083..6115e00f 100644
--- a/common/components/WalletDecrypt/components/SafeT.scss
+++ b/common/components/WalletDecrypt/components/SafeT.scss
@@ -1,6 +1,39 @@
+$speed: 500ms;
+@keyframes enter {
+ 0% {
+ opacity: 0;
+ transform: translateY(8px);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateY(0px);
+ }
+}
+
.SafeTminiDecrypt {
text-align: center;
+ &-header {
+ margin-bottom: 3rem;
+ }
+ &-title {
+ text-align: center;
+ font-size: 24px;
+ line-height: 1;
+ margin: 0;
+ font-weight: normal;
+ animation: enter $speed ease 1;
+ }
+ &-desc {
+ text-align: center;
+ font-size: 16px;
+ line-height: 1;
+ margin: 0;
+ margin-top: 0.5rem;
+ font-weight: 400;
+ animation: enter $speed ease 1;
+ }
+
&-help {
margin-top: 10px;
font-size: 13px;
@@ -9,6 +42,8 @@
&-error {
opacity: 0;
transition: none;
+ border-radius: 3px;
+ margin-bottom: 2.5rem;
&.is-showing {
opacity: 1;
@@ -16,7 +51,14 @@
}
&-buy {
- margin: 10px 0;
+ text-align: center;
+ font-size: 16px;
+ line-height: 1;
+ margin: 0;
+ margin-top: 0.5rem;
+ font-weight: 400;
+ animation: decrypt-enter 500ms ease 1;
+ margin-bottom: 3rem;
}
&-message {
@@ -28,4 +70,39 @@
margin-right: 16px;
}
}
+
+ &-illustration {
+ margin-bottom: 2rem;
+ width: 160px;
+ padding: 20px;
+ }
+
+ &-tip {
+ &-wrapper {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ margin: auto;
+ margin-bottom: 3rem;
+ max-width: 360px;
+ > p {
+ font-size: 1rem;
+ font-weight: 400;
+ color: #a8adb3;
+ text-align: left;
+ &:first-child {
+ color: #333;
+ margin-right: 0.5rem;
+ }
+ }
+ }
+ }
+
+ &-btn {
+ &-wrapper {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ }
+ }
}
diff --git a/common/components/WalletDecrypt/components/SafeT.tsx b/common/components/WalletDecrypt/components/SafeT.tsx
index a1c59ae1..1b3a7193 100644
--- a/common/components/WalletDecrypt/components/SafeT.tsx
+++ b/common/components/WalletDecrypt/components/SafeT.tsx
@@ -1,14 +1,14 @@
import React, { PureComponent } from 'react';
import { connect } from 'react-redux';
-
+import { PrimaryButton, SecondaryButton } from 'components';
import { SecureWalletName, safeTReferralURL } from 'config';
import translate, { translateRaw } from 'translations';
import { SafeTWallet } from 'libs/wallet';
import { AppState } from 'features/reducers';
import { getSingleDPath, getPaths } from 'features/config';
-import { Spinner, NewTabLink } from 'components/ui';
import UnsupportedNetwork from './UnsupportedNetwork';
import DeterministicWalletsModal from './DeterministicWalletsModal';
+import img from 'assets/images/wallets/safe-t.svg';
import './SafeT.scss';
//todo: conflicts with comment in walletDecrypt -> onUnlock method
@@ -48,6 +48,7 @@ class SafeTminiDecryptClass extends PureComponent
{
}
public render() {
+ const { props } = this;
const { dPath, publicKey, chainCode, error, isLoading } = this.state;
const showErr = error ? 'is-showing' : '';
@@ -58,26 +59,33 @@ class SafeTminiDecryptClass extends PureComponent {
// todo: update help link
return (
-
+
{translate('ADD_SAFE_T_SCAN')}
+
+ Don't have a one?{' '}
+
+ Order now!
+
+
+ {error && (
+
{error}
+ )}
+
-
- {translate('ORDER_SAFE_T')}
-
-
-
{error || '-'}
+
{
return (
-
-
- {translate('UNLOCK_DEVICE', { $device: translateRaw('X_TREZOR') })}
-
-
- {error && (
-
{error}
- )}
-
-
+
+ {translate('UNLOCK_DEVICE', { $device: translateRaw('X_TREZOR') })}
+
Don't have a one?{' '}
Order now!
+ {error && (
+
{error}
+ )}
+
= props => (
-
-
{translate('ADD_METAMASK')}
-
-
-
+
{translate('ADD_METAMASK')}
{translate('ACTION_13', { $thing: 'MetaMask' })}
+