vds_ios/VDS/Components/Label/LabelModel.swift
Matt Bruce 9e2d5fff47 added Equality to Modelable
added AnyEquality to classes that have an a property with 'any'
added default implementation on shouldUpdateView() to check equality, this can be re-implemented in classes
removed all shouldUpdateView methods everywhere since above was done

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
2022-09-16 09:14:27 -05:00

41 lines
1.2 KiB
Swift

//
// VDSLabelModel.swift
// VDS
//
// Created by Matt Bruce on 7/28/22.
//
import Foundation
import UIKit
public protocol LabelModel: Modelable, Labelable, Equatable, AnyEquatable {
var text: String? { get set }
var attributes: [any LabelAttributeModel]? { get set }
}
public struct DefaultLabelModel: LabelModel {
public static func == (lhs: DefaultLabelModel, rhs: DefaultLabelModel) -> Bool {
lhs.isEqual(rhs)
}
public func isEqual(_ equatable: DefaultLabelModel) -> Bool {
return id == equatable.id
&& attributes == equatable.attributes
&& text == equatable.text
&& surface == equatable.surface
&& typograpicalStyle == equatable.typograpicalStyle
&& textPosition == equatable.textPosition
&& surface == equatable.surface
&& disabled == equatable.disabled
}
public var id = UUID()
public var text: String?
public var attributes: [any LabelAttributeModel]?
public var typograpicalStyle: TypographicalStyle = .BodySmall
public var textPosition: TextPosition = .left
public var surface: Surface = .light
public var disabled: Bool = false
public init(){}
}