mirror of
https://github.com/neon443/NearFuture.git
synced 2026-03-11 06:49:12 +00:00
extract delete event logic
trying to add swipe actions again
This commit is contained in:
@@ -178,13 +178,14 @@ struct EventListView: View {
|
|||||||
.fixedSize(horizontal: false, vertical: true)
|
.fixedSize(horizontal: false, vertical: true)
|
||||||
.contextMenu() {
|
.contextMenu() {
|
||||||
Button(role: .destructive) {
|
Button(role: .destructive) {
|
||||||
let eventToModify = viewModel.events.firstIndex() { currEvent in
|
viewModel.removeEvent(event)
|
||||||
currEvent.id == event.id
|
} label: {
|
||||||
}
|
Label("Delete", systemImage: "trash")
|
||||||
if let eventToModify = eventToModify {
|
}
|
||||||
viewModel.events.remove(at: eventToModify)
|
}
|
||||||
viewModel.saveEvents()
|
.swipeActions(edge: .trailing, allowsFullSwipe: true) {
|
||||||
}
|
Button(role: .destructive) {
|
||||||
|
viewModel.removeEvent(event)
|
||||||
} label: {
|
} label: {
|
||||||
Label("Delete", systemImage: "trash")
|
Label("Delete", systemImage: "trash")
|
||||||
}
|
}
|
||||||
@@ -196,16 +197,6 @@ struct EventListView: View {
|
|||||||
#Preview("EventListView") {
|
#Preview("EventListView") {
|
||||||
let vm = dummyEventViewModel()
|
let vm = dummyEventViewModel()
|
||||||
ZStack {
|
ZStack {
|
||||||
Color.black
|
|
||||||
VStack {
|
|
||||||
ForEach(0..<50) { _ in
|
|
||||||
Rectangle()
|
|
||||||
.foregroundStyle(randomColor().opacity(0.5))
|
|
||||||
.padding(-10)
|
|
||||||
}
|
|
||||||
.ignoresSafeArea(.all)
|
|
||||||
.blur(radius: 5)
|
|
||||||
}
|
|
||||||
VStack {
|
VStack {
|
||||||
ForEach(vm.events) { event in
|
ForEach(vm.events) { event in
|
||||||
EventListView(
|
EventListView(
|
||||||
|
|||||||
@@ -240,8 +240,14 @@ class EventViewModel: ObservableObject, @unchecked Sendable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func removeEvent(at index: IndexSet) {
|
func removeEvent(_ eventToRemove: Event) {
|
||||||
events.remove(atOffsets: index)
|
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
|
saveEvents() //sync local and icl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user