Skip reformatting blank amount fields on currency change

parseLocaleFloat returns 0 for empty strings, which caused blank amount
fields to be overwritten with "0.00" when the user changed currency.
Guard against this by checking for a non-empty value before parsing.

https://claude.ai/code/session_01ThfszjiCmbDDPyb4TZqk2X
This commit is contained in:
Claude
2026-03-10 17:15:44 +00:00
parent 144d99b6e4
commit ef4750c2c5

View File

@@ -16,9 +16,12 @@ export default class extends Controller {
new CurrenciesService().get(currency).then((currency) => {
this.amountTarget.step = currency.step;
const parsedAmount = parseLocaleFloat(this.amountTarget.value);
if (Number.isFinite(parsedAmount)) {
this.amountTarget.value = parsedAmount.toFixed(currency.default_precision);
const rawValue = this.amountTarget.value.trim();
if (rawValue !== "") {
const parsedAmount = parseLocaleFloat(rawValue);
if (Number.isFinite(parsedAmount)) {
this.amountTarget.value = parsedAmount.toFixed(currency.default_precision);
}
}
this.symbolTarget.innerText = currency.symbol;