diff --git a/app/components/menu_component.html.erb b/app/components/menu_component.html.erb index 7560d317..527e5e36 100644 --- a/app/components/menu_component.html.erb +++ b/app/components/menu_component.html.erb @@ -1,4 +1,4 @@ -<%= tag.div data: { controller: "menu", menu_placement_value: placement, menu_offset_value: offset } do %> +<%= tag.div data: { controller: "menu", menu_placement_value: placement, menu_offset_value: offset, testid: testid } do %> <% if variant == :icon %> <%= render ButtonComponent.new(variant: "icon", icon: icon_vertical ? "more-vertical" : "more-horizontal", data: { menu_target: "button" }) %> <% elsif variant == :button %> @@ -11,15 +11,17 @@ <% end %> - \ No newline at end of file + diff --git a/app/views/accounts/show/_menu.html.erb b/app/views/accounts/show/_menu.html.erb index 41eaeb29..5e59c88a 100644 --- a/app/views/accounts/show/_menu.html.erb +++ b/app/views/accounts/show/_menu.html.erb @@ -1,6 +1,6 @@ <%# locals: (account:) %> -<%= render MenuComponent.new do |menu| %> +<%= render MenuComponent.new(testid: "account-menu") do |menu| %> <% menu.with_item(variant: "link", text: "Edit", href: edit_account_path(account), icon: "pencil-line", data: { turbo_frame: :modal }) %> <% unless account.crypto? %> diff --git a/app/views/accounts/show/_tabs.html.erb b/app/views/accounts/show/_tabs.html.erb index 2a0e2b2f..169fe0d4 100644 --- a/app/views/accounts/show/_tabs.html.erb +++ b/app/views/accounts/show/_tabs.html.erb @@ -1,11 +1,17 @@ <%# locals: (account:, tabs:) %> -<% selected_tab = tabs.find { |tab| tab[:key] == params[:tab] } || tabs.first %> +<% active_tab = tabs.find { |tab| tab[:key] == params[:tab] } || tabs.first %> -
- <% tabs.each do |tab| %> - <%= render "accounts/show/tab", account: account, key: tab[:key], is_selected: selected_tab[:key] == tab[:key] %> +<%= render TabsComponent.new(active_tab: active_tab[:key], url_param_key: "tab") do |tabs_container| %> + <% tabs_container.with_nav(classes: "max-w-fit") do |nav| %> + <% tabs.each do |tab| %> + <% nav.with_btn(id: tab[:key], label: tab[:key].humanize, classes: "px-6") %> + <% end %> <% end %> -
-<%= selected_tab[:contents] %> + <% tabs.each do |tab| %> + <% tabs_container.with_panel(tab_id: tab[:key]) do %> + <%= tab[:contents] %> + <% end %> + <% end %> +<% end %> diff --git a/app/views/accounts/show/_template.html.erb b/app/views/accounts/show/_template.html.erb index 5bc44376..20d352b5 100644 --- a/app/views/accounts/show/_template.html.erb +++ b/app/views/accounts/show/_template.html.erb @@ -16,7 +16,7 @@ <%= render "accounts/show/chart", account: account %> <% end %> -
+
- <%= tag.button data: { menu_target: "button" }, class: "flex items-center gap-1 hover:bg-alpha-black-25 cursor-pointer rounded-md p-2" do %> + <%= render MenuComponent.new(variant: "button") do |menu| %> + <% menu.with_button class: "flex items-center gap-1 hover:bg-alpha-black-25 cursor-pointer rounded-md p-2" do %> <%= @budget.name %> <%= lucide_icon "chevron-down", class: "w-5 h-5 shrink-0 text-secondary" %> <% end %> - -
+ <% end %> + <% end %>
<%= render LinkComponent.new( diff --git a/app/views/budgets/_picker.html.erb b/app/views/budgets/_picker.html.erb index 06061cc3..effcfe2c 100644 --- a/app/views/budgets/_picker.html.erb +++ b/app/views/budgets/_picker.html.erb @@ -1,7 +1,7 @@ <%# locals: (family:, year:) %> <%= turbo_frame_tag "budget_picker" do %> -
+
<% last_month_of_previous_year = Date.new(year - 1, 12, 1) %> diff --git a/app/views/import/uploads/show.html.erb b/app/views/import/uploads/show.html.erb index d14fffcb..bb30f3fa 100644 --- a/app/views/import/uploads/show.html.erb +++ b/app/views/import/uploads/show.html.erb @@ -11,8 +11,13 @@

<%= t(".description") %>

- <%= render TabsComponent.new(active_tab: "csv-upload", url_param_key: "tab") do |container| %> - <% container.with_tab(id: "csv-upload", label: "Upload CSV") do %> + <%= render TabsComponent.new(active_tab: params[:tab] || "csv-upload", url_param_key: "tab", testid: "import-tabs") do |tabs| %> + <% tabs.with_nav do |nav| %> + <% nav.with_btn(id: "csv-upload", label: "Upload CSV") %> + <% nav.with_btn(id: "csv-paste", label: "Copy & Paste") %> + <% end %> + + <% tabs.with_panel(tab_id: "csv-upload") do %> <%= styled_form_with model: @import, scope: :import, url: import_upload_path(@import), multipart: true, class: "space-y-2" do |form| %> <%= form.select :col_sep, Import::SEPARATORS, label: true %> @@ -42,7 +47,7 @@ <% end %> <% end %> - <% container.with_tab(id: "csv-paste", label: "Copy & Paste") do %> + <% tabs.with_panel(tab_id: "csv-paste") do %> <%= styled_form_with model: @import, scope: :import, url: import_upload_path(@import), multipart: true, class: "space-y-2" do |form| %> <%= form.select :col_sep, Import::SEPARATORS, label: true %> diff --git a/app/views/settings/hostings/_invite_code_settings.html.erb b/app/views/settings/hostings/_invite_code_settings.html.erb index a1ff25af..63a5a335 100644 --- a/app/views/settings/hostings/_invite_code_settings.html.erb +++ b/app/views/settings/hostings/_invite_code_settings.html.erb @@ -5,9 +5,9 @@

<%= t(".description") %>

- <%= styled_form_with model: Setting.new, - url: settings_hosting_path, - method: :patch, + <%= styled_form_with model: Setting.new, + url: settings_hosting_path, + method: :patch, data: { controller: "auto-submit-form", auto_submit_form_trigger_event_value: "change" } do |form| %> <%= form.toggle :require_invite_for_signup, { data: { auto_submit_form_target: "auto" } } %> <% end %> diff --git a/app/views/transactions/searches/_form.html.erb b/app/views/transactions/searches/_form.html.erb index 6a150fb4..8cb080a1 100644 --- a/app/views/transactions/searches/_form.html.erb +++ b/app/views/transactions/searches/_form.html.erb @@ -16,17 +16,20 @@ "data-auto-submit-form-target": "auto" %>
-
- <%= render ButtonComponent.new( - text: "Filter", - icon: "list-filter", - variant: "outline", + + <%= render MenuComponent.new(variant: "button", no_padding: true) do |menu| %> + <% menu.with_button( id: "transaction-filters-button", type: "button", + text: "Filter", + variant: "outline", + icon: "list-filter", data: { menu_target: "button" } ) %> - <%= render "transactions/searches/menu", form: form %> -
+ <% menu.with_custom_content do %> + <%= render "transactions/searches/menu", form: form %> + <% end %> + <% end %>
<% end %> diff --git a/app/views/transactions/searches/_menu.html.erb b/app/views/transactions/searches/_menu.html.erb index e2f07ebd..d514391a 100644 --- a/app/views/transactions/searches/_menu.html.erb +++ b/app/views/transactions/searches/_menu.html.erb @@ -1,49 +1,46 @@ <%# locals: (form:) %> -