latest additions for date

This commit is contained in:
Kevin G Christiano 2020-07-28 14:14:20 -04:00
parent f9ce6e9f0f
commit 282fcaea12
2 changed files with 46 additions and 0 deletions

View File

@ -114,11 +114,36 @@ import UIKit
setTextWith(date: datePicker?.date)
}
//--------------------------------------------------
// MARK: - MoleculeViewProtocol
//--------------------------------------------------
public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) {
super.set(with: model, delegateObject, additionalData)
guard let model = model as? DateDropdownEntryFieldModel else { return }
dateFormat = model.dateFormat
if let initialDate = model.initialDate, let date = dateFormatter.date(from: initialDate) {
datePicker?.date = date
setTextWith(date: datePicker?.date)
}
if let minDate = model.minDate {
datePicker?.minimumDate = dateFormatter.date(from: minDate)
}
if let maxDate = model.maxDate {
datePicker?.maximumDate = dateFormatter.date(from: maxDate)
}
}
public override func reset() {
super.reset()
datePicker?.minimumDate = nil
datePicker?.maximumDate = nil
text = nil
}
}

View File

@ -16,6 +16,9 @@
}
public var dateFormat: String = "MMM d, y"
public var initialDate: String?
public var minDate: String?
public var maxDate: String?
//--------------------------------------------------
// MARK: - Keys
@ -23,6 +26,9 @@
private enum CodingKeys: String, CodingKey {
case dateFormat
case initialDate
case minDate
case maxDate
}
//--------------------------------------------------
@ -36,11 +42,26 @@
if let dateFormat = try typeContainer.decodeIfPresent(String.self, forKey: .dateFormat) {
self.dateFormat = dateFormat
}
if let initialDate = try typeContainer.decodeIfPresent(String.self, forKey: .initialDate) {
self.initialDate = initialDate
}
if let minDate = try typeContainer.decodeIfPresent(String.self, forKey: .minDate) {
self.minDate = minDate
}
if let maxDate = try typeContainer.decodeIfPresent(String.self, forKey: .maxDate) {
self.maxDate = maxDate
}
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(dateFormat, forKey: .dateFormat)
try container.encode(initialDate, forKey: .initialDate)
try container.encode(minDate, forKey: .minDate)
try container.encode(maxDate, forKey: .maxDate)
}
}