Sha256: d273576b70285f7d0b1dd88c5675af69fb430e24d02cd0eff4290712b347563e

Contents?: true

Size: 1.2 KB

Versions: 250

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

class Avo::AlertComponent < ViewComponent::Base
  include Avo::ApplicationHelper

  attr_reader :type
  attr_reader :message

  def initialize(type, message)
    @type = type
    @message = message
  end

  def icon
    return "heroicons/solid/x-circle" if is_error?
    return "heroicons/solid/exclamation" if is_warning?
    return "heroicons/solid/exclamation-circle" if is_info?
    return "heroicons/solid/check-circle" if is_success?

    "check-circle"
  end

  def classes
    return "hidden" if is_empty?

    result = "max-w-lg w-full shadow-lg rounded px-4 py-3 rounded relative border text-white pointer-events-auto"

    result += if is_error?
      " bg-red-400 border-red-600"
    elsif is_success?
      " bg-green-500 border-green-600"
    elsif is_warning?
      " bg-orange-400 border-orange-600"
    elsif is_info?
      " bg-blue-400 border-blue-600"
    end

    result
  end

  def is_error?
    type.to_sym == :error || type.to_sym == :alert
  end

  def is_success?
    type.to_sym == :success
  end

  def is_info?
    type.to_sym == :notice || type.to_sym == :info
  end

  def is_warning?
    type.to_sym == :warning
  end

  def is_empty?
    message.nil?
  end
end

Version data entries

250 entries across 250 versions & 1 rubygems

Version Path
avo-2.53.0 app/components/avo/alert_component.rb
avo-2.52.0 app/components/avo/alert_component.rb
avo-3.9.2 app/components/avo/alert_component.rb
avo-3.9.1 app/components/avo/alert_component.rb
avo-3.8.2 app/components/avo/alert_component.rb
avo-3.9.0 app/components/avo/alert_component.rb
avo-3.8.1 app/components/avo/alert_component.rb
avo-3.8.0 app/components/avo/alert_component.rb
avo-3.6.4 app/components/avo/alert_component.rb
avo-3.6.3 app/components/avo/alert_component.rb
avo-3.6.2 app/components/avo/alert_component.rb
avo-2.49.0 app/components/avo/alert_component.rb
avo-3.6.1 app/components/avo/alert_component.rb
avo-3.6.0 app/components/avo/alert_component.rb
avo-3.5.8 app/components/avo/alert_component.rb
avo-3.5.7 app/components/avo/alert_component.rb
avo-3.5.6 app/components/avo/alert_component.rb
avo-3.5.6.beta1 app/components/avo/alert_component.rb
avo-3.5.5 app/components/avo/alert_component.rb
avo-3.5.4 app/components/avo/alert_component.rb