reflecting changes to use Date type
This commit is contained in:
parent
282fcaea12
commit
ca9afeef5d
@ -22,18 +22,16 @@ import UIKit
|
||||
return calendar
|
||||
}()
|
||||
|
||||
public var dateFormatter: DateFormatter = {
|
||||
let formatter = DateFormatter()
|
||||
formatter.dateStyle = .medium
|
||||
formatter.timeZone = NSTimeZone.system
|
||||
formatter.locale = .current
|
||||
formatter.formatterBehavior = .default
|
||||
return formatter
|
||||
}()
|
||||
public var dateFormat: String? {
|
||||
set {
|
||||
guard let newValue = newValue else { return }
|
||||
dateDropdownModel?.dateFormat = newValue
|
||||
}
|
||||
get { return dateDropdownModel?.dateFormat }
|
||||
}
|
||||
|
||||
/// Update the property value to alter the format of how the date is presented.
|
||||
public var dateFormat: String = "MMM d, y" {
|
||||
didSet { dateFormatter.dateFormat = dateFormat }
|
||||
public var dateDropdownModel: DateDropdownEntryFieldModel? {
|
||||
return model as? DateDropdownEntryFieldModel
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
@ -96,10 +94,12 @@ import UIKit
|
||||
|
||||
guard let date = date else { return }
|
||||
|
||||
dateDropdownModel?.date = date
|
||||
|
||||
if calendar.isDate(date, inSameDayAs: Date()) {
|
||||
text = MVMCoreUIUtility.hardcodedString(withKey: "textfield_today_string")
|
||||
} else {
|
||||
text = dateFormatter.string(from: date)
|
||||
text = dateDropdownModel?.dateFormatter.string(from: date)
|
||||
}
|
||||
}
|
||||
|
||||
@ -123,19 +123,18 @@ import UIKit
|
||||
|
||||
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
|
||||
if model.date == nil, let initialDate = model.initialDate {
|
||||
|
||||
datePicker?.date = initialDate
|
||||
setTextWith(date: datePicker?.date)
|
||||
}
|
||||
|
||||
if let minDate = model.minDate {
|
||||
datePicker?.minimumDate = dateFormatter.date(from: minDate)
|
||||
datePicker?.minimumDate = minDate
|
||||
}
|
||||
|
||||
if let maxDate = model.maxDate {
|
||||
datePicker?.maximumDate = dateFormatter.date(from: maxDate)
|
||||
datePicker?.maximumDate = maxDate
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -15,16 +15,31 @@
|
||||
return "dateDropdownEntryField"
|
||||
}
|
||||
|
||||
public var dateFormat: String = "MMM d, y"
|
||||
public var initialDate: String?
|
||||
public var minDate: String?
|
||||
public var maxDate: String?
|
||||
public var dateFormatter: DateFormatter = {
|
||||
let formatter = DateFormatter()
|
||||
formatter.dateStyle = .medium
|
||||
formatter.timeZone = NSTimeZone.system
|
||||
formatter.locale = .current
|
||||
formatter.formatterBehavior = .default
|
||||
return formatter
|
||||
}()
|
||||
|
||||
/// Update the property value to alter the format of how the date is presented.
|
||||
public var dateFormat: String = "MMM d, y" {
|
||||
didSet { dateFormatter.dateFormat = dateFormat }
|
||||
}
|
||||
|
||||
public var date: Date?
|
||||
public var initialDate: Date?
|
||||
public var minDate: Date?
|
||||
public var maxDate: Date?
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Keys
|
||||
//--------------------------------------------------
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case date
|
||||
case dateFormat
|
||||
case initialDate
|
||||
case minDate
|
||||
@ -41,18 +56,19 @@
|
||||
|
||||
if let dateFormat = try typeContainer.decodeIfPresent(String.self, forKey: .dateFormat) {
|
||||
self.dateFormat = dateFormat
|
||||
dateFormatter.dateFormat = dateFormat
|
||||
}
|
||||
|
||||
if let initialDate = try typeContainer.decodeIfPresent(String.self, forKey: .initialDate) {
|
||||
self.initialDate = initialDate
|
||||
self.initialDate = dateFormatter.date(from: initialDate)
|
||||
}
|
||||
|
||||
if let minDate = try typeContainer.decodeIfPresent(String.self, forKey: .minDate) {
|
||||
self.minDate = minDate
|
||||
self.minDate = dateFormatter.date(from: minDate)
|
||||
}
|
||||
|
||||
if let maxDate = try typeContainer.decodeIfPresent(String.self, forKey: .maxDate) {
|
||||
self.maxDate = maxDate
|
||||
self.maxDate = dateFormatter.date(from: maxDate)
|
||||
}
|
||||
}
|
||||
|
||||
@ -60,8 +76,18 @@
|
||||
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)
|
||||
try container.encodeIfPresent(date, forKey: .date)
|
||||
|
||||
if let initialDate = initialDate {
|
||||
try container.encode(dateFormatter.string(from: initialDate), forKey: .initialDate)
|
||||
}
|
||||
|
||||
if let minDate = minDate {
|
||||
try container.encode(dateFormatter.string(from: minDate), forKey: .minDate)
|
||||
}
|
||||
|
||||
if let maxDate = maxDate {
|
||||
try container.encode(dateFormatter.string(from: maxDate), forKey: .maxDate)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user