vds_ios/VDS/Components/Button/ButtonModel.swift
Jarrod Courtney fcef842397 start of button
Signed-off-by: Jarrod Courtney <jarrod.courtney@gmail.com>
2022-09-23 11:05:37 -05:00

43 lines
1.2 KiB
Swift

//
// ButtonModel.swift
// VDS
//
// Created by Jarrod Courtney on 9/16/22.
//
import Foundation
import UIKit
public protocol ButtonModel: Modelable, Useable, Equatable, AnyEquatable {
var text: String? { get set }
var attributes: [any LabelAttributeModel]? { get set }
}
public struct DefaultButtonModel: ButtonModel {
public static func == (lhs: DefaultButtonModel, rhs: DefaultButtonModel) -> Bool {
lhs.isEqual(rhs)
}
public func isEqual(_ equatable: DefaultButtonModel) -> Bool {
return id == equatable.id
&& attributes == equatable.attributes
&& text == equatable.text
&& surface == equatable.surface
&& use == equatable.use
&& typograpicalStyle == equatable.typograpicalStyle
&& disabled == equatable.disabled
&& buttonWidth == equatable.buttonWidth
}
public var id = UUID()
public var text: String?
public var attributes: [any LabelAttributeModel]?
public var typograpicalStyle: TypographicalStyle = .BoldBodyLarge
public var surface: Surface = .light
public var use: Use = .primary
public var disabled: Bool = false
public var buttonWidth: CGFloat?
public init(){}
}