app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb
# frozen_string_literal: true # rubocop:disable Style/HashLikeCase module Playbook module PbFixedConfirmationToast class FixedConfirmationToast < Playbook::KitBase prop :status, type: Playbook::Props::Enum, values: %w[success error neutral tip], default: "neutral" prop :text, type: Playbook::Props::String prop :multi_line, type: Playbook::Props::Boolean, default: false prop :closeable, type: Playbook::Props::Boolean, default: false prop :horizontal, type: Playbook::Props::Enum, values: [nil, "right", "left", "center"], default: nil prop :vertical, type: Playbook::Props::Enum, values: [nil, "top", "bottom"], default: nil prop :auto_close, type: Playbook::Props::Number prop :icon, type: Playbook::Props::String def show_text? text.present? end def close_class closeable.present? ? " remove_toast" : "" end def auto_close_class auto_close.present? ? " auto_close_#{auto_close}" : "" end def position_class horizontal && vertical ? " positioned_toast #{vertical} #{horizontal}" : "" end def multi_line_class multi_line.present? ? "multi_line" : nil end def icon_value icon || case status when "success" "check" when "error" "exclamation-triangle" when "neutral" "info-circle" when "tip" "info-circle" end end def icon_class icon.present? ? " custom_icon" : "" end def classname generate_classname("pb_fixed_confirmation_toast_kit", status, multi_line_class) + close_class + position_class + auto_close_class + icon_class end end end end # rubocop:enable Style/HashLikeCase