diff options
author | Kevin Serrano <kevin.serrano@consensys.net> | 2017-05-25 00:55:16 +0800 |
---|---|---|
committer | Kevin Serrano <kevin.serrano@consensys.net> | 2017-05-25 00:55:16 +0800 |
commit | 60281f72506c6b1775e75e8426a09d91893ab6ac (patch) | |
tree | 9a58f74831fe764cb073c5fa2bf265ea05a73a02 | |
parent | 31d17c9e25458cd47f8c18ec3b967aecff236ba6 (diff) | |
download | tangerine-wallet-browser-60281f72506c6b1775e75e8426a09d91893ab6ac.tar tangerine-wallet-browser-60281f72506c6b1775e75e8426a09d91893ab6ac.tar.gz tangerine-wallet-browser-60281f72506c6b1775e75e8426a09d91893ab6ac.tar.bz2 tangerine-wallet-browser-60281f72506c6b1775e75e8426a09d91893ab6ac.tar.lz tangerine-wallet-browser-60281f72506c6b1775e75e8426a09d91893ab6ac.tar.xz tangerine-wallet-browser-60281f72506c6b1775e75e8426a09d91893ab6ac.tar.zst tangerine-wallet-browser-60281f72506c6b1775e75e8426a09d91893ab6ac.zip |
Cleanup code.
-rw-r--r-- | ui/app/components/bn-as-decimal-input.js | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/ui/app/components/bn-as-decimal-input.js b/ui/app/components/bn-as-decimal-input.js index 8f56f29ab..de01f8b5f 100644 --- a/ui/app/components/bn-as-decimal-input.js +++ b/ui/app/components/bn-as-decimal-input.js @@ -31,7 +31,7 @@ BnAsDecimalInput.prototype.render = function () { const suffix = props.suffix const style = props.style const valueString = value.toString(10) - const newValue = downsize(valueString, scale, precision) + const newValue = this.downsize(valueString, scale, precision) return ( h('.flex-column', [ @@ -65,7 +65,7 @@ BnAsDecimalInput.prototype.render = function () { const value = (event.target.value === '') ? '' : event.target.value - const scaledNumber = upsize(value, scale, precision) + const scaledNumber = this.upsize(value, scale, precision) const precisionBN = new BN(scaledNumber, 10) onChange(precisionBN) }, @@ -145,20 +145,28 @@ BnAsDecimalInput.prototype.constructWarning = function () { } -function downsize (number, scale, precision) { +BnAsDecimalInput.prototype.downsize = function (number, scale, precision) { + // if there is no scaling, simply return the number if (scale === 0) { return Number(number) } else { + // if the scale is the same as the precision, account for this edge case. var decimals = (scale === precision) ? -1 : scale - precision return Number(number.slice(0, -scale) + '.' + number.slice(-scale, decimals)) } } -function upsize (number, scale, precision) { - var string = number.toString() - var stringArray = string.split('.') +BnAsDecimalInput.prototype.upsize = function (number, scale, precision) { + var stringArray = number.toString().split('.') var decimalLength = stringArray[1] ? stringArray[1].length : 0 - var newString = ((scale === 0) || (decimalLength === 0)) ? stringArray[0] : stringArray[0] + stringArray[1].slice(0, precision) + var newString = stringArray[0] + + // If there is scaling and decimal parts exist, integrate them in. + if ((scale !== 0) && (decimalLength !== 0)) { + newString += stringArray[1].slice(0, precision) + } + + // Add 0s to account for the upscaling. for (var i = decimalLength; i < scale; i++) { newString += '0' } |