Alert внутри LazyVGrid должен удалять объект из модели, но когда появляется Alert, значение “robot” не совпадает со значением внутри TapGesture и LongPressGesture. Не могу понять почем так происходит? TapGesture работает как и положено…
LazyVGrid(columns: columns, spacing: 5) {
ForEach(model.robotsRepository.robots) { robot in
RobotView(model: RobotView.Model(robotsRepository: model.robotsRepository, robot: robot)).environmentObject(team)
.contentShape(Rectangle())
.alert(isPresented: $showAlert) {
//When Alert is apearing, "robot" value are not the same as a value inside tap and longPress Gesture
Alert(
title: Text("Remove Card"),
message: Text("Are you sure you want to remove this card?"),
primaryButton: .destructive(Text("Remove")) {
withAnimation {
model.remove(robot: robot)
}
},
secondaryButton: .cancel() {
withAnimation {
deleting = false
}
}
)
}
.onTapGesture {
addRobot(robot: robot, at: selectedIndex)
}
.onLongPressGesture {
withAnimation {
showAlert = true
deleting = true
}
}
}
}