Skip to content

Commit

Permalink
Fix adding a break
Browse files Browse the repository at this point in the history
The relationship between TimeEntry and BreakEntry needs to be precisely defined for SwiftData to behave as expected when appending a BreakEntry to an existing TimeEntry.
  • Loading branch information
madbranch committed Jan 16, 2025
1 parent 792a8c5 commit e33d2f3
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 2 deletions.
3 changes: 2 additions & 1 deletion Shared/BreakEntry.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import SwiftData

@Model
class BreakEntry: Codable {
init(start: Date, end: Date) {
init(start: Date, end: Date, timeEntry: TimeEntry? = nil) {
assert(BreakEntry.isZeroSecond(start))
assert(BreakEntry.isZeroSecond(end))
self.start = start
Expand All @@ -16,6 +16,7 @@ class BreakEntry: Codable {
end = try container.decode(Date.self, forKey: .end)
}

var timeEntry: TimeEntry?
var start: Date
var end: Date

Expand Down
1 change: 1 addition & 0 deletions Shared/TimeEntry.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ public class TimeEntry: Encodable {
var start: Date
var end: Date
var notes: String = ""
@Relationship(deleteRule: .cascade, inverse: \BreakEntry.timeEntry)
var breaks = [BreakEntry]()
init(from start: Date, to end: Date, notes: String = "") {
self.start = start
Expand Down
2 changes: 1 addition & 1 deletion TimeKeen/Views/PayPeriods/TimeEntryDetails.swift
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ struct TimeEntryDetails: View {
IntervalDatePicker(selection: $breakEnd, minuteInterval: minuteInterval, in: timeEntry.start...timeEntry.end, displayedComponents: [.date, .hourAndMinute])
}
Button(action: {
timeEntry.breaks.append(BreakEntry(start: breakStart, end: breakEnd))
timeEntry.breaks.append(BreakEntry(start: breakStart, end: breakEnd, timeEntry: timeEntry))
isAddingBreak = false
}) {
Text("Add Break")
Expand Down

0 comments on commit e33d2f3

Please sign in to comment.