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