This doesn't seem that intuitive at first, but if you think about it, how would SwiftUI anticipate what action will be performed on your model?
In iOS 17 the animation has been improved considerably if you don't explicitly set the role, but for best results you still need to set it.
@phill I still find the animation to be wrong when I use a confirmationDialog for the destructive action in the swipeAction. When I do that in SwiftUI, it seems to different that what we can find in Messages app for example when deleting a conversation.
Have you encountered this too?
@alpennec AFAIK there is no equivalent of UIContextualAction's handler in SwiftUI. Messages is likely using that to defer the editing commit until the user has confirmed. Since there is no callback on swipeAction I'm not sure how it would be possible.
@phill I see. Currently, the row disappears then reappears when the confirmationDialog is presented... which is ugly but I guess I can’t do better for now 😞
@alpennec in this instance I would say it's actually better to not denote it with the destructive role. At least then it'll defer the delete animation until confirmation.
Edit: video loop makes it look jumpy, but it’s completely glitch free 😛
@phill oh I’ve never thought about that! Thanks for the tip. I will loose the accessibility stuff but the visual aspect feels better.
@phill even if it’s not for the animation, setting it correctly is damn important for the OS accessibility features