Sha256: ebd15ff3f2c9c99333a59fb3c3d972e01340a09660d76a8bda2ac5987c6d7705

Contents?: true

Size: 719 Bytes

Versions: 2

Compression:

Stored size: 719 Bytes

Contents

# frozen_string_literal: true

module Accordion
  def default_plus_passed_classes(defaults, classes)
    "#{defaults} #{classes}".strip
  end

  module_function :default_plus_passed_classes

  class AccordionComponent < ViewComponent::Base
    renders_many :items, AccordionItemComponent

    def initialize(**options)
      @id = options[:id]
      @classses = options[:classses]
      @styles = options[:styles]

      @default_classses = 'accordion'
    end

    private

    def styles
      @styles if @styles.present?
    end

    def id
      "id=#{@id}" if @id
    end

    def classes
      "class=#{Accordion.default_plus_passed_classes(
        @default_classses,
        @classes
      )}"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bsvc-0.1.2 app/components/accordion/accordion_component.rb
bsvc-0.1.1 app/components/accordion/accordion_component.rb