Explorar el Código

Prevent User from changing temp target to 0 minutes, prevent error messaging 'Set a duration' from popping up regularly when creating new TT preset

polscm32 aka Marvout hace 1 año
padre
commit
a460001618

+ 6 - 4
FreeAPS/Sources/Modules/Adjustments/View/TempTargets/AddTempTargetForm.swift

@@ -222,7 +222,10 @@ struct AddTempTargetForm: View {
                         Text("Duration")
                         Spacer()
                         Text(formatHrMin(Int(state.tempTargetDuration)))
-                            .foregroundColor(!displayPickerDuration ? .primary : .accentColor)
+                            .foregroundColor(
+                                !displayPickerDuration ?
+                                    (state.tempTargetDuration > 0 ? .primary : .secondary) : .accentColor
+                            )
                     }
                     .onTapGesture {
                         displayPickerDuration = toggleScrollWheel(displayPickerDuration)
@@ -294,9 +297,8 @@ struct AddTempTargetForm: View {
                             if noNameSpecified { state.tempTargetName = "Custom Target" }
                             didPressSave.toggle()
                             state.isTempTargetEnabled.toggle()
-                            await state.saveCustomTempTarget()
-                            await state.resetTempTargetState()
                             dismiss()
+                            await state.saveCustomTempTarget()
                         }
                     }, label: {
                         Text("Start Temp Target")
@@ -312,8 +314,8 @@ struct AddTempTargetForm: View {
                     Task {
                         if noNameSpecified { state.tempTargetName = "Custom Target" }
                         didPressSave.toggle()
-                        await state.saveTempTargetPreset()
                         dismiss()
+                        await state.saveTempTargetPreset()
                     }
                 }, label: {
                     Text("Save as Preset")

+ 4 - 4
FreeAPS/Sources/Modules/Adjustments/View/TempTargets/EditTempTargetForm.swift

@@ -213,12 +213,12 @@ struct EditTempTargetForm: View {
                         Text("Duration")
                         Spacer()
                         Text(formatHrMin(Int(duration)))
-                            .foregroundColor(!displayPickerDuration ? .primary : .accentColor)
+                            .foregroundColor(!displayPickerDuration ? (duration > 0 ? .primary : .secondary) : .accentColor)
                     }
                     .onTapGesture {
                         displayPickerDuration = toggleScrollWheel(displayPickerDuration)
                     }
-                    .onChange(of: duration) { hasChanges = true }
+//                    .onChange(of: duration) { hasChanges = true }
 
                     if displayPickerDuration {
                         HStack {
@@ -231,7 +231,7 @@ struct EditTempTargetForm: View {
                                         let minutes = Int(truncating: duration as NSNumber) % 60
                                         let totalMinutes = $0 * 60 + minutes
                                         duration = Decimal(totalMinutes)
-                                        hasChanges = true
+                                        hasChanges = duration > 0 ? true : false // prevents the user from setting 0 min
                                     }
                                 ),
                                 label: Text("")
@@ -251,7 +251,7 @@ struct EditTempTargetForm: View {
                                     },
                                     set: {
                                         duration = Decimal((Int(truncating: duration as NSNumber) / 60) * 60 + $0)
-                                        hasChanges = true
+                                        hasChanges = duration > 0 ? true : false
                                     }
                                 ),
                                 label: Text("")