Sha256: 8e8a8b055c882f0b174a132a45e78a90cd9ebdd6fe8356917e2a3f492e9b0299

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

module MaterialDesign
  module MenuHelper
    def md_menu(menu_options: [], data: {}, form: nil, attribute: nil)
      content_tag(:div, class: "menu", data: data) do
        menu_options.each do |option|
          concat(menu_option(option, form, attribute))
        end
      end
    end

    def menu_option(option, form, attribute)
      if option[:path]
        link_to option[:path], data: option[:data], method: option[:method] do
          content_tag(:div, class: class_names("menu__item", divider: option[:divider])) do
            concat(render("material_design/icons/icon", locals: { icon: option[:icon], size: 18 })) if option[:icon]
            concat(content_tag(:span, option[:label]))
          end
        end
      elsif form
        form.label "#{attribute}_#{option[:value]}", option[:label] do
          concat(form.radio_button attribute, option[:value], class: "hidden", onchange: option[:onchange], checked: option[:checked])
          concat(content_tag(:div, class: class_names("menu__item", divider: option[:divider])) do
            concat(render("material_design/icons/icon", locals: { icon: option[:icon], size: 18 })) if option[:icon]
            concat(content_tag(:span, option[:label]))
          end)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
material_design-0.10.0 app/helpers/material_design/menu_helper.rb