summaryrefslogtreecommitdiffstats
path: root/Solsnu.Widget/Views/MediumWidgetView.swift
diff options
context:
space:
mode:
authorivar <i@oiee.no>2026-03-23 16:40:55 +0100
committerivar <i@oiee.no>2026-03-23 16:40:55 +0100
commite45dd001f178a640e1f799616868accb4254c313 (patch)
treee26f7f8d6d9e6135e5a88bf16a12d63d18a81eb0 /Solsnu.Widget/Views/MediumWidgetView.swift
parenta8fe9dafa7abc99490bda842e4062e08faaf70f5 (diff)
downloadsolverv-e45dd001f178a640e1f799616868accb4254c313.tar.xz
solverv-e45dd001f178a640e1f799616868accb4254c313.zip
feat: add widget views for small, medium, and large sizes
Diffstat (limited to 'Solsnu.Widget/Views/MediumWidgetView.swift')
-rw-r--r--Solsnu.Widget/Views/MediumWidgetView.swift36
1 files changed, 36 insertions, 0 deletions
diff --git a/Solsnu.Widget/Views/MediumWidgetView.swift b/Solsnu.Widget/Views/MediumWidgetView.swift
new file mode 100644
index 0000000..6f1c8e9
--- /dev/null
+++ b/Solsnu.Widget/Views/MediumWidgetView.swift
@@ -0,0 +1,36 @@
+import SwiftUI
+import WidgetKit
+
+struct MediumWidgetView: View {
+ let entry: SolvervEntry
+
+ var body: some View {
+ HStack(spacing: 12) {
+ // Left: Emoji
+ Text(entry.emoji)
+ .font(.system(size: 60))
+
+ // Right: Info
+ VStack(alignment: .leading, spacing: 8) {
+ Text("Season Event")
+ .font(.headline)
+ .lineLimit(1)
+
+ Text("\(entry.def.daysUntilNext()) days")
+ .font(.system(.title3, design: .default).weight(.semibold))
+
+ ProgressView(value: Double(entry.def.progressRatio()))
+
+ Spacer()
+ }
+
+ Spacer()
+ }
+ .padding()
+ }
+}
+
+#Preview {
+ let entry = SolvervEntry(def: SolvervDef(utcString: "2026-12-21 20:50:00"))
+ MediumWidgetView(entry: entry)
+}