Transactions

<%= render DS::Menu.new do |menu| %> <% menu.with_item(variant: "link", text: "New rule", href: new_rule_path(resource_type: "transaction"), icon: "plus", data: { turbo_frame: :modal }) %> <% menu.with_item(variant: "link", text: "Edit rules", href: rules_path, icon: "git-branch", data: { turbo_frame: :_top }) %> <% menu.with_item(variant: "link", text: "Edit categories", href: categories_path, icon: "shapes", data: { turbo_frame: :_top }) %> <% menu.with_item(variant: "link", text: "Edit tags", href: tags_path, icon: "tags", data: { turbo_frame: :_top }) %> <% menu.with_item(variant: "link", text: "Edit merchants", href: family_merchants_path, icon: "store", data: { turbo_frame: :_top }) %> <% menu.with_item(variant: "link", text: "Edit imports", href: imports_path, icon: "hard-drive-upload", data: { turbo_frame: :_top }) %> <% menu.with_item(variant: "link", text: "Import", href: new_import_path, icon: "download", data: { turbo_frame: "modal", class_name: "md:!hidden" }) %> <% end %> <%= render DS::Link.new( text: "New transaction", icon: "plus", variant: "primary", href: new_transaction_path, frame: :modal, class: "hidden md:inline-flex" ) %> <%= render DS::Link.new( icon: "plus", variant: "icon-inverse", href: new_transaction_path, frame: :modal, class: "rounded-full md:hidden" ) %>
<%= render "summary", totals: @search.totals %> <% if Current.family.recurring_transactions_disabled? %> <%= render "transactions/list", transactions: @transactions, projected_recurring: @projected_recurring, q: params[:q], pagy: @pagy %> <% else %> <%= render DS::Tabs.new(active_tab: params[:tab].presence || "transactions") do |tabs| %> <% tabs.with_nav(classes: "max-w-fit") do |nav| %> <% nav.with_btn(id: "transactions", label: t("transactions.show.tab_transactions"), classes: "px-6") %> <% nav.with_btn(id: "upcoming", label: t("transactions.show.tab_upcoming"), classes: "px-6") %> <% end %> <% tabs.with_panel(tab_id: "transactions") do %>
<%= render "transactions/list", transactions: @transactions, projected_recurring: @projected_recurring, q: params[:q], pagy: @pagy %>
<% end %> <% tabs.with_panel(tab_id: "upcoming") do %>
<%= render "transactions/upcoming" %>
<% end %> <% end %> <% end %>