% account_currencies = Current.family.accounts.map { |a| [a.id, a.currency] }.to_h.to_json %>
<%= styled_form_with model: transfer, class: "space-y-4", data: { turbo_frame: "_top", controller: "transfer-form", transfer_form_exchange_rate_url_value: exchange_rate_path, transfer_form_account_currencies_value: account_currencies } do |f| %>
<% if transfer.errors.present? %>
<%= icon "circle-alert", size: "sm" %>
<%= @transfer.errors.full_messages.to_sentence %>
<% end %>
<%# Hide expense/income tabs when creating a transfer involving an investment or crypto account. %>
<% show_type_tabs = true %>
<% account_ids = [] %>
<% account_ids << @from_account_id if defined?(@from_account_id) && @from_account_id.present? %>
<% account_ids << params[:from_account_id] if params[:from_account_id].present? %>
<% account_ids << params[:to_account_id] if params[:to_account_id].present? %>
<% account_ids << transfer.from_account_id if transfer.respond_to?(:from_account_id) && transfer.from_account_id.present? %>
<% account_ids << transfer.to_account_id if transfer.respond_to?(:to_account_id) && transfer.to_account_id.present? %>
<% selected_accounts = @accounts.select { |a| account_ids.include?(a.id) } %>
<% if selected_accounts.any? { |a| a.investment? || a.crypto? } %>
<% show_type_tabs = false %>
<% end %>
<% if show_type_tabs %>