Sha256: bf8a7c85b62e89bfb135a30474e730067c7629c4641f0ec0f6f8960e895a32fe
Contents?: true
Size: 813 Bytes
Versions: 5
Compression:
Stored size: 813 Bytes
Contents
# frozen_string_literal: true module Bs5 class AlertComponent < ViewComponent::Base STYLES = %i[primary secondary success danger warning info light dark].freeze attr_reader :color, :is_dismissable include ActiveModel::Validations validates :color, style: true def initialize(color: :primary, is_dismissable: false) @color = color.to_sym @is_dismissable = is_dismissable end def before_render raise errors.full_messages.to_sentence if invalid? end def render? content.present? end private def component_class class_names = ['alert', contextual_class] class_names << %w[alert-dismissible fade show] if is_dismissable class_names.join(' ') end def contextual_class "alert-#{@color}" end end end
Version data entries
5 entries across 5 versions & 1 rubygems