mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-09 23:45:21 +02:00
* [claudesquad] update from 'component-namespacing' on 18 Jul 25 07:23 EDT * [claudesquad] update from 'component-namespacing' on 18 Jul 25 07:30 EDT * Update stimulus controller references to use namespace * Fix remaining tests
91 lines
3.2 KiB
Text
91 lines
3.2 KiB
Text
<%# locals: (family:, active_tab:, mobile: false) %>
|
|
|
|
<div id="account-sidebar-tabs">
|
|
<% if family.missing_data_provider? %>
|
|
<details class="group bg-yellow-tint-10 rounded-lg p-2 text-yellow-600 mb-3 text-xs">
|
|
<summary class="flex items-center justify-between gap-2">
|
|
<div class="flex items-center gap-2">
|
|
<%= icon "triangle-alert", size: "sm", color: "warning" %>
|
|
<p class="font-medium">Missing historical data</p>
|
|
</div>
|
|
|
|
<%= icon("chevron-down", color: "warning", class: "group-open:transform group-open:rotate-180") %>
|
|
</summary>
|
|
<div class="text-xs py-2 space-y-2">
|
|
<p>Maybe uses Synth API to fetch historical exchange rates, security prices, and more. This data is required to calculate accurate historical account balances.</p>
|
|
|
|
<p>
|
|
<%= link_to "Add your Synth API key here.", settings_hosting_path, class: "text-yellow-600 underline" %>
|
|
</p>
|
|
</div>
|
|
</details>
|
|
<% end %>
|
|
|
|
<%= render DS::Tabs.new(active_tab: active_tab, session_key: "account_sidebar_tab", testid: "account-sidebar-tabs") do |tabs| %>
|
|
<% tabs.with_nav do |nav| %>
|
|
<% nav.with_btn(id: "asset", label: "Assets") %>
|
|
<% nav.with_btn(id: "liability", label: "Debts") %>
|
|
<% nav.with_btn(id: "all", label: "All") %>
|
|
<% end %>
|
|
|
|
<% tabs.with_panel(tab_id: "asset") do %>
|
|
<div class="space-y-2">
|
|
<%= render DS::Link.new(
|
|
text: "New asset",
|
|
variant: "ghost",
|
|
href: new_account_path(step: "method_select", classification: "asset"),
|
|
icon: "plus",
|
|
frame: :modal,
|
|
full_width: true,
|
|
class: "justify-start"
|
|
) %>
|
|
|
|
<div>
|
|
<% family.balance_sheet.assets.account_groups.each do |group| %>
|
|
<%= render "accounts/accountable_group", account_group: group, mobile: mobile %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% tabs.with_panel(tab_id: "liability") do %>
|
|
<div class="space-y-2">
|
|
<%= render DS::Link.new(
|
|
text: "New debt",
|
|
variant: "ghost",
|
|
href: new_account_path(step: "method_select", classification: "liability"),
|
|
icon: "plus",
|
|
frame: :modal,
|
|
full_width: true,
|
|
class: "justify-start"
|
|
) %>
|
|
|
|
<div>
|
|
<% family.balance_sheet.liabilities.account_groups.each do |group| %>
|
|
<%= render "accounts/accountable_group", account_group: group, mobile: mobile %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% tabs.with_panel(tab_id: "all") do %>
|
|
<div class="space-y-2">
|
|
<%= render DS::Link.new(
|
|
text: "New account",
|
|
variant: "ghost",
|
|
full_width: true,
|
|
href: new_account_path(step: "method_select"),
|
|
icon: "plus",
|
|
frame: :modal,
|
|
class: "justify-start"
|
|
) %>
|
|
|
|
<div>
|
|
<% family.balance_sheet.account_groups.each do |group| %>
|
|
<%= render "accounts/accountable_group", account_group: group, mobile: mobile, all_tab: true %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
</div>
|