From 6533fb85edc7bc102f816cdac04011d4e89d55c9 Mon Sep 17 00:00:00 2001 From: neon443 <69979447+neon443@users.noreply.github.com> Date: Sun, 15 Jun 2025 15:41:37 +0100 Subject: [PATCH] fix editing events --- NearFuture/Views/Events/AddEventView.swift | 17 +++++++++++--- NearFuture/Views/Events/EditEventView.swift | 25 --------------------- Shared/Model/Events.swift | 7 ++++++ 3 files changed, 21 insertions(+), 28 deletions(-) diff --git a/NearFuture/Views/Events/AddEventView.swift b/NearFuture/Views/Events/AddEventView.swift index 9ba51d0..28d288c 100644 --- a/NearFuture/Views/Events/AddEventView.swift +++ b/NearFuture/Views/Events/AddEventView.swift @@ -28,10 +28,8 @@ struct AddEventView: View { var isMac: Bool { if #available(iOS 1, *) { return false - } else if #available(macOS 10, *) { - return true } 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") } diff --git a/NearFuture/Views/Events/EditEventView.swift b/NearFuture/Views/Events/EditEventView.swift index 440d218..6962920 100644 --- a/NearFuture/Views/Events/EditEventView.swift +++ b/NearFuture/Views/Events/EditEventView.swift @@ -12,19 +12,6 @@ struct EditEventView: View { @ObservedObject var viewModel: EventViewModel @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 { AddEventView( viewModel: viewModel, @@ -32,18 +19,6 @@ struct EditEventView: View { adding: false //bc we editing existing event ) .navigationTitle("Edit Event") - .toolbar { - ToolbarItem(placement: .confirmationAction) { - Button() { - saveEdits() - } label: { - Text("Done") - .bold() - .foregroundStyle(.blue) - } - .disabled(event.name == "") - } - } } } diff --git a/Shared/Model/Events.swift b/Shared/Model/Events.swift index 39a63f1..8b708fc 100644 --- a/Shared/Model/Events.swift +++ b/Shared/Model/Events.swift @@ -222,6 +222,13 @@ class EventViewModel: ObservableObject, @unchecked Sendable { 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) { withAnimation { event.complete.toggle() } let eventToModify = self.events.firstIndex() { currEvent in