@@ -143,13 +143,21 @@ class LiveActivityManager : LiveActivityManagerProxy {
143143
144144 var presetContext: Preset? = nil
145145 if let override = self . loopSettings. preMealOverride ?? self . loopSettings. scheduleOverride, let start = glucoseSamples. first? . startDate {
146- presetContext = Preset (
147- title: override. getTitle ( ) ,
148- startDate: max ( override. startDate, start) ,
149- endDate: override. duration. isInfinite ? endDateChart : min ( override. actualEndDate, endDateChart) ,
150- minValue: override. settings. targetRange? . lowerBound. doubleValue ( for: unit) ?? 0 ,
151- maxValue: override. settings. targetRange? . upperBound. doubleValue ( for: unit) ?? 0
152- )
146+ let presetStart = max ( override. startDate, start)
147+ let presetEnd = override. duration. isInfinite ? endDateChart : min ( override. actualEndDate, endDateChart)
148+ // Only create a preset if it overlaps the chart window. If the override ended
149+ // before the chart window starts (e.g. spacious mode only shows 2h of history),
150+ // presetEnd < presetStart and drawing a RectangleMark with those backwards dates
151+ // forces SwiftUI Charts to expand the x-axis far into the past.
152+ if presetStart <= presetEnd {
153+ presetContext = Preset (
154+ title: override. getTitle ( ) ,
155+ startDate: presetStart,
156+ endDate: presetEnd,
157+ minValue: override. settings. targetRange? . lowerBound. doubleValue ( for: unit) ?? 0 ,
158+ maxValue: override. settings. targetRange? . upperBound. doubleValue ( for: unit) ?? 0
159+ )
160+ }
153161 }
154162
155163 var glucoseRanges: [ GlucoseRangeValue] = [ ]
0 commit comments