diff --git a/NearFuture/Views/Home/EventListView.swift b/NearFuture/Views/Home/EventListView.swift index 5ec6a8c..754f7cf 100644 --- a/NearFuture/Views/Home/EventListView.swift +++ b/NearFuture/Views/Home/EventListView.swift @@ -178,13 +178,14 @@ struct EventListView: View { .fixedSize(horizontal: false, vertical: true) .contextMenu() { Button(role: .destructive) { - let eventToModify = viewModel.events.firstIndex() { currEvent in - currEvent.id == event.id - } - if let eventToModify = eventToModify { - viewModel.events.remove(at: eventToModify) - viewModel.saveEvents() - } + viewModel.removeEvent(event) + } label: { + Label("Delete", systemImage: "trash") + } + } + .swipeActions(edge: .trailing, allowsFullSwipe: true) { + Button(role: .destructive) { + viewModel.removeEvent(event) } label: { Label("Delete", systemImage: "trash") } @@ -196,16 +197,6 @@ struct EventListView: View { #Preview("EventListView") { let vm = dummyEventViewModel() ZStack { - Color.black - VStack { - ForEach(0..<50) { _ in - Rectangle() - .foregroundStyle(randomColor().opacity(0.5)) - .padding(-10) - } - .ignoresSafeArea(.all) - .blur(radius: 5) - } VStack { ForEach(vm.events) { event in EventListView( diff --git a/Shared/Model/Events.swift b/Shared/Model/Events.swift index 8b708fc..40ad64c 100644 --- a/Shared/Model/Events.swift +++ b/Shared/Model/Events.swift @@ -240,8 +240,14 @@ class EventViewModel: ObservableObject, @unchecked Sendable { } } - func removeEvent(at index: IndexSet) { - events.remove(atOffsets: index) + func removeEvent(_ eventToRemove: Event) { + let eventToModify = self.events.firstIndex() { currEvent in + currEvent.id == eventToRemove.id + } + if let eventToModify = eventToModify { + self.events.remove(at: eventToModify) + self.saveEvents() + } saveEvents() //sync local and icl }