Merge branch 'feature/alert_identifiable' into 'develop'

Make alert identifiable

### Summary
Make Alert identifiable.

Co-authored-by: Scott Pfeil <Scott.Pfeil3@verizonwireless.com>

See merge request https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui/-/merge_requests/954
This commit is contained in:
Pfeil, Scott Robert 2023-05-04 18:13:44 +00:00
commit 54cbe0dd77

View File

@ -64,7 +64,7 @@ public struct AlertButtonModel: Codable {
} }
} }
public struct AlertModel: Codable, AlertModelProtocol { public struct AlertModel: Codable, Identifiable, AlertModelProtocol {
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Properties // MARK: - Properties
@ -75,6 +75,7 @@ public struct AlertModel: Codable, AlertModelProtocol {
public var preferredStyle: UIAlertController.Style = .alert public var preferredStyle: UIAlertController.Style = .alert
public var buttonModels: [AlertButtonModel] public var buttonModels: [AlertButtonModel]
public var analyticsData: JSONValueDictionary? public var analyticsData: JSONValueDictionary?
public var id: String
public var delegateObject: DelegateObject? public var delegateObject: DelegateObject?
@ -99,11 +100,13 @@ public struct AlertModel: Codable, AlertModelProtocol {
// MARK: - Init // MARK: - Init
//-------------------------------------------------- //--------------------------------------------------
public init(title: String, message: String, buttonModels: [AlertButtonModel], style: UIAlertController.Style = .alert, delegateObject: DelegateObject?) { public init(title: String, message: String, buttonModels: [AlertButtonModel], style: UIAlertController.Style = .alert, delegateObject: DelegateObject?, id: String = UUID().uuidString) {
self.title = title self.title = title
self.message = message self.message = message
self.buttonModels = buttonModels self.buttonModels = buttonModels
self.preferredStyle = style self.preferredStyle = style
self.delegateObject = delegateObject
self.id = id
} }
//-------------------------------------------------- //--------------------------------------------------
@ -116,6 +119,7 @@ public struct AlertModel: Codable, AlertModelProtocol {
case alertActions case alertActions
case style case style
case analyticsData case analyticsData
case id
} }
//-------------------------------------------------- //--------------------------------------------------
@ -133,6 +137,7 @@ public struct AlertModel: Codable, AlertModelProtocol {
if let style = try typeContainer.decodeIfPresent(String.self, forKey: .style) { if let style = try typeContainer.decodeIfPresent(String.self, forKey: .style) {
self.preferredStyle = UIAlertController.Style(rawValue: style) self.preferredStyle = UIAlertController.Style(rawValue: style)
} }
id = try typeContainer.decodeIfPresent(String.self, forKey: .id) ?? UUID().uuidString
} }
public func encode(to encoder: Encoder) throws { public func encode(to encoder: Encoder) throws {
@ -142,6 +147,7 @@ public struct AlertModel: Codable, AlertModelProtocol {
try container.encodeIfPresent(buttonModels, forKey: .alertActions) try container.encodeIfPresent(buttonModels, forKey: .alertActions)
try container.encode(preferredStyle.rawValueString, forKey: .style) try container.encode(preferredStyle.rawValueString, forKey: .style)
try container.encodeIfPresent(analyticsData, forKey: .analyticsData) try container.encodeIfPresent(analyticsData, forKey: .analyticsData)
try container.encode(id, forKey: .id)
} }
} }