From fa8569f0c565b73105550054ec35244e4d21e0d8 Mon Sep 17 00:00:00 2001 From: counterweight Date: Sat, 22 Mar 2025 12:38:58 +0100 Subject: [PATCH] everything inside class --- src/front/pages/offers.js | 58 +++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/front/pages/offers.js b/src/front/pages/offers.js index 580b263..771ce9f 100644 --- a/src/front/pages/offers.js +++ b/src/front/pages/offers.js @@ -4,33 +4,6 @@ const BuyOrSellButtonGroup = require('../components/BuyOrSellButtonGroup'); const PremiumSelector = require('../components/PremiumSelector'); const PriceDisplay = require('../components/PriceDisplay'); -function readIntFromEurAmountInput(eurAmountInput) { - const eurAmountFieldValue = eurAmountInput.value; - const regularExpression = /([\d\s]+)/; - const matchResult = eurAmountFieldValue.match(regularExpression); - - if (!matchResult) { - return null; - } - - const numberString = matchResult[1]; - const cleanInputNumber = parseInt(numberString.replace(/\s/gi, '')); - - return cleanInputNumber; -} - -function validateAndFormatEurAmountInput(eurAmountInput) { - const cleanInputNumber = readIntFromEurAmountInput(eurAmountInput); - eurAmountInput.classList.remove('input-is-valid', 'input-is-invalid'); - if (cleanInputNumber) { - eurAmountInput.value = formatNumberWithSpaces(cleanInputNumber); - eurAmountInput.classList.add('input-is-valid'); - return; - } - - eurAmountInput.classList.add('input-is-invalid'); -} - class AmountInput { constructor({ parentElement, id }) { this.element = null; @@ -96,7 +69,7 @@ class AmountInput { amountArea.appendChild(btcAmount); this.eurInput.addEventListener('blur', () => { - validateAndFormatEurAmountInput(this.eurInput); + this.validateAndFormatEurAmountInput(this.eurInput); this.updateBtcInput(); }); @@ -111,9 +84,36 @@ class AmountInput { this.parentElement.appendChild(this.element); } + get intEurAmount() { + const eurAmountFieldValue = this.eurInput.value; + const regularExpression = /([\d\s]+)/; + const matchResult = eurAmountFieldValue.match(regularExpression); + + if (!matchResult) { + return null; + } + + const numberString = matchResult[1]; + const cleanInputNumber = parseInt(numberString.replace(/\s/gi, '')); + + return cleanInputNumber; + } + + validateAndFormatEurAmountInput(eurAmountInput) { + const cleanInputNumber = this.intEurAmount; + eurAmountInput.classList.remove('input-is-valid', 'input-is-invalid'); + if (cleanInputNumber) { + eurAmountInput.value = formatNumberWithSpaces(cleanInputNumber); + eurAmountInput.classList.add('input-is-valid'); + return; + } + + eurAmountInput.classList.add('input-is-invalid'); + } + updateBtcInput() { const eurToSatRate = 1021; - const cleanEurAmount = readIntFromEurAmountInput(this.eurInput); + const cleanEurAmount = this.intEurAmount; const satsAmount = cleanEurAmount * eurToSatRate; const formattedSatsAmount = formatNumberWithSpaces(satsAmount);