import SwiftUI extension View { func onSwipeGesture( up: @escaping () -> Void = {}, down: @escaping () -> Void = {} ) -> some View { gesture( DragGesture(minimumDistance: 10) .onEnded { gesture in let translation = gesture.translation if abs(translation.height) > 100_000 { return } let isUp = translation.height < 0 isUp ? up() : down() } ) } }