summaryrefslogtreecommitdiffstats
path: root/Solsnu.Widget/Views
diff options
context:
space:
mode:
Diffstat (limited to 'Solsnu.Widget/Views')
-rw-r--r--Solsnu.Widget/Views/MediumWidgetView.swift30
-rw-r--r--Solsnu.Widget/Views/SmallWidgetView.swift38
2 files changed, 41 insertions, 27 deletions
diff --git a/Solsnu.Widget/Views/MediumWidgetView.swift b/Solsnu.Widget/Views/MediumWidgetView.swift
index 69bbbe2..f6fdbd9 100644
--- a/Solsnu.Widget/Views/MediumWidgetView.swift
+++ b/Solsnu.Widget/Views/MediumWidgetView.swift
@@ -7,20 +7,30 @@ struct MediumWidgetView: View {
var body: some View {
HStack(spacing: 12) {
VStack(alignment: .leading, spacing: 8) {
- Text("Season Event")
- .font(.headline)
- .lineLimit(1)
+ if let next = entry.nextEvent {
+ Text(next.shortName)
+ .font(.headline)
+ .lineLimit(1)
- Text("\(entry.def.daysUntilNext()) days")
- .font(.system(.title3, design: .default).weight(.semibold))
+ Text("\(next.daysUntil(from: entry.date)) dager")
+ .font(.system(.title3, design: .default).weight(.semibold))
+ }
- ProgressView(value: Double(entry.def.progressRatio()))
+ ProgressView(value: entry.progressRatio)
- if !entry.def.sunriseFormatted.isEmpty && !entry.def.sunsetFormatted.isEmpty {
+ if let sunrise = entry.sunriseTime, let sunset = entry.sunsetTime {
HStack {
- Text("Sunrise: \(entry.def.sunriseFormatted)")
+ Label {
+ Text(sunrise, style: .time)
+ } icon: {
+ Image(systemName: "sunrise.fill")
+ }
Spacer()
- Text("Sunset: \(entry.def.sunsetFormatted)")
+ Label {
+ Text(sunset, style: .time)
+ } icon: {
+ Image(systemName: "sunset.fill")
+ }
}
.font(.system(size: 12, weight: .regular))
.foregroundStyle(Color(red: 0.152, green: 0.136, blue: 0.056))
@@ -32,6 +42,6 @@ struct MediumWidgetView: View {
Spacer()
}
.padding()
+ .containerBackground(.fill.tertiary, for: .widget)
}
}
-
diff --git a/Solsnu.Widget/Views/SmallWidgetView.swift b/Solsnu.Widget/Views/SmallWidgetView.swift
index 16ca102..b7dbf32 100644
--- a/Solsnu.Widget/Views/SmallWidgetView.swift
+++ b/Solsnu.Widget/Views/SmallWidgetView.swift
@@ -1,30 +1,34 @@
import SwiftUI
import WidgetKit
-import Combine
struct SmallWidgetView: View {
let entry: SolvervEntry
@Environment(\.widgetRenderingMode) var renderingMode
- @Environment(\.locale) var locale
-
+
var body: some View {
- ZStack {
- Image(entry.def.bg)
- VStack(spacing: 8) {
- Text("\(entry.def.daysUntilNext())")
- .font(.system(size: 26, weight: .bold, design: .serif))
- .position(x: 50,y: 50)
- .foregroundStyle(Color(red: 0.152, green: 0.136, blue: 0.056))
- .italic()
+ VStack(spacing: 8) {
+ Text("\(entry.nextEvent?.daysUntil(from: entry.date) ?? 0)")
+ .font(.system(size: 26, weight: .bold, design: .serif))
+ .italic()
+ .foregroundStyle(Color(red: 0.152, green: 0.136, blue: 0.056))
- HStack(spacing: 4) {
- Text("↑ \(entry.def.sunriseFormatted)")
- Text("↓ \(entry.def.sunsetFormatted)")
+ if let sunrise = entry.sunriseTime, let sunset = entry.sunsetTime {
+ HStack(spacing: 4) {
+ Label {
+ Text(sunrise, style: .time)
+ } icon: {
+ Image(systemName: "sunrise.fill")
+ }
+ Label {
+ Text(sunset, style: .time)
+ } icon: {
+ Image(systemName: "sunset.fill")
}
- .font(.system(size: 11, weight: .regular))
- .foregroundStyle(Color(red: 0.152, green: 0.136, blue: 0.056))
+ }
+ .font(.system(size: 11, weight: .regular))
+ .foregroundStyle(Color(red: 0.152, green: 0.136, blue: 0.056))
}
}
- .containerBackground(for: .widget, alignment: .center) { Color.clear }
+ .containerBackground(for: .widget, alignment: .center) { Color.blue }
}
}