diff --git a/src/components/Checkbox/index.js b/src/components/Checkbox/index.js new file mode 100644 index 00000000..1f4eef2b --- /dev/null +++ b/src/components/Checkbox/index.js @@ -0,0 +1,94 @@ +import React, { PureComponent } from 'react'; +import PropTypes from 'prop-types'; +import styled from 'styled-components'; +import colors from 'config/colors'; +import Icon from 'components/Icon'; +import icons from 'config/icons'; +import { FONT_SIZE } from 'config/variables'; + +const Wrapper = styled.div` + display: flex; + flex-direction: row; + cursor: pointer; + align-items: center; + + &:hover, + &:focus { + outline: none; + } +`; + +const Tick = styled.div` +`; + +const IconWrapper = styled.div` + display: flex; + border-radius: 2px; + justify-content: center; + align-items: center; + color: ${props => (props.checked ? colors.WHITE : colors.GREEN_PRIMARY)}; + background: ${props => (props.checked ? colors.GREEN_PRIMARY : colors.WHITE)}; + border: 1px solid ${props => (props.checked ? colors.GREEN_PRIMARY : colors.DIVIDER)}; + width: 24px; + height: 24px; + + &:hover, + &:focus { + border: 1px solid ${colors.TEXT_PRIMARY}; + background: ${props => (props.checked ? colors.TEXT_PRIMARY : colors.WHITE)}; + } +`; + +const Label = styled.div` + display: flex; + padding-left: 10px; + justify-content: center; + ${colors.TEXT_SECONDARY}; + font-size: ${FONT_SIZE.SMALL}; + + &:hover, + &:focus { + color: ${props => (props.checked ? colors.TEXT_PRIMARY : colors.TEXT_PRIMARY)}; + } +`; + +class Checkbox extends PureComponent { + handleKeyboard(e) { + if (e.keyCode === 32) { + this.props.onClick(e); + } + } + + render() { + const { + checked, + children, + onClick, + } = this.props; + return ( + this.handleKeyboard(e)} + tabIndex={0} + > + + {checked && ( + + + + ) + } + + + + ); + } +} + +Checkbox.propTypes = { + onClick: PropTypes.func.isRequired, + checked: PropTypes.bool, + children: PropTypes.string, +}; + +export default Checkbox; diff --git a/src/components/Footer/index.js b/src/components/Footer/index.js index d0b66f29..602ba777 100644 --- a/src/components/Footer/index.js +++ b/src/components/Footer/index.js @@ -18,7 +18,7 @@ const Wrapper = styled.div` display: flex; `; -const LinkWrapper = styled(Link)` +const StyledLink = styled(Link)` margin: 0 6px; margin-right: 20px; `; @@ -30,9 +30,9 @@ const Copy = styled.div` const Footer = ({ toggle }) => ( © {getYear(new Date())} - SatoshiLabs - Terms - Show Log + SatoshiLabs + Terms + Show Log ); diff --git a/src/components/Heading/index.js b/src/components/Heading/index.js index 899bcac8..af5ef892 100644 --- a/src/components/Heading/index.js +++ b/src/components/Heading/index.js @@ -4,7 +4,7 @@ import colors from 'config/colors'; const baseStyles = css` -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; - color: ${colors.BLACK}; + color: ${colors.TEXT_PRIMARY}; font-weight: bold; `; diff --git a/src/components/Loader/index.js b/src/components/Loader/index.js index 5a582df3..d4f8f4c4 100644 --- a/src/components/Loader/index.js +++ b/src/components/Loader/index.js @@ -2,6 +2,7 @@ import React from 'react'; import styled, { css } from 'styled-components'; import PropTypes from 'prop-types'; import Paragraph from 'components/Paragraph'; +import { FONT_SIZE } from 'config/variables'; import { DASH, GREEN_COLOR } from 'config/animations'; import colors from 'config/colors'; @@ -36,14 +37,15 @@ const CircleWrapper = styled.circle` `; const StyledParagraph = styled(Paragraph)` + font-size: ${props => (props.isSmallText ? FONT_SIZE.SMALLER : FONT_SIZE.BASE)}; color: ${props => (props.isWhiteText ? colors.WHITE : colors.TEXT_PRIMARY)}; `; const Loader = ({ - className, text, isWhiteText = false, size = 100, + className, text, isWhiteText = false, isSmallText, size = 100, }) => ( - {text} + {text} props.isSmaller && css` font-size: ${FONT_SIZE.SMALLER}; diff --git a/src/components/buttons/PinButton/index.js b/src/components/buttons/PinButton/index.js new file mode 100644 index 00000000..169fee14 --- /dev/null +++ b/src/components/buttons/PinButton/index.js @@ -0,0 +1,52 @@ +import React from 'react'; +import styled from 'styled-components'; +import PropTypes from 'prop-types'; +import colors from 'config/colors'; + +const Wrapper = styled.button` + width: 80px; + height: 80px; + margin-top: 15px; + margin-left: 10px; + font-size: 22px; + font-weight: 600; + color: ${colors.TEXT_PRIMARY}; + border: 1px solid ${colors.DIVIDER}; + background: ${colors.WHITE}; + transition: all 0.3s; + + &:first-child { + margin-left: 0px; + } + + &:hover { + color: ${colors.TEXT_PRIMARY}; + background-color: ${colors.WHITE}; + border-color: ${colors.TEXT_SECONDARY}; + } + + &:active { + color: ${colors.TEXT_PRIMARY}; + background: ${colors.DIVIDER}; + border-color: ${colors.DIVIDER}; + } +`; + +const PinButton = ({ + children, className, onClick, +}) => ( + + {children} + +); + +PinButton.propTypes = { + className: PropTypes.string, + children: PropTypes.string.isRequired, + onClick: PropTypes.func, +}; + +export default PinButton; \ No newline at end of file diff --git a/src/components/Input/index.js b/src/components/inputs/Input/index.js similarity index 95% rename from src/components/Input/index.js rename to src/components/inputs/Input/index.js index e0fad58c..f683cb82 100644 --- a/src/components/Input/index.js +++ b/src/components/inputs/Input/index.js @@ -107,7 +107,7 @@ class Input extends Component { /> )} - {this.props.sideAddon} + {this.props.sideAddons && this.props.sideAddons.map(sideAddon => sideAddon)} {this.props.bottomText && ( ( + + + onDeleteClick()} color={colors.TEXT_PRIMARY} icon={icons.BACK} /> + +); + +Input.propTypes = { + onDeleteClick: PropTypes.func.isRequired, + value: PropTypes.string.isRequired, + onChange: PropTypes.func, +}; + +export default Input; diff --git a/src/components/modals/InvalidPin.js b/src/components/modals/InvalidPin.js deleted file mode 100644 index e1c6a78c..00000000 --- a/src/components/modals/InvalidPin.js +++ /dev/null @@ -1,19 +0,0 @@ -/* @flow */ - - -import React from 'react'; -import type { Props } from './index'; - -const InvalidPin = (props: Props) => { - if (!props.modal.opened) return null; - - const { device } = props.modal; - return ( -
-

Entered PIN for { device.label } is not correct

-

Retrying...

-
- ); -}; - -export default InvalidPin; \ No newline at end of file diff --git a/src/components/modals/PassphraseType.js b/src/components/modals/PassphraseType.js deleted file mode 100644 index a54bd04e..00000000 --- a/src/components/modals/PassphraseType.js +++ /dev/null @@ -1,20 +0,0 @@ -/* @flow */ - - -import React from 'react'; -import type { Props } from './index'; - -const Confirmation = (props: Props) => { - if (!props.modal.opened) return null; - const { device } = props.modal; - - return ( -
-
-

Complete the action on { device.label } device

-
-
- ); -}; - -export default Confirmation; \ No newline at end of file diff --git a/src/components/modals/Pin.js b/src/components/modals/Pin.js deleted file mode 100644 index 355cd770..00000000 --- a/src/components/modals/Pin.js +++ /dev/null @@ -1,145 +0,0 @@ -/* @flow */ - - -import React, { Component } from 'react'; - -import type { Props } from './index'; - -type State = { - pin: string; -} - -export default class Pin extends Component { - keyboardHandler: (event: KeyboardEvent) => void; - - state: State; - - constructor(props: Props) { - super(props); - - this.state = { - pin: '', - }; - } - - onPinAdd = (input: number): void => { - let pin: string = this.state.pin; - if (pin.length < 9) { - pin += input; - this.setState({ - pin, - }); - } - } - - onPinBackspace = (): void => { - this.setState({ - pin: this.state.pin.substring(0, this.state.pin.length - 1), - }); - } - - keyboardHandler(event: KeyboardEvent): void { - const { onPinSubmit } = this.props.modalActions; - const { pin } = this.state; - - event.preventDefault(); - switch (event.keyCode) { - case 13: - // enter, - onPinSubmit(pin); - break; - // backspace - case 8: - this.onPinBackspace(); - break; - - // numeric and numpad - case 49: - case 97: - this.onPinAdd(1); - break; - case 50: - case 98: - this.onPinAdd(2); - break; - case 51: - case 99: - this.onPinAdd(3); - break; - case 52: - case 100: - this.onPinAdd(4); - break; - case 53: - case 101: - this.onPinAdd(5); - break; - case 54: - case 102: - this.onPinAdd(6); - break; - case 55: - case 103: - this.onPinAdd(7); - break; - case 56: - case 104: - this.onPinAdd(8); - break; - case 57: - case 105: - this.onPinAdd(9); - break; - } - } - - - componentWillMount(): void { - this.keyboardHandler = this.keyboardHandler.bind(this); - window.addEventListener('keydown', this.keyboardHandler, false); - } - - componentWillUnmount(): void { - window.removeEventListener('keydown', this.keyboardHandler, false); - } - - render() { - if (!this.props.modal.opened) return null; - - const { onPinSubmit } = this.props.modalActions; - const { device } = this.props.modal; - const { pin } = this.state; - - return ( -
- {/* */} -

Enter { device.label } PIN

-

The PIN layout is displayed on your TREZOR.

- -
- -
- -
- - - -
-
- - - -
-
- - - -
- -
-

Not sure how PIN works? Learn more

-
- ); - } -} \ No newline at end of file diff --git a/src/components/modals/confirm/Address/index.js b/src/components/modals/confirm/Address/index.js index ce626394..0c562333 100644 --- a/src/components/modals/confirm/Address/index.js +++ b/src/components/modals/confirm/Address/index.js @@ -1,14 +1,16 @@ -/* @flow */ -import React, { Component } from 'react'; - -import { findAccount } from 'reducers/AccountsReducer'; +import styled from 'styled-components'; +import H3 from 'components/Heading'; +import colors from 'config/colors'; +import P from 'components/Paragraph'; +import { FONT_SIZE } from 'config/variables'; +import React from 'react'; const Wrapper = styled.div` - width: 370px; - padding: 24px 48px; + width: 390px; `; const Header = styled.div` + padding: 24px 48px; `; const Content = styled.div` @@ -18,11 +20,11 @@ const Content = styled.div` `; const Label = styled.div` - font-size: 10px; + font-size: ${FONT_SIZE.SMALLER}; color: ${colors.TEXT_SECONDARY}; `; -const ConfirmAddress = (props: Props) => { +const ConfirmAddress = (props) => { const { account, network, @@ -30,16 +32,16 @@ const ConfirmAddress = (props: Props) => { if (!account || !network) return null; return ( -
-
-

Confirm address on TREZOR

-

Please compare your address on device with address shown bellow.

-
-
-

{ account.address }

- -
-
+ +
+

Confirm address on TREZOR

+

Please compare your address on device with address shown bellow.

+
+ +

{ account.address }

+ +
+
); }; diff --git a/src/components/modals/confirm/SignTx/index.js b/src/components/modals/confirm/SignTx/index.js index ba550845..351d0345 100644 --- a/src/components/modals/confirm/SignTx/index.js +++ b/src/components/modals/confirm/SignTx/index.js @@ -43,7 +43,7 @@ const ConfirmSignTx = (props) => {

Confirm transaction on { device.label } device

-

Details are shown on display

+

Details are shown on display

diff --git a/src/components/modals/confirm/UnverifiedAddress/index.js b/src/components/modals/confirm/UnverifiedAddress/index.js index 12c8672f..b84a4ce3 100644 --- a/src/components/modals/confirm/UnverifiedAddress/index.js +++ b/src/components/modals/confirm/UnverifiedAddress/index.js @@ -1,6 +1,6 @@ /* @flow */ import React, { Component } from 'react'; -import { H3 } from 'components/Heading'; +import { H2 } from 'components/Heading'; import P from 'components/Paragraph'; import styled from 'styled-components'; import Icon from 'components/Icon'; @@ -102,8 +102,8 @@ class ConfirmUnverifiedAddress extends Component { -

{ deviceStatus }

-

To prevent phishing attacks, you should verify the address on your TREZOR first. { claim } to continue with the verification process.

+

{ deviceStatus }

+ To prevent phishing attacks, you should verify the address on your TREZOR first. { claim } to continue with the verification process. this.verifyAddress()}>Try again this.showUnverifiedAddress()}>Show unverified address diff --git a/src/components/modals/device/Duplicate/index.js b/src/components/modals/device/Duplicate/index.js index 01f12e55..8c8562c7 100644 --- a/src/components/modals/device/Duplicate/index.js +++ b/src/components/modals/device/Duplicate/index.js @@ -4,7 +4,7 @@ import styled from 'styled-components'; import { H3 } from 'components/Heading'; import P from 'components/Paragraph'; import Button from 'components/buttons/Button'; -import Input from 'components/Input'; +import Input from 'components/inputs/Input'; import { getDuplicateInstanceNumber } from 'reducers/utils'; import { FONT_SIZE } from 'config/variables'; import Icon from 'components/Icon'; diff --git a/src/components/modals/device/Remember/index.js b/src/components/modals/device/Remember/index.js index 6d5589ec..efb10db6 100644 --- a/src/components/modals/device/Remember/index.js +++ b/src/components/modals/device/Remember/index.js @@ -130,6 +130,7 @@ export default class RememberDevice extends Component { Forget ( { if (opened) { ch = ( - + { component } diff --git a/src/components/modals/Passphrase.js b/src/components/modals/passphrase/Passphrase/index.js similarity index 76% rename from src/components/modals/Passphrase.js rename to src/components/modals/passphrase/Passphrase/index.js index 007f1e2f..18e7d77e 100644 --- a/src/components/modals/Passphrase.js +++ b/src/components/modals/passphrase/Passphrase/index.js @@ -1,11 +1,47 @@ /* @flow */ - - import React, { Component } from 'react'; import raf from 'raf'; +import colors from 'config/colors'; +import P from 'components/Paragraph'; +import { FONT_SIZE } from 'config/variables'; +import { H2 } from 'components/Heading'; +import Link from 'components/Link'; +import Checkbox from 'components/Checkbox'; +import Button from 'components/buttons/Button'; +import Input from 'components/inputs/Input'; +import styled from 'styled-components'; import type { Props } from './index'; +const Wrapper = styled.div` + padding: 24px 48px; + max-width: 390px; +`; + +const Label = styled.div` + ${colors.TEXT_SECONDARY}; + font-size: ${FONT_SIZE.SMALL}; + padding-bottom: 5px; +`; + +const PassphraseError = styled.div``; + +const Row = styled.div` + position: relative; + text-align: left; + padding-top: 24px; + display: flex; + flex-direction: column; +`; + +const Footer = styled.div` + display: flex; + padding-top: 10px; + align-items: center; + flex-direction: column; + justify-content: center; +`; + type State = { deviceLabel: string; singleInput: boolean; @@ -233,18 +269,16 @@ export default class PinModal extends Component { //let passphraseInputType: string = visible || passphraseFocused ? "text" : "password"; //let passphraseRevisionInputType: string = visible || passphraseRevisionFocused ? "text" : "password"; - const showPassphraseCheckboxFn: Function = visible ? this.onPassphraseHide : this.onPassphraseShow; - + console.log('passphraseInputType', passphraseInputType); return ( -
- {/* */} -

Enter { deviceLabel } passphrase

-

Note that passphrase is case-sensitive.

-
- - { this.passphraseInput = element; }} + + {/* ?

Enter { deviceLabel } passphrase

*/} + {/*

Note that passphrase is case-sensitive.

*/} + + + { this.passphraseInput = element; }} onChange={event => this.onPassphraseChange('passphrase', event.currentTarget.value)} type={passphraseInputType} autoComplete="off" @@ -252,17 +286,16 @@ export default class PinModal extends Component { autoCapitalize="off" spellCheck="false" data-lpignore="true" - onFocus={event => this.onPassphraseFocus('passphrase')} - onBlur={event => this.onPassphraseBlur('passphrase')} - + onFocus={() => this.onPassphraseFocus('passphrase')} + onBlur={() => this.onPassphraseBlur('passphrase')} tabIndex="1" /> -
- { singleInput ? null : ( -
- - { this.passphraseRevisionInput = element; }} + + {!singleInput && ( + + + { this.passphraseRevisionInput = element; }} onChange={event => this.onPassphraseChange('revision', event.currentTarget.value)} type={passphraseRevisionInputType} autoComplete="off" @@ -270,39 +303,26 @@ export default class PinModal extends Component { autoCapitalize="off" spellCheck="false" data-lpignore="true" - onFocus={event => this.onPassphraseFocus('revision')} - onBlur={event => this.onPassphraseBlur('revision')} - + onFocus={() => this.onPassphraseFocus('revision')} + onBlur={() => this.onPassphraseBlur('revision')} tabIndex="2" /> - { !match && passphraseRevisionTouched ? Passphrases do not match : null } -
+ {!match && passphraseRevisionTouched && Passphrases do not match } + ) } - - -
- - {/* */} -
- -
- -
- -
-

If you want to access your default account

-

this.submit(true)}>Leave passphrase blank

-
- -
+ + Show passphrase + + + + + +
); } } \ No newline at end of file diff --git a/src/components/modals/passphrase/Type/index.js b/src/components/modals/passphrase/Type/index.js new file mode 100644 index 00000000..568c1c3d --- /dev/null +++ b/src/components/modals/passphrase/Type/index.js @@ -0,0 +1,29 @@ +import React from 'react'; +import Icon from 'components/Icon'; +import colors from 'config/colors'; +import icons from 'config/icons'; +import styled from 'styled-components'; +import { H3 } from 'components/Heading'; + +const Wrapper = styled.div` + width: 360px; + padding: 24px 48px; +`; + +const Header = styled.div``; + +const Confirmation = (props) => { + if (!props.modal.opened) return null; + const { device } = props.modal; + + return ( + +
+ +

Complete the action on { device.label } device

+
+
+ ); +}; + +export default Confirmation; \ No newline at end of file diff --git a/src/components/modals/pin/Invalid/index.js b/src/components/modals/pin/Invalid/index.js new file mode 100644 index 00000000..281965aa --- /dev/null +++ b/src/components/modals/pin/Invalid/index.js @@ -0,0 +1,24 @@ +import React from 'react'; +import styled from 'styled-components'; +import { H3 } from 'components/Heading'; +import P from 'components/Paragraph'; + +import type { Props } from './index'; + +const Wrapper = styled.div` + padding: 24px 48px; +`; + +const InvalidPin = (props: Props) => { + if (!props.modal.opened) return null; + + const { device } = props.modal; + return ( + +

Entered PIN for { device.label } is not correct

+

Retrying...

+
+ ); +}; + +export default InvalidPin; \ No newline at end of file diff --git a/src/components/modals/pin/Pin/index.js b/src/components/modals/pin/Pin/index.js new file mode 100644 index 00000000..d3c0ae91 --- /dev/null +++ b/src/components/modals/pin/Pin/index.js @@ -0,0 +1,180 @@ +/* @flow */ +import P from 'components/Paragraph'; +import { H2 } from 'components/Heading'; +import React, { Component } from 'react'; +import Link from 'components/Link'; +import colors from 'config/colors'; +import styled from 'styled-components'; +import PinInput from 'components/inputs/PinInput'; +import PinButton from 'components/buttons/PinButton'; +import Button from 'components/buttons/Button'; +import type { Props } from './index'; + +type State = { + pin: string; +} + +const Wrapper = styled.div` + padding: 24px 48px; +`; + +const InputRow = styled.div` + margin-top: 24px; + max-width: 260px; +`; + +const PinRow = styled.div``; + +const StyledP = styled(P)` + padding-top: 5px; +`; + +const StyledLink = styled(Link)` + padding-left: 5px; +`; + +const Footer = styled.div` + margin: 20px 0 10px 0; + display: flex; + flex-direction: column; +`; + +class Pin extends Component { + keyboardHandler: (event: KeyboardEvent) => void; + + state: State; + + constructor(props: Props) { + super(props); + + this.state = { + pin: '', + }; + } + + onPinAdd = (input: number): void => { + let pin: string = this.state.pin; + if (pin.length < 9) { + pin += input; + this.setState({ + pin, + }); + } + } + + onPinBackspace = (): void => { + this.setState({ + pin: this.state.pin.substring(0, this.state.pin.length - 1), + }); + } + + keyboardHandler(event: KeyboardEvent): void { + const { onPinSubmit } = this.props.modalActions; + const { pin } = this.state; + + event.preventDefault(); + switch (event.keyCode) { + case 13: + // enter, + onPinSubmit(pin); + break; + // backspace + case 8: + this.onPinBackspace(); + break; + + // numeric and numpad + case 49: + case 97: + this.onPinAdd(1); + break; + case 50: + case 98: + this.onPinAdd(2); + break; + case 51: + case 99: + this.onPinAdd(3); + break; + case 52: + case 100: + this.onPinAdd(4); + break; + case 53: + case 101: + this.onPinAdd(5); + break; + case 54: + case 102: + this.onPinAdd(6); + break; + case 55: + case 103: + this.onPinAdd(7); + break; + case 56: + case 104: + this.onPinAdd(8); + break; + case 57: + case 105: + this.onPinAdd(9); + break; + } + } + + + componentWillMount(): void { + this.keyboardHandler = this.keyboardHandler.bind(this); + window.addEventListener('keydown', this.keyboardHandler, false); + } + + componentWillUnmount(): void { + window.removeEventListener('keydown', this.keyboardHandler, false); + } + + render() { + if (!this.props.modal.opened) return null; + const { onPinSubmit } = this.props.modalActions; + const { device } = this.props.modal; + const { pin } = this.state; + return ( + +

Enter { device.label } PIN

+

The PIN layout is displayed on your TREZOR.

+ + this.onPinBackspace()} /> + + + this.onPinAdd(7)}>• + this.onPinAdd(8)}>• + this.onPinAdd(9)}>• + + + this.onPinAdd(4)}>• + this.onPinAdd(5)}>• + this.onPinAdd(6)}>• + + + this.onPinAdd(1)}>• + this.onPinAdd(2)}>• + this.onPinAdd(3)}>• + +
+ + Not sure how PIN works? + Learn more + + +
+
+ ); + } +} + +export default Pin; \ No newline at end of file diff --git a/src/config/icons.js b/src/config/icons.js index d8ce1c53..f29704ab 100644 --- a/src/config/icons.js +++ b/src/config/icons.js @@ -2,6 +2,9 @@ export default { CHECKED: [ 'M692.8 313.92l-1.92-1.92c-6.246-7.057-15.326-11.484-25.44-11.484s-19.194 4.427-25.409 11.448l-0.031 0.036-196.48 224-3.84 1.6-3.84-1.92-48.64-57.28c-7.010-7.905-17.193-12.862-28.533-12.862-21.031 0-38.080 17.049-38.080 38.080 0 7.495 2.165 14.485 5.905 20.377l-0.092-0.155 100.8 148.16c5.391 8.036 14.386 13.292 24.618 13.44h8.662c17.251-0.146 32.385-9.075 41.163-22.529l0.117-0.191 195.2-296.32c4.473-6.632 7.141-14.803 7.141-23.597 0-11.162-4.297-21.32-11.326-28.911l0.025 0.028z', ], + BACK: [ + 'M656.224 402.304l-66.848 66.176-66.848-66.176-50.144 49.6 66.912 66.176-66.912 66.176 50.176 49.632 66.848-66.176 66.848 66.176 50.112-49.632-66.816-66.176 66.816-66.176-50.144-49.6zM337.824 256h540.928c27.2 0 49.248 21.824 49.248 48.768v414.464c0 26.944-22.048 48.768-49.248 48.768h-540.608c-13.856 0-27.072-5.792-36.416-15.936l-192.896-209.664c-17.248-18.752-17.088-47.488 0.352-66.048l192.576-204.8c9.344-9.92 22.4-15.552 36.064-15.552z', + ], HELP: [ 'M693.024 330.944c-99.968-99.936-262.080-99.936-362.048 0s-99.968 262.112 0 362.080c99.968 100 262.144 99.936 362.048 0 99.968-99.904 99.968-262.176 0-362.080zM501.216 717.952c-27.808 0-50.496-22.464-50.496-50.048 0-28.32 22.176-50.528 50.496-50.528 27.616 0 50.048 22.656 50.048 50.528 0.032 27.168-22.88 50.048-50.048 50.048zM536.416 542.464v27.744c0 13.504-5.28 18.784-18.784 18.784h-36.224c-13.504 0-18.72-5.28-18.72-18.784v-61.984c0-15.68 16.064-20.352 30.208-24.48 3.456-1.056 7.040-2.080 10.496-3.264 18.336-6.592 29.696-14.816 29.696-35.296 0-6.656 0-26.816-32.832-26.816-20.224 0-38.624 7.776-49.6 12.416-6.208 2.624-9.28 3.904-12.384 3.904-6.336 0-12.32-5.088-13.248-10.304l-12.608-32.96c-1.824-3.776-1.824-6.784-1.824-9.216 0-24.288 75.552-37.664 100.608-37.664 63.104 0 105.504 40.672 105.504 101.152 0.032 65.44-49.12 85.952-80.288 96.768z', ], diff --git a/src/config/variables.js b/src/config/variables.js index 776cb831..9bca6dbd 100644 --- a/src/config/variables.js +++ b/src/config/variables.js @@ -3,6 +3,7 @@ export const FONT_SIZE = { SMALLER: '12px', SMALL: '14px', BASE: '16px', + BIGGER: '32px', BIGGEST: '36px', }; diff --git a/src/styles/index.less b/src/styles/index.less index e472047a..0c4c1b42 100644 --- a/src/styles/index.less +++ b/src/styles/index.less @@ -2,7 +2,6 @@ @import './colors.less'; @import './mixins.less'; @import './content.less'; -@import './modal.less'; @import './reactSelect.less'; @import './rcTooltip.less'; diff --git a/src/styles/modal.less b/src/styles/modal.less deleted file mode 100644 index a157b540..00000000 --- a/src/styles/modal.less +++ /dev/null @@ -1,168 +0,0 @@ -.modal-container { - h3 { - color: @color_text_primary; - font-size: 16px; - font-weight: 500; - margin-top: 14px; - } - p { - margin: 5px 0px; - font-weight: normal; - color: @color_text_secondary; - font-size: 12px; - } - - .confirm-address { - width: 390px; // address overflow - - .header { - padding: 24px 48px; - &:before { - .icomoon-T1; - font-size: 52px; - color: @color_text_secondary; - } - h3 { - margin: 0; - } - } - .content { - border-top: 1px solid @color_divider; - background: @color_main; - padding: 24px 48px; - - label { - font-size: 12px; - color: @color_text_secondary; - } - - p { - font-size: 12px; - font-weight: 400; - color: @color_text_primary; - } - } - } - - .close-modal { - position: absolute; - top: 0; - right: 0; - padding: 12px; - - &:after { - .icomoon-close; - } - } - - .pin { - padding: 24px 48px; - .pin-row { - button { - width: 80px; - height: 80px; - margin-top: 15px; - margin-left: 10px; - font-size: 22px; - font-weight: 600; - color: @color_text_primary; - border: 1px solid @color_divider; - background: @color_white; - transition: all 0.3s; - &:first-child { - margin-left: 0px; - } - &:hover { - color: @color_text_primary; - border-color: @color_text_secondary; - } - &:active { - color: @color_text_primary; - background: @color_divider; - border-color: @color_divider; - } - - } - } - - .pin-input-row { - margin-top: 24px; - display: inline-block; - position: relative; - } - - input { - letter-spacing: 6px; - line-height: 48px; - font-weight: 600; - font-size: 32px; - height: auto; - padding: 0px 31px; - color: @color_text_primary; - background: transparent; - } - - .pin-backspace { - position: absolute; - right: 14px; - top: 0; - bottom: 0; - margin: auto 0; - padding: 0; - &:after { - .icomoon-back; - } - } - - a { - color: @color_green_primary; - } - } - - .passphrase { - padding: 24px 48px; - - h3 { - max-width: 260px; - word-break: break-all; - } - - .row { - position: relative; - text-align: left; - padding-top: 24px; - label:not(.custom-checkbox) { - display: block; - padding-bottom: 6px; - color: @color_text_secondary; - } - - .error { - position: absolute; - left: 0px; - bottom: -19px; - font-size: 12px; - color: @color_error_primary; - } - } - } - - input[type="text"], - input[type="password"] { - width: 260px; - // box-shadow: none; - // border-radius: 0px; - // border: 1px solid @color_divider; - height: auto; - - .placeholder({ - color: @color_divider; - }); - } - - .submit { - width: 100%; - margin-top: 24px; - margin-bottom: 14px; - } -} \ No newline at end of file diff --git a/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.js b/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.js index f74e1e2d..7012d101 100644 --- a/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.js +++ b/src/views/Wallet/components/LeftNavigation/components/DeviceMenu/index.js @@ -114,11 +114,7 @@ class DeviceMenu extends Component { /> {isWebUSB(transport) && ( - Check for devices - + Check for devices )}