diff options
| author | ivar <i@oiee.no> | 2026-05-07 01:24:28 +0200 |
|---|---|---|
| committer | ivar <i@oiee.no> | 2026-05-07 01:24:28 +0200 |
| commit | 6eb17a18e901e2d7faa219d7e5a79083a5891dc9 (patch) | |
| tree | 3d0796e1e567864dfdf7c675f7e8a5a40fb51a95 /Solsnu.Widget/Views | |
| parent | 4fb690150b77afced6453e6bdb14cc4cf00d5305 (diff) | |
| download | solverv-6eb17a18e901e2d7faa219d7e5a79083a5891dc9.tar.xz solverv-6eb17a18e901e2d7faa219d7e5a79083a5891dc9.zip | |
Diffstat (limited to 'Solsnu.Widget/Views')
| -rw-r--r-- | Solsnu.Widget/Views/MediumWidgetView.swift | 30 | ||||
| -rw-r--r-- | Solsnu.Widget/Views/SmallWidgetView.swift | 38 |
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 } } } |
