Module: MaquinaComponents::BreadcrumbsHelper

Defined in:
app/helpers/maquina_components/breadcrumbs_helper.rb

Overview

Breadcrumbs Helper

Provides helper methods for rendering breadcrumb navigation. Supports both simple hash-based API and composable partials.

Instance Method Summary collapse

Instance Method Details

Render breadcrumbs from a hash of links

Examples:

Basic usage

breadcrumbs({"Home" => root_path, "Users" => users_path}, "John Doe")

Without current page

breadcrumbs({"Home" => root_path, "Users" => users_path})

Parameters:

  • links (Hash) (defaults to: {})

    Hash of text => path pairs

  • current_page (String, nil) (defaults to: nil)

    Text for current page (no link)

  • css_classes (String) (defaults to: "")

    Additional CSS classes for nav element

Returns:

  • (String)

    HTML string



23
24
25
26
27
28
29
# File 'app/helpers/maquina_components/breadcrumbs_helper.rb', line 23

def breadcrumbs(links = {}, current_page = nil, css_classes: "")
  render "components/breadcrumbs", css_classes: css_classes do
    render "components/breadcrumbs/list" do
      build_breadcrumb_items(links, current_page, responsive: false)
    end
  end
end

#responsive_breadcrumbs(links = {}, current_page = nil, css_classes: "", collapse_after: 0) ⇒ String

Render responsive breadcrumbs that auto-collapse on overflow

Uses Stimulus controller to hide middle items when space is limited, showing an ellipsis element instead.

Examples:

responsive_breadcrumbs(
  {"Home" => root_path, "Docs" => docs_path, "Components" => components_path},
  "Button"
)

Parameters:

  • links (Hash) (defaults to: {})

    Hash of text => path pairs

  • current_page (String, nil) (defaults to: nil)

    Text for current page (no link)

  • css_classes (String) (defaults to: "")

    Additional CSS classes for nav element

Returns:

  • (String)

    HTML string



47
48
49
50
51
52
53
# File 'app/helpers/maquina_components/breadcrumbs_helper.rb', line 47

def responsive_breadcrumbs(links = {}, current_page = nil, css_classes: "", collapse_after: 0)
  render "components/breadcrumbs", css_classes: css_classes, responsive: true, collapse_after: collapse_after do
    render "components/breadcrumbs/list" do
      build_breadcrumb_items(links, current_page, responsive: true)
    end
  end
end