<%= turbo_frame_tag "modal" do %> <%= render DS::Dialog.new do |dialog| %> <% dialog.with_header(title: t(".link_enable_banking_title")) %> <% dialog.with_body do %> <% items = local_assigns[:enable_banking_items] || @enable_banking_items || Current.family.enable_banking_items.where.not(client_certificate: nil) %> <% if items&.any? %> <% # Find the first item with valid session to use for "Add Connection" button item_for_new_connection = items.find(&:session_valid?) # Check if any item needs initial connection (configured but no session yet) item_needing_connection = items.find { |i| !i.session_valid? && !i.session_expired? } %>
<% items.each do |item| %>
<% if item.session_valid? %>

<%= item.aspsp_name || "Connected Bank" %>

Session expires: <%= item.session_expires_at&.strftime("%b %d, %Y") || "Unknown" %>

<% elsif item.session_expired? %>

<%= item.aspsp_name || "Connection" %>

Session expired - re-authorization required

<% else %>

Configured

Ready to connect a bank

<% end %>
<% if item.session_valid? %> <%= button_to sync_enable_banking_item_path(item), method: :post, class: "inline-flex items-center justify-center rounded-lg px-3 py-1.5 text-xs font-medium text-primary bg-container border border-primary hover:bg-gray-50 transition-colors", data: { turbo: false } do %> Sync <% end %> <% elsif item.session_expired? %> <%= button_to reauthorize_enable_banking_item_path(item), method: :post, class: "inline-flex items-center justify-center rounded-lg px-3 py-1.5 text-xs font-medium text-white bg-warning hover:opacity-90 transition-colors", data: { turbo: false } do %> Reconnect <% end %> <% else %> <%= link_to select_bank_enable_banking_item_path(item), class: "inline-flex items-center justify-center rounded-lg px-3 py-1.5 text-xs font-medium text-white bg-gray-900 hover:bg-gray-800 transition-colors", data: { turbo_frame: "modal" } do %> Connect Bank <% end %> <% end %> <%= button_to enable_banking_item_path(item), method: :delete, class: "inline-flex items-center justify-center rounded-lg px-3 py-1.5 text-xs font-medium text-destructive hover:bg-destructive/10 transition-colors", data: { turbo_confirm: "Are you sure you want to remove this connection?" } do %> Remove <% end %>
<% end %> <%# Add Connection button below the list - only show if we have a valid session to copy credentials from %> <% if item_for_new_connection %>
<%= button_to new_connection_enable_banking_item_path(item_for_new_connection), method: :post, class: "inline-flex items-center gap-2 justify-center rounded-lg px-4 py-2 text-sm font-medium text-white bg-gray-900 hover:bg-gray-800 transition-colors", data: { turbo_frame: "modal" } do %> <%= icon "plus", size: "sm" %> Add Connection <% end %>
<% end %>
<% else %>
<%= icon("alert-circle", class: "text-warning w-5 h-5 shrink-0 mt-0.5") %>

Enable Banking connection not configured

Before you can link Enable Banking accounts, you need to configure your Enable Banking connection.

Setup Steps:

  1. Go to Settings → Providers
  2. Find the Enable Banking section
  3. Enter your Enable Banking credentials
  4. Return here to link your accounts
<%= link_to settings_providers_path, class: "w-full inline-flex items-center justify-center rounded-lg font-medium whitespace-nowrap rounded-lg hidden md:inline-flex px-3 py-2 text-sm text-inverse bg-inverse hover:bg-inverse-hover disabled:bg-gray-500 theme-dark:disabled:bg-gray-400", data: { turbo: false } do %> Go to Provider Settings <% end %>
<% end %> <% end %> <% end %> <% end %>