diff options
author | Dan <danjm.com@gmail.com> | 2017-10-23 20:05:53 +0800 |
---|---|---|
committer | Chi Kei Chan <chikeichan@gmail.com> | 2017-10-24 13:40:55 +0800 |
commit | 09d659614ed8a3d7627002eb77f0953b7f495f7e (patch) | |
tree | 0c08f419eee896b2e940fb2e3188ad181b3da103 /ui/app | |
parent | 754d117d189d81839bad3b5715b2d049779b4882 (diff) | |
download | tangerine-wallet-browser-09d659614ed8a3d7627002eb77f0953b7f495f7e.tar tangerine-wallet-browser-09d659614ed8a3d7627002eb77f0953b7f495f7e.tar.gz tangerine-wallet-browser-09d659614ed8a3d7627002eb77f0953b7f495f7e.tar.bz2 tangerine-wallet-browser-09d659614ed8a3d7627002eb77f0953b7f495f7e.tar.lz tangerine-wallet-browser-09d659614ed8a3d7627002eb77f0953b7f495f7e.tar.xz tangerine-wallet-browser-09d659614ed8a3d7627002eb77f0953b7f495f7e.tar.zst tangerine-wallet-browser-09d659614ed8a3d7627002eb77f0953b7f495f7e.zip |
Cleaner implementation of currency-display input.
Diffstat (limited to 'ui/app')
-rw-r--r-- | ui/app/components/send/currency-display.js | 36 | ||||
-rw-r--r-- | ui/app/css/itcss/components/currency-display.scss | 10 |
2 files changed, 24 insertions, 22 deletions
diff --git a/ui/app/components/send/currency-display.js b/ui/app/components/send/currency-display.js index 799e9b56d..5dba6a8dd 100644 --- a/ui/app/components/send/currency-display.js +++ b/ui/app/components/send/currency-display.js @@ -20,14 +20,6 @@ function isValidInput (text) { return re.test(text) } -function resetCaretIfPastEnd (value, event) { - const caretPosition = event.target.selectionStart - - if (caretPosition > value.length) { - event.target.setSelectionRange(value.length, value.length) - } -} - function toHexWei (value) { return conversionUtil(value, { fromNumericBase: 'dec', @@ -82,6 +74,8 @@ CurrencyDisplay.prototype.render = function () { conversionRate, }) + const inputSizeMultiplier = readOnly ? 1 : 1.2; + return h('div', { className, style: { @@ -95,35 +89,33 @@ CurrencyDisplay.prototype.render = function () { h('input', { className: primaryBalanceClassName, - value: `${value || initValueToRender} ${primaryCurrency}`, - placeholder: `${0} ${primaryCurrency}`, + value: `${value || initValueToRender}`, + placeholder: '0', + size: (value || initValueToRender).length * inputSizeMultiplier, readOnly, onChange: (event) => { - let newValue = event.target.value.split(' ')[0] + let newValue = event.target.value if (newValue === '') { - this.setState({ value: '0' }) + newValue = '0' } else if (newValue.match(/^0[1-9]$/)) { - this.setState({ value: newValue.match(/[1-9]/)[0] }) + newValue = newValue.match(/[1-9]/)[0] } - else if (newValue && !isValidInput(newValue)) { + + if (newValue && !isValidInput(newValue)) { event.preventDefault() } else { + validate(this.getAmount(newValue)) this.setState({ value: newValue }) } }, - onBlur: event => !readOnly && handleChange(this.getAmount(event.target.value.split(' ')[0])), - onKeyUp: event => { - if (!readOnly) { - validate(toHexWei(value || initValueToRender)) - resetCaretIfPastEnd(value || initValueToRender, event) - } - }, - onClick: event => !readOnly && resetCaretIfPastEnd(value || initValueToRender, event), + onBlur: event => !readOnly && handleChange(this.getAmount(event.target.value)), }), + h('span.currency-display__currency-symbol', primaryCurrency), + ]), ]), diff --git a/ui/app/css/itcss/components/currency-display.scss b/ui/app/css/itcss/components/currency-display.scss index eb1776c58..9459629b6 100644 --- a/ui/app/css/itcss/components/currency-display.scss +++ b/ui/app/css/itcss/components/currency-display.scss @@ -22,6 +22,7 @@ line-height: 22px; border: none; outline: 0 !important; + max-width: 100%; } &__primary-currency { @@ -43,4 +44,13 @@ font-size: 12px; line-height: 12px; } + + &__input-wrapper { + position: relative; + display: flex; + } + + &__currency-symbol { + margin-top: 1px; + } }
\ No newline at end of file |