mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
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.
35 lines
948 B
Swift
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"))
|
|
}
|
|
}
|