LabeledDateView.swift 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //
  2. // LabeledDateView.swift
  3. // LoopKitUI
  4. //
  5. // Created by Nathaniel Hamming on 2020-02-20.
  6. // Copyright © 2020 LoopKit Authors. All rights reserved.
  7. //
  8. import SwiftUI
  9. public struct LabeledDateView: View {
  10. var label: String
  11. var date: Date?
  12. var dateFormatter: DateFormatter
  13. private var dateString: String? {
  14. guard let date = self.date else {
  15. return nil
  16. }
  17. return self.dateFormatter.string(from: date)
  18. }
  19. public init(label: String, date: Date?, dateFormatter: DateFormatter) {
  20. self.label = label
  21. self.date = date
  22. self.dateFormatter = dateFormatter
  23. }
  24. public var body: some View {
  25. LabeledValueView(label: label,
  26. value: dateString)
  27. }
  28. }
  29. struct LabeledDateView_Previews: PreviewProvider {
  30. static var previews: some View {
  31. var dateFormatter: DateFormatter {
  32. let formatter = DateFormatter()
  33. formatter.dateStyle = .short
  34. formatter.timeStyle = .short
  35. return formatter
  36. }
  37. return LabeledDateView(label: "Last Calibration",
  38. date: Date(),
  39. dateFormatter: dateFormatter)
  40. }
  41. }