summaryrefslogtreecommitdiff
path: root/watchos/InfiniSolar/InfiniSolar WatchKit Extension/GenerationView.swift
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2023-01-04 04:04:03 +0300
committerEvgeny Zinoviev <me@ch1p.io>2023-01-04 04:04:03 +0300
commitbb32e56ca28bb43d5d5afef737f25e4725887725 (patch)
tree519388eb284adeb47744a9ebc334bdf9ff5444a6 /watchos/InfiniSolar/InfiniSolar WatchKit Extension/GenerationView.swift
parentd549f428cbbd54c49a90f92928e670d373c4a0d9 (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.swift67
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()
+ }
+}