80 lines
1.9 KiB
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
|
|
}
|