fix editing events

This commit is contained in:
neon443
2025-06-15 15:41:37 +01:00
parent 5c667679d5
commit 6533fb85ed
3 changed files with 21 additions and 28 deletions

View File

@@ -28,10 +28,8 @@ struct AddEventView: View {
var isMac: Bool { var isMac: Bool {
if #available(iOS 1, *) { if #available(iOS 1, *) {
return false return false
} else if #available(macOS 10, *) {
return true
} else { } else {
return false return true
} }
} }
@@ -180,6 +178,19 @@ struct AddEventView: View {
} }
} }
} }
ToolbarItem(placement: .confirmationAction) {
if !adding {
Button() {
viewModel.editEvent(event)
dismiss()
} label: {
Text("Done")
.bold()
.foregroundStyle(.blue)
}
.disabled(event.name == "")
}
}
} }
.navigationTitle("Editing \(event.name) - Ne") .navigationTitle("Editing \(event.name) - Ne")
} }

View File

@@ -12,19 +12,6 @@ struct EditEventView: View {
@ObservedObject var viewModel: EventViewModel @ObservedObject var viewModel: EventViewModel
@Binding var event: Event @Binding var event: Event
fileprivate func saveEdits() {
//if there is an event in vM.events with the id of the event we r editing,
//firstindex - loops through the arr and finds first element where that events id matches editing event's id
if let index = viewModel.events.firstIndex(where: { xEvent in
xEvent.id == event.id
}) {
viewModel.events[index] = event
}
viewModel.saveEvents()
dismiss()
}
var body: some View { var body: some View {
AddEventView( AddEventView(
viewModel: viewModel, viewModel: viewModel,
@@ -32,18 +19,6 @@ struct EditEventView: View {
adding: false //bc we editing existing event adding: false //bc we editing existing event
) )
.navigationTitle("Edit Event") .navigationTitle("Edit Event")
.toolbar {
ToolbarItem(placement: .confirmationAction) {
Button() {
saveEdits()
} label: {
Text("Done")
.bold()
.foregroundStyle(.blue)
}
.disabled(event.name == "")
}
}
} }
} }

View File

@@ -222,6 +222,13 @@ class EventViewModel: ObservableObject, @unchecked Sendable {
saveEvents() //sync with icloud saveEvents() //sync with icloud
} }
func editEvent(_ editedEvent: Event) {
if let index = events.firstIndex(where: { editedEvent.id == $0.id }) {
self.events[index] = editedEvent
saveEvents()
}
}
func completeEvent(_ event: inout Event) { func completeEvent(_ event: inout Event) {
withAnimation { event.complete.toggle() } withAnimation { event.complete.toggle() }
let eventToModify = self.events.firstIndex() { currEvent in let eventToModify = self.events.firstIndex() { currEvent in