import SwiftUI /// Toggle + time picker that drives an optional reminder time. Designed to sit /// inside a Form Section or a VStack. Requests notification permission when the /// user first switches the reminder on. Scheduling is the caller's job. struct ReminderEditor: View { @Binding var reminderTime: Date? @State private var enabled: Bool @State private var time: Date init(reminderTime: Binding) { _reminderTime = reminderTime _enabled = State(initialValue: reminderTime.wrappedValue != nil) _time = State(initialValue: reminderTime.wrappedValue ?? NotificationManager.defaultTime) } var body: some View { Group { Toggle(isOn: $enabled) { Label("Tägliche Erinnerung", systemImage: "bell.fill") } .onChange(of: enabled) { _, isOn in reminderTime = isOn ? time : nil if isOn { Task { await NotificationManager.requestAuthorization() } } } if enabled { DatePicker("Uhrzeit", selection: $time, displayedComponents: .hourAndMinute) .onChange(of: time) { _, newValue in reminderTime = newValue } } } } }