module Components::AlertHelper
  def render_alert(title:, description: nil, variant: :default, icon: true, &block)
    alert_classes = case variant.to_sym
    when :default
      "[&>svg]:text-foreground bg-background text-foreground"
    when :error, :danger, :alert, :destructive
      "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
    when :success
      "border-success/50 text-success dark:border-success [&>svg]:text-success"
    when :info
      "border-info/50 text-info dark:border-info [&>svg]:text-info"
    when :attention
      "border-attention/50 text-attention dark:border-attention [&>svg]:text-attention"
    end
    content = (capture(&block) if block) || description
    render "components/ui/alert", title:, content:, alert_classes:, variant:, icon:
  end
end