mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-09 23:45:21 +02: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
54 lines
2.1 KiB
Text
54 lines
2.1 KiB
Text
<%# locals: (family:, year:) %>
|
|
|
|
<%= turbo_frame_tag "budget_picker" do %>
|
|
<div class="p-3 space-y-4">
|
|
<div class="flex items-center gap-2 justify-between">
|
|
<% last_month_of_previous_year = Date.new(year - 1, 12, 1) %>
|
|
|
|
<% if Budget.budget_date_valid?(last_month_of_previous_year, family: family) %>
|
|
<%= link_to picker_budgets_path(year: year - 1), data: { turbo_frame: "budget_picker" }, class: "p-2 flex items-center justify-center hover:bg-alpha-black-25 rounded-md" do %>
|
|
<%= icon "chevron-left" %>
|
|
<% end %>
|
|
<% else %>
|
|
<span class="p-2 flex items-center justify-center text-subdued rounded-md">
|
|
<%= icon "chevron-left", color: "current" %>
|
|
</span>
|
|
<% end %>
|
|
|
|
<span class="w-40 text-center px-3 py-2 border border-tertiary rounded-md" data-budget-picker-target="year">
|
|
<%= year %>
|
|
</span>
|
|
|
|
<% first_month_of_next_year = Date.new(year + 1, 1, 1) %>
|
|
|
|
<% if Budget.budget_date_valid?(first_month_of_next_year, family: family) %>
|
|
<%= link_to picker_budgets_path(year: year + 1), data: { turbo_frame: "budget_picker" }, class: "p-2 flex items-center justify-center hover:bg-alpha-black-25 rounded-md" do %>
|
|
<%= icon "chevron-right" %>
|
|
<% end %>
|
|
<% else %>
|
|
<span class="p-2 flex items-center justify-center text-subdued rounded-md">
|
|
<%= icon "chevron-right", color: "current" %>
|
|
</span>
|
|
<% end %>
|
|
</div>
|
|
|
|
<div class="grid grid-cols-3 gap-2 text-sm text-center font-medium">
|
|
<% Date::ABBR_MONTHNAMES.compact.each do |month_name| %>
|
|
<% date = Date.strptime("#{month_name}-#{year}", "%b-%Y") %>
|
|
<% param_key = Budget.date_to_param(date) %>
|
|
|
|
<% if Budget.budget_date_valid?(date, family: family) %>
|
|
<%= render LinkComponent.new(
|
|
variant: "ghost",
|
|
text: month_name,
|
|
href: budget_path(param_key),
|
|
full_width: true,
|
|
frame: :_top
|
|
) %>
|
|
<% else %>
|
|
<span class="px-3 py-2 text-subdued rounded-md"><%= month_name %></span>
|
|
<% end %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|