TheNoiseClock/TheNoiseClockWidget/AlarmLiveActivityWidget.swift

56 lines
1.8 KiB
Swift

//
// AlarmLiveActivityWidget.swift
// TheNoiseClockWidget
//
// Created by Matt Bruce on 2/2/26.
//
import ActivityKit
import SwiftUI
import WidgetKit
struct AlarmLiveActivityWidget: Widget {
var body: some WidgetConfiguration {
ActivityConfiguration(for: AlarmActivityAttributes.self) { context in
VStack(spacing: 8) {
Text("Next Alarm")
.font(.caption)
.foregroundStyle(.secondary)
Text(context.state.label)
.font(.headline)
Text(context.state.alarmDate, style: .time)
.font(.title2.weight(.bold))
}
.padding()
} dynamicIsland: { context in
DynamicIsland {
DynamicIslandExpandedRegion(.leading) {
Text("Alarm")
.font(.caption)
.foregroundStyle(.secondary)
}
DynamicIslandExpandedRegion(.trailing) {
Text(context.state.alarmDate, style: .time)
.font(.caption2)
}
DynamicIslandExpandedRegion(.center) {
Text(context.state.label)
.font(.headline)
}
DynamicIslandExpandedRegion(.bottom) {
Text("Alarm at \(context.state.alarmDate, style: .time)")
.font(.caption)
}
} compactLeading: {
Image(systemName: "alarm")
} compactTrailing: {
Text(context.state.alarmDate, style: .time)
.font(.caption2)
} minimal: {
Image(systemName: "alarm")
}
}
}
}