Class: RubyUI::AdminPageHeader

Inherits:
Base
  • Object
show all
Defined in:
lib/generators/ruby_cms/templates/components/ruby_ui/admin_page/admin_page_header.rb

Constant Summary

Constants inherited from Base

Base::TAILWIND_MERGER

Instance Attribute Summary

Attributes inherited from Base

#attrs

Instance Method Summary collapse

Constructor Details

#initialize(title:, subtitle: nil, breadcrumbs: [], actions_left: false, **user_attrs) ⇒ AdminPageHeader

Returns a new instance of AdminPageHeader.



5
6
7
8
9
10
11
# File 'lib/generators/ruby_cms/templates/components/ruby_ui/admin_page/admin_page_header.rb', line 5

def initialize(title:, subtitle: nil, breadcrumbs: [], actions_left: false, **user_attrs)
  @title = title
  @subtitle = subtitle
  @breadcrumbs = Array(breadcrumbs)
  @actions_left = actions_left
  super(**user_attrs)
end

Instance Method Details

#view_template(&block) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/generators/ruby_cms/templates/components/ruby_ui/admin_page/admin_page_header.rb', line 13

def view_template(&block)
  div(class: "flex items-center justify-between gap-2 sm:gap-3 px-3 sm:px-4 py-2.5 border-b border-[#e9e4d4] flex-wrap min-h-12") do
    div(class: "min-w-0 flex-1 flex items-center gap-2 sm:gap-2.5 flex-nowrap") do
      render_sidebar_toggle
      div(class: "min-w-0 flex items-baseline gap-2.5 flex-nowrap overflow-hidden") do
        render_breadcrumbs if @breadcrumbs.any?
        h1(class: "text-[14px] font-semibold tracking-[-0.005em] text-[#1c1917] m-0 truncate leading-snug min-w-0") { @title } if @title.present?
        p(class: "hidden sm:block text-[12px] text-[#78716c] m-0 whitespace-nowrap overflow-hidden text-ellipsis min-w-0") { @subtitle } if @subtitle
      end
      # Left-aligned actions (e.g. visual editor controls) sit next to the breadcrumb.
      div(class: "flex items-center gap-1.5 flex-shrink-0", &block) if @actions_left && block
    end
    div(class: "flex items-center gap-1.5 sm:gap-2 flex-shrink-0 flex-wrap justify-end") do
      if block && !@actions_left
        div(class: "flex items-center gap-1.5 flex-wrap justify-end", &block)
      end
      raw view_context.render(partial: "layouts/admin/topbar_widgets")
    end
  end
end