Sha256: 4c7b1f8f405e27a7c81e3c741dbf46edc5a87e00fd7b5b43883c8df4b3042800

Contents?: true

Size: 1.41 KB

Versions: 10

Compression:

Stored size: 1.41 KB

Contents

# frozen_string_literal: true

module Bulmacomp
  # Make an html structure for a bulma breadcrumb
  #
  # @example Empty modal:
  #   = render Bulmacomp::PanelComponent.new()
  #
  #   <div class="modal">
  #     <div class="modal-background"></div>
  #     <div class="modal-content"></div>
  #     <button class="modal-close is-large" aria-label="close"></button>
  #   </div>
  #
  # @example Modal with content:
  #   = render Bulmacomp::PanelComponent.new() do
  #     %p some content
  #
  #   <div class="modal">
  #     <div class="modal-background"></div>
  #     <div class="modal-content"><p>Some content</p></div>
  #     <button class="modal-close is-large" aria-label="close"></button>
  #   </div>
  class ModalComponent < ViewComponent::Base
    # @param [Hash] opts options to generate content
    # @option opts [String] :* each key going as tag option, default is class: 'modal'
    # @yield [optional] modal content
    def initialize(**opts)
      super
      @opts = { class: 'modal' }.merge opts
    end

    # return [String] html_safe generated bulma modal
    def call
      content_tag :div, safe_join([
                                    tag.div(class: 'modal-background'),
                                    tag.div(content, class: 'modal-content'),
                                    tag.button(class: 'modal-close is-large', aria_label: 'close')
                                  ]), **@opts
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
bulmacomp-1.1.1 app/components/bulmacomp/modal_component.rb
bulmacomp-1.1.0 app/components/bulmacomp/modal_component.rb
bulmacomp-1.0.4 app/components/bulmacomp/modal_component.rb
bulmacomp-1.0.3 app/components/bulmacomp/modal_component.rb
bulmacomp-1.0.2 app/components/bulmacomp/modal_component.rb
bulmacomp-1.0.1 app/components/bulmacomp/modal_component.rb
bulmacomp-1.0.0 app/components/bulmacomp/modal_component.rb
bulmacomp-0.1.2 app/components/bulmacomp/modal_component.rb
bulmacomp-0.1.1 app/components/bulmacomp/modal_component.rb
bulmacomp-0.1.0 app/components/bulmacomp/modal_component.rb