Просмотр исходного кода

fix TT to have target value only change HBT

Robert 5 месяцев назад
Родитель
Сommit
82989242f5

+ 7 - 1
Trio/Sources/Modules/Adjustments/View/TempTargets/AddTempTargetForm.swift

@@ -101,7 +101,13 @@ struct AddTempTargetForm: View {
                     toggleScrollWheel: toggleScrollWheel
                 )
                 .onChange(of: state.tempTargetTarget) {
-                    state.percentage = state.computeAdjustedPercentage()
+                    // when first setting a custom sensitivity the settings HBT is used and therefore we calculate the sensitivity
+                    if state.halfBasalTarget == state.settingHalfBasalTarget {
+                        state.percentage = state.computeAdjustedPercentage()
+                    } else {
+                        // else when changing target value and the already adjusted HBT is used, keep the sensitivity and adjust the HBT instead
+                        state.halfBasalTarget = Decimal(state.computeHalfBasalTarget())
+                    }
                 }
             }
             .listRowBackground(Color.chart)

+ 3 - 1
Trio/Sources/Modules/Adjustments/View/TempTargets/EditTempTargetForm.swift

@@ -151,7 +151,9 @@ struct EditTempTargetForm: View {
                     toggleScrollWheel: toggleScrollWheel
                 )
                 .onChange(of: target) {
-                    percentage = state.computeAdjustedPercentage(usingHBT: halfBasalTarget, usingTarget: target)
+                    // percentage = state.computeAdjustedPercentage(usingHBT: halfBasalTarget, usingTarget: target)
+                    // target value changes shall not alter the sensitivity, instead calculate new hbt with sensitivity from slider
+                    halfBasalTarget = Decimal(state.computeHalfBasalTarget(usingTarget: target, usingPercentage: percentage))
                 }
             }
             .listRowBackground(Color.chart)