Introduces a SwiftUI companion app for the Fail Well PWA: menu bar status item, popover with task list / record / history views, command palette, and a Dynamic Island-style notch overlay that shows the active step and timer beside the hardware notch and expands on hover to reveal pause/next controls.
23 lines
746 B
Swift
23 lines
746 B
Swift
import Foundation
|
|
|
|
enum BreakCalculator {
|
|
/// Shifts the `start` of any unfinished step records forward by the break duration.
|
|
/// Mirrors `addBreakTimeToStepRecords` from the PWA.
|
|
static func applyingBreakTime(to record: TaskRecord) -> TaskRecord {
|
|
guard let breakTime = record.breakTime, let breakEnd = breakTime.end else {
|
|
return record
|
|
}
|
|
|
|
let diff = breakEnd.timeIntervalSince(breakTime.start)
|
|
|
|
var updated = record
|
|
for (stepId, range) in updated.stepRecords where range.end == nil {
|
|
updated.stepRecords[stepId] = TimeRange(
|
|
start: range.start.addingTimeInterval(diff),
|
|
end: nil
|
|
)
|
|
}
|
|
return updated
|
|
}
|
|
}
|