learning_ai_clock/ios/ChronoMindWatch/Views/WatchQuickTimerView.swift

56 lines
2.1 KiB
Swift

// Watch Quick Timer View
// One-tap preset timers for Apple Watch
import SwiftUI
import WatchKit
struct WatchQuickTimerView: View {
@EnvironmentObject var store: WatchTimerStore
@Environment(\.dismiss) private var dismiss
private let presets: [(minutes: Int, label: String, icon: String)] = [
(5, "5 min", "5.circle.fill"),
(10, "10 min", "10.circle.fill"),
(15, "15 min", "15.circle.fill"),
(25, "Pomodoro", "target"),
(30, "30 min", "30.circle.fill"),
(45, "45 min", "45.circle.fill"),
(60, "1 hour", "clock.fill"),
(90, "1.5 hours", "clock.badge.checkmark"),
]
var body: some View {
ScrollView {
LazyVGrid(columns: [GridItem(.flexible()), GridItem(.flexible())], spacing: 8) {
ForEach(presets, id: \.minutes) { preset in
Button {
createTimer(preset)
} label: {
VStack(spacing: 4) {
Image(systemName: preset.icon)
.font(.system(size: 18))
.foregroundStyle(.blue)
Text(preset.label)
.font(.system(size: 12, weight: .medium))
.lineLimit(1)
}
.frame(maxWidth: .infinity)
.padding(.vertical, 10)
.background(.blue.opacity(0.1))
.clipShape(RoundedRectangle(cornerRadius: 10))
}
.buttonStyle(.plain)
}
}
.padding(.horizontal, 4)
}
.navigationTitle("Quick Timer")
.navigationBarTitleDisplayMode(.inline)
}
private func createTimer(_ preset: (minutes: Int, label: String, icon: String)) {
store.createQuickTimer(minutes: preset.minutes, label: "\(preset.label) Timer")
dismiss()
}
}