class Avo::AlertComponent

def classes

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 icon

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 initialize(type, message)

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

def is_empty?

def is_empty?
  message.nil?
end

def is_error?

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

def is_info?

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

def is_success?

def is_success?
  type.to_sym == :success
end

def is_warning?

def is_warning?
  type.to_sym == :warning
end