Meshtastic-Apple/Meshtastic/Views/Helpers/LastHeardText.swift
Blake McAnally 4d547e48db This change fixes several lint errors throughout the project, and moves the SwiftLint build phase to before compilation.
After this change, a developer can now clone the project and run without the build failing due to lint errors! 😃

* I ran `swiftlint --fix` to resolve many auto-correctable issues (mostly whitespace)
* Excluded the `Meshtastic/Protobufs` directory from lint, since that code is automatically generated.
* Converted some single letter method parameters to lowercase.
* Converted several instances `force_cast` to instead use `guard` or `if let` to unwrap optional values. During this change, some of the SwiftUI views became "too complex to be solved in a reasonable time", so I broke up the views into distinct sub-expressions.

I was able to build and run the app on an iOS simulator.
2024-05-31 21:48:50 -05:00

35 lines
948 B
Swift

import SwiftUI
//
// LastHeardText.swift
// Meshtastic Apple
//
// Created by Garth Vander Houwen on 5/25/22.
//
struct LastHeardText: View {
var lastHeard: Date?
let sixMonthsAgo = Calendar.current.date(byAdding: .month, value: -6, to: Date())
static let formatter: RelativeDateTimeFormatter = {
let formatter = RelativeDateTimeFormatter()
formatter.unitsStyle = .full
return formatter
}()
var body: some View {
if lastHeard != nil && lastHeard! >= sixMonthsAgo! {
Text(lastHeard?.formatted() ?? "unknown.age".localized)
} else {
Text("unknown.age")
}
}
}
struct LastHeardText_Previews: PreviewProvider {
static var previews: some View {
LastHeardText(lastHeard: Date())
.previewLayout(.fixed(width: 300, height: 100))
.environment(\.locale, .init(identifier: "en"))
LastHeardText(lastHeard: Date())
.previewLayout(.fixed(width: 300, height: 100))
.environment(\.locale, .init(identifier: "de"))
}
}