// Single button presets and config
public enum SingleButtonAlertStyle: Equatable {
    public struct TextCopy: Equatable, Codable {
        static let empty: TextCopy = .init(title: "", description: "", buttonLabel: "")

        let showIcon: Bool
        let showClose: Bool
        let title: String
        let description: String
        let buttonLabel: String

        public init(showIcon: Bool = true, showClose: Bool = false, title: String, description: String, buttonLabel: String) {
            self.showIcon = showIcon
            self.showClose = showClose
            self.title = title
            self.description = description
            self.buttonLabel = buttonLabel
        }
    }

    public static func == (lhs: SingleButtonAlertStyle, rhs: SingleButtonAlertStyle) -> Bool {
        return lhs.textCopy == rhs.textCopy
    }

    case preset(SingleButtonAlertStyle.Preset)
    case custom(SingleButtonAlertStyle.TextCopy)

    public var textCopy: SingleButtonAlertStyle.TextCopy {
        switch self {
        case .preset(let preset): return preset.textCopy
        case .custom(let copyData): return copyData
        }
    }
}
