import { Controller } from "@hotwired/stimulus"; import { CurrenciesService } from "services/currencies_service"; // Connects to data-controller="money-field" // when currency select change, update the input value with the correct placeholder and step export default class extends Controller { static targets = ["amount", "currency", "symbol"]; handleCurrencyChange(e) { const selectedCurrency = e.target.value; this.updateAmount(selectedCurrency); } updateAmount(currency) { (new CurrenciesService).get(currency).then((currency) => { this.amountTarget.step = currency.step; if (isFinite(this.amountTarget.value)) { this.amountTarget.value = parseFloat(this.amountTarget.value).toFixed(currency.default_precision) } this.symbolTarget.innerText = currency.symbol; }); } }