mirror of
https://github.com/we-promise/sure.git
synced 2026-04-19 20:14:08 +00:00
* Add lookbook + viewcomponent, organize design system file * Build menu component * Button updates * More button fixes * Replace all menus with new ViewComponent * Checkpoint: fix tests, all buttons and menus converted * Split into Link and Button components for clarity * Button cleanup * Simplify custom confirmation configuration in views * Finalize button, link component API * Add toggle field to custom form builder + Component * Basic tabs component * Custom tabs, convert all menu / tab instances in app * Gem updates * Centralized icon helper * Update all icon usage to central helper * Lint fixes * Centralize all disclosure instances * Dialog replacements * Consolidation of all dialog styles * Test fixes * Fix app layout issues, move to component with slots * Layout simplification * Flakey test fix * Fix dashboard mobile issues * Finalize homepage * Lint fixes * Fix shadows and borders in dark mode * Fix tests * Remove stale class * Fix filled icon logic * Move transparent? to public interface
92 lines
3.0 KiB
Plaintext
92 lines
3.0 KiB
Plaintext
<%# locals: (family:, active_account_group_tab:) %>
|
|
|
|
<div>
|
|
<% 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 TabsComponent.new(active_tab: active_account_group_tab, url_param_key: "account_group_tab", testid: "account-sidebar-tabs") do |tabs| %>
|
|
<% tabs.with_nav do |nav| %>
|
|
<% nav.with_btn(id: "assets", label: "Assets") %>
|
|
<% nav.with_btn(id: "debts", label: "Debts") %>
|
|
<% nav.with_btn(id: "all", label: "All") %>
|
|
<% end %>
|
|
|
|
<% tabs.with_panel(tab_id: "assets") do %>
|
|
<div class="space-y-2">
|
|
<%= render LinkComponent.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.account_groups("asset").each do |group| %>
|
|
<%= render "accounts/accountable_group", account_group: group %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% tabs.with_panel(tab_id: "debts") do %>
|
|
<div class="space-y-2">
|
|
<%= render LinkComponent.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.account_groups("liability").each do |group| %>
|
|
<%= render "accounts/accountable_group", account_group: group %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% tabs.with_panel(tab_id: "all") do %>
|
|
<div class="space-y-2">
|
|
<%= render LinkComponent.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 %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
</div>
|