diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2023-01-04 04:04:03 +0300 |
---|---|---|
committer | Evgeny Zinoviev <me@ch1p.io> | 2023-01-04 04:04:03 +0300 |
commit | bb32e56ca28bb43d5d5afef737f25e4725887725 (patch) | |
tree | 519388eb284adeb47744a9ebc334bdf9ff5444a6 /watchos/InfiniSolar/InfiniSolar WatchKit Extension/GenerationView.swift | |
parent | d549f428cbbd54c49a90f92928e670d373c4a0d9 (diff) |
move watchos app sources here (which should be rewritten anyway, and usable only in very specific conditions)
Diffstat (limited to 'watchos/InfiniSolar/InfiniSolar WatchKit Extension/GenerationView.swift')
-rw-r--r-- | watchos/InfiniSolar/InfiniSolar WatchKit Extension/GenerationView.swift | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/watchos/InfiniSolar/InfiniSolar WatchKit Extension/GenerationView.swift b/watchos/InfiniSolar/InfiniSolar WatchKit Extension/GenerationView.swift new file mode 100644 index 0000000..f9d9c5e --- /dev/null +++ b/watchos/InfiniSolar/InfiniSolar WatchKit Extension/GenerationView.swift @@ -0,0 +1,67 @@ +// +// GenerationView.swift +// InfiniSolar WatchKit Extension +// +// Created by Evgeny Zinoviev on 08.08.2021. +// + +import SwiftUI + +struct GenerationView: View { + @ObservedObject var state = InverterGenerationState() + + var body: some View { + VStack(alignment: .leading) { + Text("Generation") + .font(.title2) + .fontWeight(.thin) + Spacer().frame(height: 10) + + if self.state.failed == true { + Text("Error while fetching info.") + .multilineTextAlignment(.leading) + + Spacer().frame(height: 10) + + Button(action:{ + self.state.fetch() + }) { + Text("Retry") + } + } else if !self.state.done { + ProgressView().progressViewStyle(CircularProgressViewStyle()) + } else { + Text("Today: ") + + Text(String(self.state.today) + " Wh").fontWeight(.thin) + + if self.state.yesterday > 0 { + Spacer().frame(height: 5) + Text("Yesterday: ") + + Text(String(self.state.yesterday) + " Wh").fontWeight(.thin) + } + + if self.state.dayBeforeYesterday > 0 { + Spacer().frame(height: 5) + Text("The day before yesterday: ") + + Text(String(self.state.dayBeforeYesterday) + " Wh").fontWeight(.thin) + } + } + }.frame( + minWidth: 0, + maxWidth: .infinity, + minHeight: 0, + maxHeight: .infinity, + alignment: .topLeading + ).onAppear() { + self.state.fetch() + }.onDisappear() { + self.state.stop() + } + } +} + +struct GenerationView_Previews: PreviewProvider { + static var previews: some View { + GenerationView() + } +} |