From 398319402511337b4715e67161a00baff2258507 Mon Sep 17 00:00:00 2001 From: hatz Date: Fri, 23 May 2025 14:03:00 -0500 Subject: [PATCH] Put back background color --- app/components/menu_item_component.rb | 17 +++++++++++------ app/views/chats/_chat.html.erb | 2 +- app/views/chats/_chat_nav.html.erb | 2 +- app/views/chats/edit.html.erb | 3 ++- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/app/components/menu_item_component.rb b/app/components/menu_item_component.rb index c029afa7..9270de11 100644 --- a/app/components/menu_item_component.rb +++ b/app/components/menu_item_component.rb @@ -1,25 +1,26 @@ class MenuItemComponent < ViewComponent::Base VARIANTS = %i[link button divider].freeze - attr_reader :variant, :text, :icon, :href, :method, :destructive, :confirm, :opts + attr_reader :variant, :text, :icon, :href, :method, :destructive, :confirm, :frame, :opts - def initialize(variant:, text: nil, icon: nil, href: nil, method: :post, destructive: false, confirm: nil, **opts) + def initialize(variant:, text: nil, icon: nil, href: nil, method: :post, destructive: false, confirm: nil, frame: nil, **opts) @variant = variant.to_sym @text = text @icon = icon @href = href @method = method.to_sym @destructive = destructive - @opts = opts @confirm = confirm + @frame = frame + @opts = opts raise ArgumentError, "Invalid variant: #{@variant}" unless VARIANTS.include?(@variant) end def wrapper(&block) if variant == :button - button_to href, method: method, class: container_classes, **merged_button_opts, &block + button_to href, method: method, class: container_classes, **merged_opts, &block elsif variant == :link - link_to href, class: container_classes, **opts, &block + link_to href, class: container_classes, **merged_opts, &block else nil end @@ -44,7 +45,7 @@ class MenuItemComponent < ViewComponent::Base ].join(" ") end - def merged_button_opts + def merged_opts merged_opts = opts.dup || {} data = merged_opts.delete(:data) || {} @@ -52,6 +53,10 @@ class MenuItemComponent < ViewComponent::Base data = data.merge(turbo_confirm: confirm.to_data_attribute) end + if frame.present? + data = data.merge(turbo_frame: frame) + end + merged_opts.merge(data: data) end end diff --git a/app/views/chats/_chat.html.erb b/app/views/chats/_chat.html.erb index 1d8f57f6..c61c5a04 100644 --- a/app/views/chats/_chat.html.erb +++ b/app/views/chats/_chat.html.erb @@ -17,7 +17,7 @@ text: "Edit chat title", href: edit_chat_path(chat, ctx: "list"), icon: "pencil", - data: { turbo_frame: dom_id(chat, "title") }) %> + frame: dom_id(chat, "title")) %> <% menu.with_item( variant: "button", diff --git a/app/views/chats/_chat_nav.html.erb b/app/views/chats/_chat_nav.html.erb index 8b1c00ae..5f4d44b5 100644 --- a/app/views/chats/_chat_nav.html.erb +++ b/app/views/chats/_chat_nav.html.erb @@ -27,7 +27,7 @@ text: "Edit chat title", href: edit_chat_path(chat, ctx: "chat"), icon: "pencil", - data: { turbo_frame: dom_id(chat, "title") }) %> + frame: dom_id(chat, "title")) %> <% menu.with_item( variant: "button", diff --git a/app/views/chats/edit.html.erb b/app/views/chats/edit.html.erb index cb821576..3c950bbb 100644 --- a/app/views/chats/edit.html.erb +++ b/app/views/chats/edit.html.erb @@ -1,9 +1,10 @@ <%= turbo_frame_tag dom_id(@chat, :title), class: "block" do %> + <% bg_class = params[:ctx] == "chat" ? "bg-container-inset" : "bg-container" %> <%= styled_form_with model: @chat, data: { controller: "auto-submit-form", auto_submit_form_trigger_event_value: "blur" } do |f| %> <%= f.text_field :title, data: { auto_submit_form_target: "auto" }, autofocus: true, inline: true, - class: "w-full rounded-md px-2 py-1 text-sm font-medium bg-container-inset" %> + class: "w-full rounded-md px-2 py-1 text-sm font-medium #{bg_class}" %> <% end %> <% end %>