Andromida/AndromidaWidget/Views/AndromidaWidgetView.swift

80 lines
1.9 KiB
Swift

import SwiftUI
import WidgetKit
import Bedrock
struct AndromidaWidgetView: View {
var entry: WidgetEntry
@Environment(\.widgetFamily) var family
var body: some View {
switch family {
case .systemSmall:
SmallWidgetView(entry: entry)
.widgetURL(URL(string: "andromida://today"))
case .systemMedium:
MediumWidgetView(entry: entry)
.widgetURL(URL(string: "andromida://today"))
case .systemLarge:
LargeWidgetView(entry: entry)
.widgetURL(URL(string: "andromida://today"))
default:
SmallWidgetView(entry: entry)
.widgetURL(URL(string: "andromida://today"))
}
}
}
// MARK: - Branding Colors Helper
extension Color {
static let brandingPrimary = Color(red: 0.12, green: 0.09, blue: 0.08)
static let brandingAccent = Color(red: 0.95, green: 0.60, blue: 0.45) // Matches the orange-ish accent in your app
}
// MARK: - Previews for Testing Time-of-Day Changes
#Preview("Morning", as: .systemMedium) {
AndromidaWidget()
} timeline: {
WidgetEntry.morningPreview
}
#Preview("Midday", as: .systemMedium) {
AndromidaWidget()
} timeline: {
WidgetEntry.middayPreview
}
#Preview("Afternoon", as: .systemMedium) {
AndromidaWidget()
} timeline: {
WidgetEntry.afternoonPreview
}
#Preview("Evening", as: .systemMedium) {
AndromidaWidget()
} timeline: {
WidgetEntry.eveningPreview
}
#Preview("Night", as: .systemMedium) {
AndromidaWidget()
} timeline: {
WidgetEntry.nightPreview
}
#Preview("Empty State", as: .systemMedium) {
AndromidaWidget()
} timeline: {
WidgetEntry.emptyPreview
}
#Preview("Large - All Times", as: .systemLarge) {
AndromidaWidget()
} timeline: {
WidgetEntry.morningPreview
WidgetEntry.middayPreview
WidgetEntry.afternoonPreview
WidgetEntry.eveningPreview
WidgetEntry.nightPreview
}