Как правильно настроить DragGesture SwiftUI?

у меня есть View, при Свайпе в котором справа налево оно должно закрываться путем showMenu.toggle()

Но это не происходит, оно сдвигается на несколько десятков пикселей влево и просто становится мертвым, переставая отвечать на свайпы и клики.

Ниже расположен код самого DragGesture, может быть кто-нибудь знает как настроить это корректно ? Или написать что именно у меня не так?

var drag: some Gesture {
            DragGesture(minimumDistance: 30, coordinateSpace: .local)
                .onChanged { value in
                    guard value.translation.width < 0 else { return }
                    
                    if value.startLocation.x > 100 {
                        withAnimation() {
                            viewState = value.translation
                        }
                    }
                    
                    if viewState.width < -80 {
                        withAnimation(.easeInOut(duration: 0.5)) {
                            showMenu.toggle()
                        }
                    }
                    
                }
                .onEnded { value in
                    if viewState.width < -50 {
                        withAnimation(.easeInOut(duration: 0.5)) {
                            showMenu.toggle()
                        }
                    } else {
                        viewState = .zero
                    }
                }
        }

Ответы (0 шт):