added codable for VDS
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
94ace3d49a
commit
478f2b6083
@ -57,6 +57,40 @@ extension VDS.Button.Size: RawRepresentableCodable {
|
|||||||
public static var defaultValue: VDS.Button.Size? { nil }
|
public static var defaultValue: VDS.Button.Size? { nil }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension VDS.CalendarBase.CalendarIndicatorModel: Codable {
|
||||||
|
|
||||||
|
enum CodingKeys: String, CodingKey {
|
||||||
|
case label
|
||||||
|
case date
|
||||||
|
case dateFormat
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(from decoder: any Decoder) throws {
|
||||||
|
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||||
|
let label = try container.decode(String.self, forKey: .label)
|
||||||
|
let formatter = Self.formatter()
|
||||||
|
formatter.dateFormat = try container.decodeIfPresent(String.self, forKey: .dateFormat) ?? "MMM d, y"
|
||||||
|
let foundDate = try container.decode(String.self, forKey: .date)
|
||||||
|
let date = formatter.date(from: foundDate)!
|
||||||
|
self = .init(label: label, date: date)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func encode(to encoder: any Encoder) throws {
|
||||||
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||||
|
try container.encode(label, forKey: .label)
|
||||||
|
try container.encode(Self.formatter().string(from: date), forKey: .date)
|
||||||
|
}
|
||||||
|
|
||||||
|
static func formatter() -> DateFormatter {
|
||||||
|
let formatter = DateFormatter()
|
||||||
|
formatter.dateStyle = .medium
|
||||||
|
formatter.timeZone = NSTimeZone.system
|
||||||
|
formatter.locale = .current
|
||||||
|
formatter.formatterBehavior = .default
|
||||||
|
return formatter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Decodable Defaults
|
// MARK: - Decodable Defaults
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user