Sha256: 214bb1c0178e8a90b11e92fc73e10f8fc17873b6d82a35324eed29608634d0ac

Contents?: true

Size: 985 Bytes

Versions: 3

Compression:

Stored size: 985 Bytes

Contents

# frozen_string_literal: true

require 'tramway/navbar'

module Tramway
  module Helpers
    # Providing navbar helpers for ActionView
    module NavbarHelper
      def tramway_navbar(**options)
        initialize_navbar

        yield @navbar if block_given?

        assign_navbar_items(options)

        render_navbar_component(options)
      end

      private

      def initialize_navbar
        @navbar = Tramway::Navbar.new self
      end

      def assign_navbar_items(options)
        navbar_items = @navbar.items
        navbar_items.each do |(key, value)|
          key_to_merge = case key
                         when :left, :right
                           "#{key}_items".to_sym
                         else
                           key
                         end

          options.merge! key_to_merge => value
        end
      end

      def render_navbar_component(options)
        render(Tailwinds::NavbarComponent.new(**options))
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tramway-0.3 lib/tramway/helpers/navbar_helper.rb
tramway-0.2.3 lib/tramway/helpers/navbar_helper.rb
tramway-0.2.2 lib/tramway/helpers/navbar_helper.rb