Make alert identifiable
This commit is contained in:
parent
8758c87714
commit
fe99387bcd
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user