2024-09-17 16:37:09 +02:00
|
|
|
<%# locals: (form:, money_method:, default_currency:, disable_currency: false, hide_currency: false, label: nil, required: false) %>
|
2024-07-17 08:57:17 -04:00
|
|
|
|
2024-07-16 14:08:24 -04:00
|
|
|
<% fallback_label = t(".money-label") %>
|
2024-08-09 11:22:57 -04:00
|
|
|
<% currency = form.object ? (form.object.send(money_method)&.currency || Money::Currency.new(default_currency)) : Money::Currency.new(default_currency) %>
|
2024-07-17 08:57:17 -04:00
|
|
|
|
2024-07-16 14:08:24 -04:00
|
|
|
<div class="form-field pr-0" data-controller="money-field">
|
|
|
|
<%= form.label label || fallback_label, { class: "form-field__label" } %>
|
|
|
|
|
|
|
|
<div class="flex items-center gap-1">
|
|
|
|
<div class="flex items-center grow gap-1">
|
2024-07-17 08:57:17 -04:00
|
|
|
<span class="text-gray-500 text-sm" data-money-field-target="symbol"><%= currency.symbol %></span>
|
2024-09-17 16:37:09 +02:00
|
|
|
<%= money_field form, money_method, { inline: true, "data-money-field-target" => "amount", default_currency: currency, required: required } %>
|
2024-07-16 14:08:24 -04:00
|
|
|
</div>
|
|
|
|
<% unless hide_currency %>
|
|
|
|
<div>
|
2024-07-17 08:57:17 -04:00
|
|
|
<%= currency_select form, :currency, { inline: true, selected: currency.iso_code }, {
|
2024-07-16 14:08:24 -04:00
|
|
|
class: "form-field__input text-right pr-8 disabled:text-gray-500",
|
|
|
|
disabled: disable_currency,
|
|
|
|
data: {
|
|
|
|
"money-field-target" => "currency",
|
|
|
|
action: "money-field#handleCurrencyChange"
|
|
|
|
}
|
|
|
|
} %>
|
|
|
|
</div>
|
|
|
|
<% end %>
|
|
|
|
</div>
|
|
|
|
</div>
|