import SwiftUI
import SwiftUIIntrospect

public extension View {
    /// When using the `configuration.isPressed` propert of `ButtonStyle` inside a ScrollView,
    /// SwiftUI introduces an artificial delay. This modifier removes this delay to provide a more responsive experience
    @MainActor func disablePressDelay() -> some View {
        introspect(.scrollView, on: .iOS(.v17, .v18, .v26), scope: .receiver) { scrollView in
            scrollView.delaysContentTouches = false
            scrollView.canCancelContentTouches = true
        }
    }
}
