56 lines
1.8 KiB
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")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|