From f8c6a11199346ebba66e14feff37674ecbc81d91 Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Fri, 3 Mar 2023 17:13:50 -0500 Subject: [PATCH] identifiable streamlining iCloud fix --- MVMCoreUI/Atomic/Atoms/Views/Label/LabelModel.swift | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/Views/Label/LabelModel.swift b/MVMCoreUI/Atomic/Atoms/Views/Label/LabelModel.swift index 10e6a4e5..d1995d19 100644 --- a/MVMCoreUI/Atomic/Atoms/Views/Label/LabelModel.swift +++ b/MVMCoreUI/Atomic/Atoms/Views/Label/LabelModel.swift @@ -7,12 +7,13 @@ // -@objcMembers open class LabelModel: MoleculeModelProtocol { +@objcMembers open class LabelModel: MoleculeModelProtocol, Identifiable { //-------------------------------------------------- // MARK: - Properties //-------------------------------------------------- open class var identifier: String { "label" } + public var id: String public var backgroundColor: Color? public var text: String public var accessibilityText: String? @@ -34,6 +35,7 @@ private enum CodingKeys: String, CodingKey { case moleculeName + case id case text case accessibilityText case textColor @@ -58,7 +60,8 @@ // MARK: - Initializer //-------------------------------------------------- - public init(text: String) { + public init(id: String = UUID().uuidString, text: String) { + self.id = id self.text = text } @@ -78,6 +81,7 @@ required public init(from decoder: Decoder) throws { let typeContainer = try decoder.container(keyedBy: CodingKeys.self) + id = try typeContainer.decodeIfPresent(String.self, forKey: .id) ?? UUID().uuidString text = try typeContainer.decode(String.self, forKey: .text) accessibilityText = try typeContainer.decodeIfPresent(String.self, forKey: .accessibilityText) textColor = try typeContainer.decodeIfPresent(Color.self, forKey: .textColor) @@ -102,6 +106,7 @@ open func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encodeIfPresent(moleculeName, forKey: .moleculeName) + try container.encodeIfPresent(id, forKey: .id) try container.encode(text, forKey: .text) try container.encodeIfPresent(accessibilityText, forKey: .accessibilityText) try container.encodeIfPresent(textColor, forKey: .textColor)