diff --git a/gloss/ContentView.swift b/gloss/ContentView.swift index afa8072..d3cd3b7 100644 --- a/gloss/ContentView.swift +++ b/gloss/ContentView.swift @@ -383,21 +383,50 @@ struct ContentView: View { } print("start swipe meow: \(startSwipeState)") + } + if newOffset > 0 { startSwipeDir = .right } else { startSwipeDir = .left } - } // Apply resistance if out of bounds - let maxOffsetRight: CGFloat = 150 - let maxOffsetLeft: CGFloat = 200 + var maxOffsetRight: CGFloat = 110 + var maxOffsetLeft: CGFloat = 200 - if newOffset < -maxOffsetLeft { - newOffset = -maxOffsetLeft + rubberBandEffect(newOffset + maxOffsetLeft) - } else if newOffset > maxOffsetRight { + + if startSwipeState == .right { + if startSwipeDir == .right { + maxOffsetRight = .zero + maxOffsetLeft = .zero + } else if startSwipeDir == .left { + maxOffsetRight = CGFloat(110) + maxOffsetLeft = CGFloat(-30) + } + } else if startSwipeState == .left { + + if startSwipeDir == .left { + maxOffsetLeft = .zero + maxOffsetRight = .zero + } else { + maxOffsetLeft = CGFloat(200) + maxOffsetRight = .zero + } + } + + if newOffset + pulledOut.width < -maxOffsetLeft { + if startSwipeState == .right && startSwipeDir == .left { + print("meow here") + newOffset = -maxOffsetLeft + rubberBandEffect(newOffset + maxOffsetLeft) - pulledOut.width + } else { + + print("meow here") + newOffset = -maxOffsetLeft + rubberBandEffect(newOffset + maxOffsetLeft) + } + + } else if newOffset + pulledOut.width > maxOffsetRight { newOffset = maxOffsetRight + rubberBandEffect(newOffset - maxOffsetRight) }