Module: MaquinaComponents::SidebarHelper

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

Instance Method Summary collapse

Instance Method Details

Check if sidebar is currently closed

Examples:

<% if sidebar_closed? %>
  <!-- Show expanded content when sidebar is closed -->
<% end %>

Parameters:

  • cookie_name (String) (defaults to: "sidebar_state")

    The cookie name (default: "sidebar_state")

Returns:

  • (Boolean)

    true if sidebar is closed



59
60
61
# File 'app/helpers/maquina_components/sidebar_helper.rb', line 59

def sidebar_closed?(cookie_name = "sidebar_state")
  sidebar_state(cookie_name) == :collapsed
end

Check if sidebar is currently open

Examples:

<% if sidebar_open? %>
  <!-- Show sidebar-specific content -->
<% end %>

Parameters:

  • cookie_name (String) (defaults to: "sidebar_state")

    The cookie name (default: "sidebar_state")

Returns:

  • (Boolean)

    true if sidebar is open



45
46
47
# File 'app/helpers/maquina_components/sidebar_helper.rb', line 45

def sidebar_open?(cookie_name = "sidebar_state")
  sidebar_state(cookie_name) == :expanded
end

Get sidebar state from cookie

Reads the sidebar state cookie and returns a String. Use this to set the state value in the sidebar to ensure server-rendered state matches client state.

Examples:

In layout

<%= render "components/sidebar",
  state: sidebar_state do %>
  <!-- content -->
<% end %>

With custom cookie name

<%= render "components/sidebar",
  state: sidebar_state("custom_sidebar_cookie") do %>
  <!-- content -->
<% end %>

Parameters:

  • cookie_name (String) (defaults to: "sidebar_state")

    The cookie name (default: "sidebar_state")

Returns:

  • (String)

    expanded if sidebar should be open, collapsed otherwise



24
25
26
27
28
29
30
31
32
33
# File 'app/helpers/maquina_components/sidebar_helper.rb', line 24

def sidebar_state(cookie_name = "sidebar_state")
  # Read cookie value
  cookie_value = cookies[cookie_name]

  # Default to expanded when no cookie exists
  return :expanded if cookie_value.nil?

  # Return expanded if cookie says "true", otherwise collapsed
  (cookie_value == "true") ? :expanded : :collapsed
end