@hanzogui/sheet 8.3.1 → 8.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/GestureDetectorWrapper.js +23 -0
- package/dist/cjs/GestureDetectorWrapper.js.map +1 -0
- package/dist/cjs/GestureSheetContext.js +21 -0
- package/dist/cjs/GestureSheetContext.js.map +1 -0
- package/dist/cjs/Sheet.js +102 -0
- package/dist/cjs/Sheet.js.map +1 -0
- package/dist/cjs/SheetContext.js +8 -0
- package/dist/cjs/SheetContext.js.map +1 -0
- package/dist/cjs/SheetController.js +33 -0
- package/dist/cjs/SheetController.js.map +1 -0
- package/dist/cjs/SheetImplementationCustom.js +866 -0
- package/dist/cjs/SheetImplementationCustom.js.map +1 -0
- package/dist/cjs/SheetScrollView.js +278 -0
- package/dist/cjs/SheetScrollView.js.map +1 -0
- package/dist/cjs/constants.js +8 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/contexts.js +10 -0
- package/dist/cjs/contexts.js.map +1 -0
- package/dist/cjs/controller.js +11 -0
- package/dist/cjs/controller.js.map +1 -0
- package/dist/cjs/createSheet.js +153 -0
- package/dist/cjs/createSheet.js.map +1 -0
- package/dist/cjs/gestureState.js +35 -0
- package/dist/cjs/gestureState.js.map +1 -0
- package/dist/cjs/helpers.js +29 -0
- package/dist/cjs/helpers.js.map +1 -0
- package/dist/cjs/index.js +19 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/keyboardAvoidance.js +67 -0
- package/dist/cjs/keyboardAvoidance.js.map +1 -0
- package/dist/cjs/nativeSheet.js +52 -0
- package/dist/cjs/nativeSheet.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/setupGestureHandler.js +31 -0
- package/dist/cjs/setupGestureHandler.js.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/useGestureHandlerPan.js +356 -0
- package/dist/cjs/useGestureHandlerPan.js.map +1 -0
- package/dist/cjs/useKeyboardControllerSheet.js +124 -0
- package/dist/cjs/useKeyboardControllerSheet.js.map +1 -0
- package/dist/cjs/useSafeAreaInsets.js +16 -0
- package/dist/cjs/useSafeAreaInsets.js.map +1 -0
- package/dist/cjs/useSheet.js +7 -0
- package/dist/cjs/useSheet.js.map +1 -0
- package/dist/cjs/useSheetController.js +19 -0
- package/dist/cjs/useSheetController.js.map +1 -0
- package/dist/cjs/useSheetOffscreenSize.js +40 -0
- package/dist/cjs/useSheetOffscreenSize.js.map +1 -0
- package/dist/cjs/useSheetOpenState.js +29 -0
- package/dist/cjs/useSheetOpenState.js.map +1 -0
- package/dist/cjs/useSheetProviderProps.js +169 -0
- package/dist/cjs/useSheetProviderProps.js.map +1 -0
- package/dist/cjs/useSheetScrollViewGestures.js +195 -0
- package/dist/cjs/useSheetScrollViewGestures.js.map +1 -0
- package/dist/cjs/webViewport.js +108 -0
- package/dist/cjs/webViewport.js.map +1 -0
- package/dist/esm/GestureDetectorWrapper.js +20 -0
- package/dist/esm/GestureDetectorWrapper.js.map +1 -0
- package/dist/esm/GestureSheetContext.js +17 -0
- package/dist/esm/GestureSheetContext.js.map +1 -0
- package/dist/esm/Sheet.js +97 -0
- package/dist/esm/Sheet.js.map +1 -0
- package/dist/esm/SheetContext.js +5 -0
- package/dist/esm/SheetContext.js.map +1 -0
- package/dist/esm/SheetController.js +28 -0
- package/dist/esm/SheetController.js.map +1 -0
- package/dist/esm/SheetImplementationCustom.js +862 -0
- package/dist/esm/SheetImplementationCustom.js.map +1 -0
- package/dist/esm/SheetScrollView.js +274 -0
- package/dist/esm/SheetScrollView.js.map +1 -0
- package/dist/esm/constants.js +5 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/contexts.js +6 -0
- package/dist/esm/contexts.js.map +1 -0
- package/dist/esm/controller.js +5 -0
- package/dist/esm/controller.js.map +1 -0
- package/dist/esm/createSheet.js +150 -0
- package/dist/esm/createSheet.js.map +1 -0
- package/dist/esm/gestureState.js +29 -0
- package/dist/esm/gestureState.js.map +1 -0
- package/dist/esm/helpers.js +26 -0
- package/dist/esm/helpers.js.map +1 -0
- package/dist/esm/index.js +13 -14
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/keyboardAvoidance.js +62 -0
- package/dist/esm/keyboardAvoidance.js.map +1 -0
- package/dist/esm/nativeSheet.js +48 -0
- package/dist/esm/nativeSheet.js.map +1 -0
- package/dist/esm/setupGestureHandler.js +27 -0
- package/dist/esm/setupGestureHandler.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/useGestureHandlerPan.js +353 -0
- package/dist/esm/useGestureHandlerPan.js.map +1 -0
- package/dist/esm/useKeyboardControllerSheet.js +121 -0
- package/dist/esm/useKeyboardControllerSheet.js.map +1 -0
- package/dist/esm/useSafeAreaInsets.js +11 -0
- package/dist/esm/useSafeAreaInsets.js.map +1 -0
- package/dist/esm/useSheet.js +3 -0
- package/dist/esm/useSheet.js.map +1 -0
- package/dist/esm/useSheetController.js +14 -0
- package/dist/esm/useSheetController.js.map +1 -0
- package/dist/esm/useSheetOffscreenSize.js +36 -0
- package/dist/esm/useSheetOffscreenSize.js.map +1 -0
- package/dist/esm/useSheetOpenState.js +25 -0
- package/dist/esm/useSheetOpenState.js.map +1 -0
- package/dist/esm/useSheetProviderProps.js +165 -0
- package/dist/esm/useSheetProviderProps.js.map +1 -0
- package/dist/esm/useSheetScrollViewGestures.js +192 -0
- package/dist/esm/useSheetScrollViewGestures.js.map +1 -0
- package/dist/esm/webViewport.js +98 -0
- package/dist/esm/webViewport.js.map +1 -0
- package/dist/native/GestureDetectorWrapper.js +20 -0
- package/dist/native/GestureDetectorWrapper.js.map +1 -0
- package/dist/native/GestureSheetContext.js +17 -0
- package/dist/native/GestureSheetContext.js.map +1 -0
- package/dist/native/Sheet.js +97 -0
- package/dist/native/Sheet.js.map +1 -0
- package/dist/native/SheetContext.js +5 -0
- package/dist/native/SheetContext.js.map +1 -0
- package/dist/native/SheetController.js +28 -0
- package/dist/native/SheetController.js.map +1 -0
- package/dist/native/SheetImplementationCustom.js +862 -0
- package/dist/native/SheetImplementationCustom.js.map +1 -0
- package/dist/native/SheetScrollView.js +274 -0
- package/dist/native/SheetScrollView.js.map +1 -0
- package/dist/native/constants.js +5 -0
- package/dist/native/constants.js.map +1 -0
- package/dist/native/contexts.js +6 -0
- package/dist/native/contexts.js.map +1 -0
- package/dist/native/controller.js +5 -0
- package/dist/native/controller.js.map +1 -0
- package/dist/native/createSheet.js +150 -0
- package/dist/native/createSheet.js.map +1 -0
- package/dist/native/gestureState.js +29 -0
- package/dist/native/gestureState.js.map +1 -0
- package/dist/native/helpers.js +26 -0
- package/dist/native/helpers.js.map +1 -0
- package/dist/native/index.js +13 -0
- package/dist/native/index.js.map +1 -0
- package/dist/native/keyboardAvoidance.js +62 -0
- package/dist/native/keyboardAvoidance.js.map +1 -0
- package/dist/native/nativeSheet.js +48 -0
- package/dist/native/nativeSheet.js.map +1 -0
- package/dist/native/setupGestureHandler.js +27 -0
- package/dist/native/setupGestureHandler.js.map +1 -0
- package/dist/native/types.js +2 -0
- package/dist/native/types.js.map +1 -0
- package/dist/native/useGestureHandlerPan.js +353 -0
- package/dist/native/useGestureHandlerPan.js.map +1 -0
- package/dist/native/useKeyboardControllerSheet.js +118 -0
- package/dist/native/useKeyboardControllerSheet.js.map +1 -0
- package/dist/native/useSafeAreaInsets.js +25 -0
- package/dist/native/useSafeAreaInsets.js.map +1 -0
- package/dist/native/useSheet.js +3 -0
- package/dist/native/useSheet.js.map +1 -0
- package/dist/native/useSheetController.js +14 -0
- package/dist/native/useSheetController.js.map +1 -0
- package/dist/native/useSheetOffscreenSize.js +36 -0
- package/dist/native/useSheetOffscreenSize.js.map +1 -0
- package/dist/native/useSheetOpenState.js +25 -0
- package/dist/native/useSheetOpenState.js.map +1 -0
- package/dist/native/useSheetProviderProps.js +165 -0
- package/dist/native/useSheetProviderProps.js.map +1 -0
- package/dist/native/useSheetScrollViewGestures.js +131 -0
- package/dist/native/useSheetScrollViewGestures.js.map +1 -0
- package/dist/native/webViewport.js +98 -0
- package/dist/native/webViewport.js.map +1 -0
- package/package.json +52 -50
- package/src/GestureDetectorWrapper.tsx +1 -1
- package/src/Sheet.tsx +4 -4
- package/src/SheetContext.tsx +2 -2
- package/src/SheetController.d.ts +7 -0
- package/src/SheetController.d.ts.map +1 -0
- package/src/SheetController.js +38 -0
- package/src/SheetController.js.map +1 -0
- package/src/SheetController.tsx +2 -2
- package/src/SheetImplementationCustom.tsx +14 -14
- package/src/SheetScrollView.tsx +6 -6
- package/src/controller.ts +2 -2
- package/src/createSheet.tsx +9 -9
- package/src/index.ts +12 -12
- package/src/nativeSheet.tsx +4 -4
- package/src/useGestureHandlerPan.tsx +3 -3
- package/src/useKeyboardControllerSheet.native.ts +1 -1
- package/src/useKeyboardControllerSheet.ts +2 -2
- package/src/useSafeAreaInsets.native.ts +1 -1
- package/src/useSheet.tsx +1 -1
- package/src/useSheetController.d.ts +20 -0
- package/src/useSheetController.d.ts.map +1 -0
- package/src/useSheetController.js +14 -0
- package/src/useSheetController.js.map +1 -0
- package/src/useSheetOffscreenSize.tsx +1 -1
- package/src/useSheetOpenState.tsx +2 -2
- package/src/useSheetProviderProps.tsx +2 -2
- package/src/useSheetScrollViewGestures.native.ts +1 -1
- package/src/useSheetScrollViewGestures.ts +1 -1
- package/types/GestureDetectorWrapper.d.ts +1 -1
- package/types/GestureDetectorWrapper.d.ts.map +1 -1
- package/types/GestureSheetContext.d.ts +1 -1
- package/types/GestureSheetContext.d.ts.map +1 -1
- package/types/Sheet.d.ts +81 -89
- package/types/Sheet.d.ts.map +1 -1
- package/types/SheetContext.d.ts +5 -5
- package/types/SheetContext.d.ts.map +1 -1
- package/types/SheetController.d.ts +3 -2
- package/types/SheetController.d.ts.map +1 -1
- package/types/SheetImplementationCustom.d.ts +3 -3
- package/types/SheetImplementationCustom.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts +6 -6
- package/types/controller.d.ts +2 -2
- package/types/controller.d.ts.map +1 -1
- package/types/createSheet.d.ts +85 -85
- package/types/createSheet.d.ts.map +1 -1
- package/types/index.d.ts +12 -12
- package/types/index.d.ts.map +1 -1
- package/types/nativeSheet.d.ts +1 -1
- package/types/nativeSheet.d.ts.map +1 -1
- package/types/useGestureHandlerPan.d.ts +1 -1
- package/types/useGestureHandlerPan.d.ts.map +1 -1
- package/types/useKeyboardControllerSheet.d.ts +1 -1
- package/types/useKeyboardControllerSheet.d.ts.map +1 -1
- package/types/useKeyboardControllerSheet.native.d.ts +1 -1
- package/types/useKeyboardControllerSheet.native.d.ts.map +1 -1
- package/types/useSafeAreaInsets.native.d.ts +1 -1
- package/types/useSafeAreaInsets.native.d.ts.map +1 -1
- package/types/useSheet.d.ts +1 -1
- package/types/useSheet.d.ts.map +1 -1
- package/types/useSheetOffscreenSize.d.ts +1 -1
- package/types/useSheetOffscreenSize.d.ts.map +1 -1
- package/types/useSheetOpenState.d.ts +2 -2
- package/types/useSheetOpenState.d.ts.map +1 -1
- package/types/useSheetProviderProps.d.ts +3 -3
- package/types/useSheetProviderProps.d.ts.map +1 -1
- package/types/useSheetScrollViewGestures.d.ts +1 -1
- package/types/useSheetScrollViewGestures.d.ts.map +1 -1
- package/types/useSheetScrollViewGestures.native.d.ts +1 -1
- package/types/useSheetScrollViewGestures.native.d.ts.map +1 -1
- package/controller/index.cjs +0 -2
- package/controller/index.d.ts +0 -5
- package/controller/index.js +0 -2
- package/controller/index.native.cjs +0 -2
- package/controller/index.native.js +0 -2
- package/dist/cjs/GestureDetectorWrapper.cjs +0 -54
- package/dist/cjs/GestureDetectorWrapper.native.js +0 -58
- package/dist/cjs/GestureDetectorWrapper.native.js.map +0 -1
- package/dist/cjs/GestureSheetContext.cjs +0 -54
- package/dist/cjs/GestureSheetContext.native.js +0 -58
- package/dist/cjs/GestureSheetContext.native.js.map +0 -1
- package/dist/cjs/Sheet.cjs +0 -119
- package/dist/cjs/Sheet.native.js +0 -122
- package/dist/cjs/Sheet.native.js.map +0 -1
- package/dist/cjs/SheetContext.cjs +0 -34
- package/dist/cjs/SheetContext.native.js +0 -37
- package/dist/cjs/SheetContext.native.js.map +0 -1
- package/dist/cjs/SheetController.cjs +0 -73
- package/dist/cjs/SheetController.native.js +0 -79
- package/dist/cjs/SheetController.native.js.map +0 -1
- package/dist/cjs/SheetImplementationCustom.cjs +0 -652
- package/dist/cjs/SheetImplementationCustom.native.js +0 -694
- package/dist/cjs/SheetImplementationCustom.native.js.map +0 -1
- package/dist/cjs/SheetScrollView.cjs +0 -337
- package/dist/cjs/SheetScrollView.native.js +0 -348
- package/dist/cjs/SheetScrollView.native.js.map +0 -1
- package/dist/cjs/constants.cjs +0 -34
- package/dist/cjs/constants.native.js +0 -37
- package/dist/cjs/constants.native.js.map +0 -1
- package/dist/cjs/contexts.cjs +0 -44
- package/dist/cjs/contexts.native.js +0 -47
- package/dist/cjs/contexts.native.js.map +0 -1
- package/dist/cjs/controller.cjs +0 -31
- package/dist/cjs/controller.native.js +0 -34
- package/dist/cjs/controller.native.js.map +0 -1
- package/dist/cjs/createSheet.cjs +0 -194
- package/dist/cjs/createSheet.native.js +0 -204
- package/dist/cjs/createSheet.native.js.map +0 -1
- package/dist/cjs/gestureState.cjs +0 -52
- package/dist/cjs/gestureState.native.js +0 -56
- package/dist/cjs/gestureState.native.js.map +0 -1
- package/dist/cjs/helpers.cjs +0 -35
- package/dist/cjs/helpers.native.js +0 -39
- package/dist/cjs/helpers.native.js.map +0 -1
- package/dist/cjs/index.cjs +0 -41
- package/dist/cjs/index.native.js +0 -44
- package/dist/cjs/index.native.js.map +0 -1
- package/dist/cjs/keyboardAvoidance.cjs +0 -93
- package/dist/cjs/keyboardAvoidance.native.js +0 -99
- package/dist/cjs/keyboardAvoidance.native.js.map +0 -1
- package/dist/cjs/nativeSheet.cjs +0 -99
- package/dist/cjs/nativeSheet.native.js +0 -109
- package/dist/cjs/nativeSheet.native.js.map +0 -1
- package/dist/cjs/setupGestureHandler.cjs +0 -55
- package/dist/cjs/setupGestureHandler.native.js +0 -60
- package/dist/cjs/setupGestureHandler.native.js.map +0 -1
- package/dist/cjs/types.cjs +0 -18
- package/dist/cjs/types.native.js +0 -21
- package/dist/cjs/types.native.js.map +0 -1
- package/dist/cjs/useGestureHandlerPan.cjs +0 -274
- package/dist/cjs/useGestureHandlerPan.native.js +0 -286
- package/dist/cjs/useGestureHandlerPan.native.js.map +0 -1
- package/dist/cjs/useKeyboardControllerSheet.cjs +0 -102
- package/dist/cjs/useKeyboardControllerSheet.native.js +0 -132
- package/dist/cjs/useKeyboardControllerSheet.native.js.map +0 -1
- package/dist/cjs/useSafeAreaInsets.cjs +0 -44
- package/dist/cjs/useSafeAreaInsets.native.js +0 -48
- package/dist/cjs/useSafeAreaInsets.native.js.map +0 -1
- package/dist/cjs/useSheet.cjs +0 -29
- package/dist/cjs/useSheet.native.js +0 -34
- package/dist/cjs/useSheet.native.js.map +0 -1
- package/dist/cjs/useSheetController.cjs +0 -52
- package/dist/cjs/useSheetController.native.js +0 -55
- package/dist/cjs/useSheetController.native.js.map +0 -1
- package/dist/cjs/useSheetOffscreenSize.cjs +0 -63
- package/dist/cjs/useSheetOffscreenSize.native.js +0 -70
- package/dist/cjs/useSheetOffscreenSize.native.js.map +0 -1
- package/dist/cjs/useSheetOpenState.cjs +0 -52
- package/dist/cjs/useSheetOpenState.native.js +0 -58
- package/dist/cjs/useSheetOpenState.native.js.map +0 -1
- package/dist/cjs/useSheetProviderProps.cjs +0 -181
- package/dist/cjs/useSheetProviderProps.native.js +0 -196
- package/dist/cjs/useSheetProviderProps.native.js.map +0 -1
- package/dist/cjs/useSheetScrollViewGestures.cjs +0 -191
- package/dist/cjs/useSheetScrollViewGestures.native.js +0 -163
- package/dist/cjs/useSheetScrollViewGestures.native.js.map +0 -1
- package/dist/cjs/webViewport.cjs +0 -75
- package/dist/cjs/webViewport.native.js +0 -81
- package/dist/cjs/webViewport.native.js.map +0 -1
- package/dist/esm/GestureDetectorWrapper.mjs +0 -29
- package/dist/esm/GestureDetectorWrapper.mjs.map +0 -1
- package/dist/esm/GestureDetectorWrapper.native.js +0 -30
- package/dist/esm/GestureDetectorWrapper.native.js.map +0 -1
- package/dist/esm/GestureSheetContext.mjs +0 -28
- package/dist/esm/GestureSheetContext.mjs.map +0 -1
- package/dist/esm/GestureSheetContext.native.js +0 -29
- package/dist/esm/GestureSheetContext.native.js.map +0 -1
- package/dist/esm/Sheet.mjs +0 -89
- package/dist/esm/Sheet.mjs.map +0 -1
- package/dist/esm/Sheet.native.js +0 -89
- package/dist/esm/Sheet.native.js.map +0 -1
- package/dist/esm/SheetContext.mjs +0 -6
- package/dist/esm/SheetContext.mjs.map +0 -1
- package/dist/esm/SheetContext.native.js +0 -6
- package/dist/esm/SheetContext.native.js.map +0 -1
- package/dist/esm/SheetController.mjs +0 -37
- package/dist/esm/SheetController.mjs.map +0 -1
- package/dist/esm/SheetController.native.js +0 -40
- package/dist/esm/SheetController.native.js.map +0 -1
- package/dist/esm/SheetImplementationCustom.mjs +0 -611
- package/dist/esm/SheetImplementationCustom.mjs.map +0 -1
- package/dist/esm/SheetImplementationCustom.native.js +0 -643
- package/dist/esm/SheetImplementationCustom.native.js.map +0 -1
- package/dist/esm/SheetScrollView.mjs +0 -301
- package/dist/esm/SheetScrollView.mjs.map +0 -1
- package/dist/esm/SheetScrollView.native.js +0 -309
- package/dist/esm/SheetScrollView.native.js.map +0 -1
- package/dist/esm/constants.mjs +0 -6
- package/dist/esm/constants.mjs.map +0 -1
- package/dist/esm/constants.native.js +0 -6
- package/dist/esm/constants.native.js.map +0 -1
- package/dist/esm/contexts.mjs +0 -7
- package/dist/esm/contexts.mjs.map +0 -1
- package/dist/esm/contexts.native.js +0 -7
- package/dist/esm/contexts.native.js.map +0 -1
- package/dist/esm/controller.mjs +0 -4
- package/dist/esm/controller.mjs.map +0 -1
- package/dist/esm/controller.native.js +0 -4
- package/dist/esm/controller.native.js.map +0 -1
- package/dist/esm/createSheet.mjs +0 -168
- package/dist/esm/createSheet.mjs.map +0 -1
- package/dist/esm/createSheet.native.js +0 -176
- package/dist/esm/createSheet.native.js.map +0 -1
- package/dist/esm/gestureState.mjs +0 -24
- package/dist/esm/gestureState.mjs.map +0 -1
- package/dist/esm/gestureState.native.js +0 -25
- package/dist/esm/gestureState.native.js.map +0 -1
- package/dist/esm/helpers.mjs +0 -10
- package/dist/esm/helpers.mjs.map +0 -1
- package/dist/esm/helpers.native.js +0 -11
- package/dist/esm/helpers.native.js.map +0 -1
- package/dist/esm/index.mjs +0 -14
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js +0 -14
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/keyboardAvoidance.mjs +0 -66
- package/dist/esm/keyboardAvoidance.mjs.map +0 -1
- package/dist/esm/keyboardAvoidance.native.js +0 -69
- package/dist/esm/keyboardAvoidance.native.js.map +0 -1
- package/dist/esm/nativeSheet.mjs +0 -73
- package/dist/esm/nativeSheet.mjs.map +0 -1
- package/dist/esm/nativeSheet.native.js +0 -80
- package/dist/esm/nativeSheet.native.js.map +0 -1
- package/dist/esm/setupGestureHandler.mjs +0 -29
- package/dist/esm/setupGestureHandler.mjs.map +0 -1
- package/dist/esm/setupGestureHandler.native.js +0 -31
- package/dist/esm/setupGestureHandler.native.js.map +0 -1
- package/dist/esm/types.mjs +0 -2
- package/dist/esm/types.mjs.map +0 -1
- package/dist/esm/types.native.js +0 -2
- package/dist/esm/types.native.js.map +0 -1
- package/dist/esm/useGestureHandlerPan.mjs +0 -249
- package/dist/esm/useGestureHandlerPan.mjs.map +0 -1
- package/dist/esm/useGestureHandlerPan.native.js +0 -258
- package/dist/esm/useGestureHandlerPan.native.js.map +0 -1
- package/dist/esm/useKeyboardControllerSheet.mjs +0 -77
- package/dist/esm/useKeyboardControllerSheet.mjs.map +0 -1
- package/dist/esm/useKeyboardControllerSheet.native.js +0 -104
- package/dist/esm/useKeyboardControllerSheet.native.js.map +0 -1
- package/dist/esm/useSafeAreaInsets.mjs +0 -7
- package/dist/esm/useSafeAreaInsets.mjs.map +0 -1
- package/dist/esm/useSafeAreaInsets.native.js +0 -8
- package/dist/esm/useSafeAreaInsets.native.js.map +0 -1
- package/dist/esm/useSheet.mjs +0 -4
- package/dist/esm/useSheet.mjs.map +0 -1
- package/dist/esm/useSheet.native.js +0 -6
- package/dist/esm/useSheet.native.js.map +0 -1
- package/dist/esm/useSheetController.mjs +0 -15
- package/dist/esm/useSheetController.mjs.map +0 -1
- package/dist/esm/useSheetController.native.js +0 -15
- package/dist/esm/useSheetController.native.js.map +0 -1
- package/dist/esm/useSheetOffscreenSize.mjs +0 -38
- package/dist/esm/useSheetOffscreenSize.mjs.map +0 -1
- package/dist/esm/useSheetOffscreenSize.native.js +0 -42
- package/dist/esm/useSheetOffscreenSize.native.js.map +0 -1
- package/dist/esm/useSheetOpenState.mjs +0 -27
- package/dist/esm/useSheetOpenState.mjs.map +0 -1
- package/dist/esm/useSheetOpenState.native.js +0 -30
- package/dist/esm/useSheetOpenState.native.js.map +0 -1
- package/dist/esm/useSheetProviderProps.mjs +0 -145
- package/dist/esm/useSheetProviderProps.mjs.map +0 -1
- package/dist/esm/useSheetProviderProps.native.js +0 -157
- package/dist/esm/useSheetProviderProps.native.js.map +0 -1
- package/dist/esm/useSheetScrollViewGestures.mjs +0 -166
- package/dist/esm/useSheetScrollViewGestures.mjs.map +0 -1
- package/dist/esm/useSheetScrollViewGestures.native.js +0 -135
- package/dist/esm/useSheetScrollViewGestures.native.js.map +0 -1
- package/dist/esm/webViewport.mjs +0 -43
- package/dist/esm/webViewport.mjs.map +0 -1
- package/dist/esm/webViewport.native.js +0 -46
- package/dist/esm/webViewport.native.js.map +0 -1
- package/dist/jsx/GestureDetectorWrapper.mjs +0 -29
- package/dist/jsx/GestureDetectorWrapper.mjs.map +0 -1
- package/dist/jsx/GestureDetectorWrapper.native.js +0 -58
- package/dist/jsx/GestureDetectorWrapper.native.js.map +0 -1
- package/dist/jsx/GestureSheetContext.mjs +0 -28
- package/dist/jsx/GestureSheetContext.mjs.map +0 -1
- package/dist/jsx/GestureSheetContext.native.js +0 -58
- package/dist/jsx/GestureSheetContext.native.js.map +0 -1
- package/dist/jsx/Sheet.mjs +0 -89
- package/dist/jsx/Sheet.mjs.map +0 -1
- package/dist/jsx/Sheet.native.js +0 -122
- package/dist/jsx/Sheet.native.js.map +0 -1
- package/dist/jsx/SheetContext.mjs +0 -6
- package/dist/jsx/SheetContext.mjs.map +0 -1
- package/dist/jsx/SheetContext.native.js +0 -37
- package/dist/jsx/SheetContext.native.js.map +0 -1
- package/dist/jsx/SheetController.mjs +0 -37
- package/dist/jsx/SheetController.mjs.map +0 -1
- package/dist/jsx/SheetController.native.js +0 -79
- package/dist/jsx/SheetController.native.js.map +0 -1
- package/dist/jsx/SheetImplementationCustom.mjs +0 -611
- package/dist/jsx/SheetImplementationCustom.mjs.map +0 -1
- package/dist/jsx/SheetImplementationCustom.native.js +0 -694
- package/dist/jsx/SheetImplementationCustom.native.js.map +0 -1
- package/dist/jsx/SheetScrollView.mjs +0 -301
- package/dist/jsx/SheetScrollView.mjs.map +0 -1
- package/dist/jsx/SheetScrollView.native.js +0 -348
- package/dist/jsx/SheetScrollView.native.js.map +0 -1
- package/dist/jsx/constants.mjs +0 -6
- package/dist/jsx/constants.mjs.map +0 -1
- package/dist/jsx/constants.native.js +0 -37
- package/dist/jsx/constants.native.js.map +0 -1
- package/dist/jsx/contexts.mjs +0 -7
- package/dist/jsx/contexts.mjs.map +0 -1
- package/dist/jsx/contexts.native.js +0 -47
- package/dist/jsx/contexts.native.js.map +0 -1
- package/dist/jsx/controller.mjs +0 -4
- package/dist/jsx/controller.mjs.map +0 -1
- package/dist/jsx/controller.native.js +0 -34
- package/dist/jsx/controller.native.js.map +0 -1
- package/dist/jsx/createSheet.mjs +0 -168
- package/dist/jsx/createSheet.mjs.map +0 -1
- package/dist/jsx/createSheet.native.js +0 -204
- package/dist/jsx/createSheet.native.js.map +0 -1
- package/dist/jsx/gestureState.mjs +0 -24
- package/dist/jsx/gestureState.mjs.map +0 -1
- package/dist/jsx/gestureState.native.js +0 -56
- package/dist/jsx/gestureState.native.js.map +0 -1
- package/dist/jsx/helpers.mjs +0 -10
- package/dist/jsx/helpers.mjs.map +0 -1
- package/dist/jsx/helpers.native.js +0 -39
- package/dist/jsx/helpers.native.js.map +0 -1
- package/dist/jsx/index.js +0 -14
- package/dist/jsx/index.js.map +0 -1
- package/dist/jsx/index.mjs +0 -14
- package/dist/jsx/index.mjs.map +0 -1
- package/dist/jsx/index.native.js +0 -44
- package/dist/jsx/index.native.js.map +0 -1
- package/dist/jsx/keyboardAvoidance.mjs +0 -66
- package/dist/jsx/keyboardAvoidance.mjs.map +0 -1
- package/dist/jsx/keyboardAvoidance.native.js +0 -99
- package/dist/jsx/keyboardAvoidance.native.js.map +0 -1
- package/dist/jsx/nativeSheet.mjs +0 -73
- package/dist/jsx/nativeSheet.mjs.map +0 -1
- package/dist/jsx/nativeSheet.native.js +0 -109
- package/dist/jsx/nativeSheet.native.js.map +0 -1
- package/dist/jsx/setupGestureHandler.mjs +0 -29
- package/dist/jsx/setupGestureHandler.mjs.map +0 -1
- package/dist/jsx/setupGestureHandler.native.js +0 -60
- package/dist/jsx/setupGestureHandler.native.js.map +0 -1
- package/dist/jsx/types.mjs +0 -2
- package/dist/jsx/types.mjs.map +0 -1
- package/dist/jsx/types.native.js +0 -21
- package/dist/jsx/types.native.js.map +0 -1
- package/dist/jsx/useGestureHandlerPan.mjs +0 -249
- package/dist/jsx/useGestureHandlerPan.mjs.map +0 -1
- package/dist/jsx/useGestureHandlerPan.native.js +0 -286
- package/dist/jsx/useGestureHandlerPan.native.js.map +0 -1
- package/dist/jsx/useKeyboardControllerSheet.mjs +0 -77
- package/dist/jsx/useKeyboardControllerSheet.mjs.map +0 -1
- package/dist/jsx/useKeyboardControllerSheet.native.js +0 -132
- package/dist/jsx/useKeyboardControllerSheet.native.js.map +0 -1
- package/dist/jsx/useSafeAreaInsets.mjs +0 -7
- package/dist/jsx/useSafeAreaInsets.mjs.map +0 -1
- package/dist/jsx/useSafeAreaInsets.native.js +0 -48
- package/dist/jsx/useSafeAreaInsets.native.js.map +0 -1
- package/dist/jsx/useSheet.mjs +0 -4
- package/dist/jsx/useSheet.mjs.map +0 -1
- package/dist/jsx/useSheet.native.js +0 -34
- package/dist/jsx/useSheet.native.js.map +0 -1
- package/dist/jsx/useSheetController.mjs +0 -15
- package/dist/jsx/useSheetController.mjs.map +0 -1
- package/dist/jsx/useSheetController.native.js +0 -55
- package/dist/jsx/useSheetController.native.js.map +0 -1
- package/dist/jsx/useSheetOffscreenSize.mjs +0 -38
- package/dist/jsx/useSheetOffscreenSize.mjs.map +0 -1
- package/dist/jsx/useSheetOffscreenSize.native.js +0 -70
- package/dist/jsx/useSheetOffscreenSize.native.js.map +0 -1
- package/dist/jsx/useSheetOpenState.mjs +0 -27
- package/dist/jsx/useSheetOpenState.mjs.map +0 -1
- package/dist/jsx/useSheetOpenState.native.js +0 -58
- package/dist/jsx/useSheetOpenState.native.js.map +0 -1
- package/dist/jsx/useSheetProviderProps.mjs +0 -145
- package/dist/jsx/useSheetProviderProps.mjs.map +0 -1
- package/dist/jsx/useSheetProviderProps.native.js +0 -196
- package/dist/jsx/useSheetProviderProps.native.js.map +0 -1
- package/dist/jsx/useSheetScrollViewGestures.mjs +0 -166
- package/dist/jsx/useSheetScrollViewGestures.mjs.map +0 -1
- package/dist/jsx/useSheetScrollViewGestures.native.js +0 -163
- package/dist/jsx/useSheetScrollViewGestures.native.js.map +0 -1
- package/dist/jsx/webViewport.mjs +0 -43
- package/dist/jsx/webViewport.mjs.map +0 -1
- package/dist/jsx/webViewport.native.js +0 -81
- package/dist/jsx/webViewport.native.js.map +0 -1
- package/setup-gesture-handler/index.cjs +0 -2
- package/setup-gesture-handler/index.js +0 -2
- package/setup-gesture-handler/index.native.cjs +0 -2
- package/setup-gesture-handler/index.native.js +0 -2
- package/setup-gesture-handler.cjs +0 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resisted = resisted;
|
|
4
|
+
function resisted(y, minY, maxOverflow = 25) {
|
|
5
|
+
// If we're not past the boundary, return the original position
|
|
6
|
+
if (y >= minY) {
|
|
7
|
+
return y;
|
|
8
|
+
}
|
|
9
|
+
// Calculate how far we've gone past the boundary
|
|
10
|
+
const pastBoundary = minY - y;
|
|
11
|
+
// Use a square root function for very gentle resistance
|
|
12
|
+
// This creates a milder resistance curve than logarithmic
|
|
13
|
+
// Reduced multiplier from 1.5 to 1.0 for even less resistance
|
|
14
|
+
const resistedDistance = Math.sqrt(pastBoundary) * 2;
|
|
15
|
+
// Return the position with resistance applied
|
|
16
|
+
return minY - resistedDistance;
|
|
17
|
+
}
|
|
18
|
+
// // set all the way off screen
|
|
19
|
+
// // + 0.1 ensures this is unique - see hasntMeasured ref
|
|
20
|
+
// let hiddenSize: number
|
|
21
|
+
// export function getHiddenSize() {
|
|
22
|
+
// if (hiddenSize == undefined) {
|
|
23
|
+
// // this trigger reflow on web avoid doing on startup
|
|
24
|
+
// const screen = Dimensions.get('screen')
|
|
25
|
+
// hiddenSize = Math.max(screen.height, screen.width) + 0.1
|
|
26
|
+
// }
|
|
27
|
+
// return hiddenSize
|
|
28
|
+
// }
|
|
29
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.tsx"],"names":[],"mappings":";;;AAAA,kBAAyB,CAAS,EAAE,IAAY,EAAE,WAAW,GAAG,EAAE;IAChE,+DAA+D;IAC/D,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,CAAA;IACV,CAAC;IAED,iDAAiD;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAA;IAE7B,wDAAwD;IACxD,0DAA0D;IAC1D,8DAA8D;IAC9D,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAEpD,8CAA8C;IAC9C,OAAO,IAAI,GAAG,gBAAgB,CAAA;AAChC,CAAC;AAED,gCAAgC;AAChC,0DAA0D;AAE1D,yBAAyB;AAEzB,oCAAoC;AACpC,mCAAmC;AACnC,2DAA2D;AAC3D,8CAA8C;AAC9C,+DAA+D;AAC/D,MAAM;AACN,sBAAsB;AACtB,IAAI"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unstable_isSheetGestureHandlerEnabled = exports.unstable_getSheetGestureHandlerState = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
tslib_1.__exportStar(require("./Sheet.js"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./useSheet.js"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./createSheet.js"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./SheetController.js"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./useSheetController.js"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./useSheetOpenState.js"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./useSheetOffscreenSize.js"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./SheetScrollView.js"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./nativeSheet.js"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./types.js"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./contexts.js"), exports);
|
|
16
|
+
var gestureState_ts_1 = require("./gestureState.js");
|
|
17
|
+
Object.defineProperty(exports, "unstable_getSheetGestureHandlerState", { enumerable: true, get: function () { return gestureState_ts_1.getGestureHandlerState; } });
|
|
18
|
+
Object.defineProperty(exports, "unstable_isSheetGestureHandlerEnabled", { enumerable: true, get: function () { return gestureState_ts_1.isGestureHandlerEnabled; } });
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,qDAA2B;AAC3B,wDAA8B;AAC9B,2DAAiC;AACjC,+DAAqC;AACrC,kEAAwC;AACxC,iEAAuC;AACvC,qEAA2C;AAC3C,+DAAqC;AACrC,2DAAiC;AACjC,qDAA2B;AAC3B,wDAA6B;AAC7B,qDAG0B;AAFxB,uIAAA,sBAAsB,OAAwC;AAC9D,wIAAA,uBAAuB,OAAyC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getKeyboardAdjustedSheetY = getKeyboardAdjustedSheetY;
|
|
4
|
+
exports.getSheetReleasePosition = getSheetReleasePosition;
|
|
5
|
+
exports.getKeyboardOccludedHeight = getKeyboardOccludedHeight;
|
|
6
|
+
function getKeyboardAdjustedSheetY({ sheetY, screenSize, isKeyboardVisible, keyboardHeight, shouldTranslate, safeAreaTop, }) {
|
|
7
|
+
if (!shouldTranslate ||
|
|
8
|
+
!isKeyboardVisible ||
|
|
9
|
+
keyboardHeight <= 0 ||
|
|
10
|
+
screenSize <= 0 ||
|
|
11
|
+
sheetY >= screenSize) {
|
|
12
|
+
return sheetY;
|
|
13
|
+
}
|
|
14
|
+
return Math.max(safeAreaTop, sheetY - keyboardHeight);
|
|
15
|
+
}
|
|
16
|
+
function getSheetReleasePosition({ positions, projectedEnd, currentPosition, frameSize, dismissOnSnapToBottom, snapPointsMode, isKeyboardVisible, isWeb, }) {
|
|
17
|
+
let closestPoint = 0;
|
|
18
|
+
let dist = Number.POSITIVE_INFINITY;
|
|
19
|
+
for (let i = 0; i < positions.length; i++) {
|
|
20
|
+
const position = positions[i];
|
|
21
|
+
const curDist = Math.abs(projectedEnd - position);
|
|
22
|
+
if (curDist < dist) {
|
|
23
|
+
dist = curDist;
|
|
24
|
+
closestPoint = i;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// the keyboard-open dismiss threshold is a WEB keyboard-handoff fix
|
|
28
|
+
// (75de9c9694). on native the keyboard is opaque and the sheet snaps purely by
|
|
29
|
+
// projected position (the pre-rework behavior), so gate it to web only —
|
|
30
|
+
// otherwise a native fit+dismiss sheet snaps to the wrong point with the
|
|
31
|
+
// keyboard up.
|
|
32
|
+
const dismissPoint = positions.length - 1;
|
|
33
|
+
const isKeyboardFitDismiss = isWeb &&
|
|
34
|
+
dismissOnSnapToBottom &&
|
|
35
|
+
isKeyboardVisible &&
|
|
36
|
+
snapPointsMode === 'fit' &&
|
|
37
|
+
positions.length === 2 &&
|
|
38
|
+
closestPoint === dismissPoint;
|
|
39
|
+
if (!isKeyboardFitDismiss) {
|
|
40
|
+
return closestPoint;
|
|
41
|
+
}
|
|
42
|
+
const openPosition = positions[0];
|
|
43
|
+
const dismissPosition = positions[dismissPoint];
|
|
44
|
+
const dismissDistance = dismissPosition - openPosition;
|
|
45
|
+
if (dismissDistance <= 0 || frameSize <= 0) {
|
|
46
|
+
return closestPoint;
|
|
47
|
+
}
|
|
48
|
+
const draggedDistance = Math.max(0, currentPosition - openPosition);
|
|
49
|
+
const thresholdBase = Math.min(frameSize, dismissDistance);
|
|
50
|
+
const dismissThreshold = Math.max(120, thresholdBase * 0.35);
|
|
51
|
+
return draggedDistance >= dismissThreshold ? closestPoint : 0;
|
|
52
|
+
}
|
|
53
|
+
function getKeyboardOccludedHeight({ frameSize, isKeyboardVisible, keyboardHeight, screenSize, sheetY, }) {
|
|
54
|
+
if (!isKeyboardVisible ||
|
|
55
|
+
keyboardHeight <= 0 ||
|
|
56
|
+
screenSize <= 0 ||
|
|
57
|
+
frameSize <= 0 ||
|
|
58
|
+
sheetY === undefined ||
|
|
59
|
+
sheetY >= screenSize) {
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
const keyboardTop = screenSize - keyboardHeight;
|
|
63
|
+
const sheetBottom = sheetY + frameSize;
|
|
64
|
+
const occludedHeight = Math.ceil(sheetBottom - keyboardTop);
|
|
65
|
+
return Math.min(frameSize, Math.max(0, occludedHeight));
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=keyboardAvoidance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboardAvoidance.js","sourceRoot":"","sources":["../../src/keyboardAvoidance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNativeSheet = getNativeSheet;
|
|
4
|
+
exports.setupNativeSheet = setupNativeSheet;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const stacks_1 = require("@hanzogui/stacks");
|
|
7
|
+
const react_1 = require("react");
|
|
8
|
+
const react_native_1 = require("react-native");
|
|
9
|
+
const SheetContext_tsx_1 = require("./SheetContext.js");
|
|
10
|
+
const useSheetOpenState_tsx_1 = require("./useSheetOpenState.js");
|
|
11
|
+
const useSheetProviderProps_tsx_1 = require("./useSheetProviderProps.js");
|
|
12
|
+
const nativeSheets = {
|
|
13
|
+
ios: null,
|
|
14
|
+
};
|
|
15
|
+
function getNativeSheet(platform) {
|
|
16
|
+
return nativeSheets[platform];
|
|
17
|
+
}
|
|
18
|
+
function setupNativeSheet(platform, RNIOSModal) {
|
|
19
|
+
const { ModalSheetView, ModalSheetViewMainContent } = RNIOSModal;
|
|
20
|
+
if (platform === 'ios') {
|
|
21
|
+
nativeSheets[platform] = (props) => {
|
|
22
|
+
const state = (0, useSheetOpenState_tsx_1.useSheetOpenState)(props);
|
|
23
|
+
const providerProps = (0, useSheetProviderProps_tsx_1.useSheetProviderProps)(props, state);
|
|
24
|
+
// const { position } = providerProps
|
|
25
|
+
// const { positions } = useSheetSnapPoints(providerProps)
|
|
26
|
+
const { open, setOpen } = state;
|
|
27
|
+
const ref = (0, react_1.useRef)(undefined);
|
|
28
|
+
(0, react_1.useEffect)(() => {
|
|
29
|
+
if (open) {
|
|
30
|
+
ref.current?.presentModal();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
ref.current?.dismissModal();
|
|
34
|
+
}
|
|
35
|
+
}, [open]);
|
|
36
|
+
function setOpenInternal(next) {
|
|
37
|
+
props.onOpenChange?.(open);
|
|
38
|
+
setOpen(next);
|
|
39
|
+
}
|
|
40
|
+
// modalContentPreferredContentSize={{
|
|
41
|
+
// mode: 'percent',
|
|
42
|
+
// percentWidth: '100%',
|
|
43
|
+
// percentHeight:
|
|
44
|
+
// }}
|
|
45
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(SheetContext_tsx_1.SheetProvider, { setHasScrollView: emptyFn, keyboardOccludedHeight: 0, isKeyboardVisible: false, keyboardStableFrameHeight: 0, ...providerProps, onlyShowFrame: true, children: [(0, jsx_runtime_1.jsx)(ModalSheetView, { ref: ref, onModalDidDismiss: () => setOpenInternal(false), children: (0, jsx_runtime_1.jsx)(ModalSheetViewMainContent, { children: (0, jsx_runtime_1.jsx)(react_native_1.View, { style: { flex: 1 }, children: props.children }) }) }), (0, jsx_runtime_1.jsx)(stacks_1.YStack, { position: "absolute", opacity: 0, pointerEvents: "none", width: 0, height: 0, children: props.children })] }) }));
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const emptyFn = () => {
|
|
50
|
+
// TODO
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=nativeSheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeSheet.js","sourceRoot":"","sources":["../../src/nativeSheet.tsx"],"names":[],"mappings":";;;;;AAAA,6CAAyC;AAEzC,iCAAyC;AACzC,+CAAmC;AACnC,wDAAkD;AAElD,kEAA2D;AAC3D,0EAAmE;AAMnE,MAAM,YAAY,GAAuE;IACvF,GAAG,EAAE,IAAI;CACV,CAAA;AAED,wBAA+B,QAA8B;IAC3D,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAA;AAC/B,CAAC;AAED,0BACE,QAA8B,EAC9B,UAAmE;IAEnE,MAAM,EAAE,cAAc,EAAE,yBAAyB,EAAE,GAAG,UAAU,CAAA;IAEhE,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,IAAA,yCAAiB,EAAC,KAAK,CAAC,CAAA;YACtC,MAAM,aAAa,GAAG,IAAA,iDAAqB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACzD,qCAAqC;YACrC,0DAA0D;YAE1D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;YAC/B,MAAM,GAAG,GAAG,IAAA,cAAM,EAGf,SAAS,CAAC,CAAA;YAEb,IAAA,iBAAS,EAAC,GAAG,EAAE;gBACb,IAAI,IAAI,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;gBAC7B,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;gBAC7B,CAAC;YACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAEV,SAAS,eAAe,CAAC,IAAa;gBACpC,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAA;gBAC1B,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC;YAED,sCAAsC;YACtC,qBAAqB;YACrB,0BAA0B;YAC1B,mBAAmB;YACnB,KAAK;YAEL,OAAO,CACL,2DACE,wBAAC,gCAAa,IACZ,gBAAgB,EAAE,OAAO,EACzB,sBAAsB,EAAE,CAAC,EACzB,iBAAiB,EAAE,KAAK,EACxB,yBAAyB,EAAE,CAAC,KACxB,aAAa,EACjB,aAAa,mBAEb,uBAAC,cAAc,IAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,YACvE,uBAAC,yBAAyB,cACxB,uBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAAG,KAAK,CAAC,QAAQ,GAAQ,GACvB,GACb,EAIjB,uBAAC,eAAM,IACL,QAAQ,EAAC,UAAU,EACnB,OAAO,EAAE,CAAC,EACV,aAAa,EAAC,MAAM,EACpB,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,YAER,KAAK,CAAC,QAAQ,GACR,IACK,GACf,CACJ,CAAA;QACH,CAAC,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,GAAG,EAAE;IACnB,OAAO;AACT,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "type": "commonjs" }
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Legacy setup - prefer `import '@hanzogui/native/setup-gesture-handler'` instead.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isGestureHandlerEnabled = isGestureHandlerEnabled;
|
|
7
|
+
exports.setupGestureHandler = setupGestureHandler;
|
|
8
|
+
const native_1 = require("@hanzogui/native");
|
|
9
|
+
const SHEET_GESTURE_STATE_KEY = '__hanzogui_sheet_gesture_state__';
|
|
10
|
+
function isGestureHandlerEnabled() {
|
|
11
|
+
const g = globalThis;
|
|
12
|
+
return g[SHEET_GESTURE_STATE_KEY]?.enabled ?? (0, native_1.getGestureHandler)().isEnabled;
|
|
13
|
+
}
|
|
14
|
+
function setupGestureHandler(config) {
|
|
15
|
+
const g = globalThis;
|
|
16
|
+
if (g.__hanzogui_sheet_gesture_handler_setup) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
g.__hanzogui_sheet_gesture_handler_setup = true;
|
|
20
|
+
const { Gesture, GestureDetector, ScrollView } = config;
|
|
21
|
+
if (Gesture && GestureDetector) {
|
|
22
|
+
g[SHEET_GESTURE_STATE_KEY] = {
|
|
23
|
+
enabled: true,
|
|
24
|
+
Gesture,
|
|
25
|
+
GestureDetector,
|
|
26
|
+
ScrollView: ScrollView || null,
|
|
27
|
+
RootView: null,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=setupGestureHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupGestureHandler.js","sourceRoot":"","sources":["../../src/setupGestureHandler.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;AAEH,6CAAoD;AAIpD,MAAM,uBAAuB,GAAG,kCAAkC,CAAA;AAElE;IACE,MAAM,CAAC,GAAG,UAET,CAAA;IAED,OAAO,CAAC,CAAC,uBAAuB,CAAC,EAAE,OAAO,IAAI,IAAA,0BAAiB,GAAE,CAAC,SAAS,CAAA;AAC7E,CAAC;AAQD,6BAAoC,MAAiC;IACnE,MAAM,CAAC,GAAG,UAAiB,CAAA;IAC3B,IAAI,CAAC,CAAC,sCAAsC,EAAE,CAAC;QAC7C,OAAM;IACR,CAAC;IACD,CAAC,CAAC,sCAAsC,GAAG,IAAI,CAAA;IAE/C,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;IAEvD,IAAI,OAAO,IAAI,eAAe,EAAE,CAAC;QAC/B,CAAC,CAAC,uBAAuB,CAAC,GAAG;YAC3B,OAAO,EAAE,IAAI;YACb,OAAO;YACP,eAAe;YACf,UAAU,EAAE,UAAU,IAAI,IAAI;YAC9B,QAAQ,EAAE,IAAI;SACQ,CAAA;IAC1B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useGestureHandlerPan = useGestureHandlerPan;
|
|
4
|
+
const constants_1 = require("@hanzogui/constants");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const gestureState_ts_1 = require("./gestureState.js");
|
|
7
|
+
const keyboardAvoidance_ts_1 = require("./keyboardAvoidance.js");
|
|
8
|
+
// threshold in pixels for considering sheet "at top" position
|
|
9
|
+
// allows for small measurement variations
|
|
10
|
+
const AT_TOP_THRESHOLD = 5;
|
|
11
|
+
const SCROLL_HANDOFF_THRESHOLD = 160;
|
|
12
|
+
/**
|
|
13
|
+
* Hook that creates a Gesture.Pan() handler for use with react-native-gesture-handler.
|
|
14
|
+
* This provides native-quality gesture coordination between Sheet and ScrollView.
|
|
15
|
+
*
|
|
16
|
+
* Uses state-based decision pattern (like gorhom/bottom-sheet and react-native-actions-sheet):
|
|
17
|
+
* - Both pan and scroll gestures run simultaneously
|
|
18
|
+
* - In onChange, we decide whether to process pan or let scroll handle it
|
|
19
|
+
* - scrollBridge.setScrollEnabled toggles scroll on/off as needed
|
|
20
|
+
*
|
|
21
|
+
* Decision matrix:
|
|
22
|
+
* 1. Sheet not fully open + swiping up -> pan handles (disable scroll)
|
|
23
|
+
* 2. Sheet fully open + swiping up -> scroll handles (blockPan)
|
|
24
|
+
* 3. Sheet not fully open + swiping down -> pan handles (unless scrolled)
|
|
25
|
+
* 4. Sheet fully open + swiping down + scrollY=0 -> pan handles
|
|
26
|
+
* 5. Sheet fully open + swiping down + scrollY>0 -> scroll handles (blockPan)
|
|
27
|
+
*
|
|
28
|
+
* Returns null for the gesture if RNGH is not available or drag is disabled.
|
|
29
|
+
*/
|
|
30
|
+
function useGestureHandlerPan(config) {
|
|
31
|
+
const { positions, frameSize, setPosition, animateTo, stopSpring, scrollBridge, setIsDragging, getCurrentPosition, resisted, disableDrag, isShowingInnerSheet, setAnimatedPosition, scrollGestureRef, } = config;
|
|
32
|
+
const gestureHandlerEnabled = (0, gestureState_ts_1.isGestureHandlerEnabled)();
|
|
33
|
+
const panGestureRef = (0, react_1.useRef)(null);
|
|
34
|
+
const releaseConfigRef = (0, react_1.useRef)({
|
|
35
|
+
dismissOnSnapToBottom: config.dismissOnSnapToBottom === true,
|
|
36
|
+
snapPointsMode: config.snapPointsMode ?? 'percent',
|
|
37
|
+
isKeyboardVisible: config.isKeyboardVisible === true,
|
|
38
|
+
});
|
|
39
|
+
releaseConfigRef.current = {
|
|
40
|
+
dismissOnSnapToBottom: config.dismissOnSnapToBottom === true,
|
|
41
|
+
snapPointsMode: config.snapPointsMode ?? 'percent',
|
|
42
|
+
isKeyboardVisible: config.isKeyboardVisible === true,
|
|
43
|
+
};
|
|
44
|
+
// use refs for values that need to persist across gesture lifecycle
|
|
45
|
+
// (useMemo closure variables get reset when gesture is recreated)
|
|
46
|
+
const gestureStateRef = (0, react_1.useRef)({
|
|
47
|
+
startY: 0,
|
|
48
|
+
// track last translation when pan was active (for position calculation after handoff)
|
|
49
|
+
lastPanTranslationY: 0,
|
|
50
|
+
// accumulated position offset from all pan movements
|
|
51
|
+
accumulatedOffset: 0,
|
|
52
|
+
// track previous translation for direction detection (like actions-sheet)
|
|
53
|
+
prevTranslationY: 0,
|
|
54
|
+
// track if scroll was engaged (scrollY > 0) at some point
|
|
55
|
+
scrollEngaged: false,
|
|
56
|
+
// positions frozen at gesture start — keyboard may dismiss during drag (input blur),
|
|
57
|
+
// causing positions to revert. Frozen positions ensure stable snap calculation.
|
|
58
|
+
frozenPositions: [],
|
|
59
|
+
frozenMinY: 0,
|
|
60
|
+
frozenIsKeyboardVisible: false,
|
|
61
|
+
// whether pan gesture actually started (vs just a tap in onBegin)
|
|
62
|
+
panStarted: false,
|
|
63
|
+
startedBelowTop: false,
|
|
64
|
+
upwardDragAfterTop: 0,
|
|
65
|
+
scrollUnlockedAfterTop: false,
|
|
66
|
+
keepScrollLockedAfterEnd: false,
|
|
67
|
+
});
|
|
68
|
+
const unlockScrollTimer = (0, react_1.useRef)(null);
|
|
69
|
+
(0, react_1.useEffect)(() => {
|
|
70
|
+
return () => {
|
|
71
|
+
if (unlockScrollTimer.current) {
|
|
72
|
+
clearTimeout(unlockScrollTimer.current);
|
|
73
|
+
unlockScrollTimer.current = null;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}, []);
|
|
77
|
+
const onStart = (0, react_1.useCallback)(() => {
|
|
78
|
+
stopSpring();
|
|
79
|
+
}, [stopSpring]);
|
|
80
|
+
const onEnd = (0, react_1.useCallback)((closestPoint, animationOverride, keepScrollLocked = false) => {
|
|
81
|
+
if (unlockScrollTimer.current) {
|
|
82
|
+
clearTimeout(unlockScrollTimer.current);
|
|
83
|
+
unlockScrollTimer.current = null;
|
|
84
|
+
}
|
|
85
|
+
setIsDragging(false);
|
|
86
|
+
scrollBridge.setParentDragging(false);
|
|
87
|
+
scrollBridge.lockScrollAtTop = false;
|
|
88
|
+
if (keepScrollLocked) {
|
|
89
|
+
scrollBridge.setScrollEnabled?.(false, 0);
|
|
90
|
+
unlockScrollTimer.current = setTimeout(() => {
|
|
91
|
+
unlockScrollTimer.current = null;
|
|
92
|
+
scrollBridge.setScrollEnabled?.(true);
|
|
93
|
+
}, 160);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// re-enable scroll when gesture ends
|
|
97
|
+
scrollBridge.setScrollEnabled?.(true);
|
|
98
|
+
}
|
|
99
|
+
setPosition(closestPoint);
|
|
100
|
+
animateTo(closestPoint, animationOverride);
|
|
101
|
+
}, [setIsDragging, scrollBridge, setPosition, animateTo]);
|
|
102
|
+
const panGesture = (0, react_1.useMemo)(() => {
|
|
103
|
+
// don't create gesture if disabled or RNGH not available
|
|
104
|
+
if (!gestureHandlerEnabled || disableDrag || isShowingInnerSheet || !frameSize) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
const { Gesture } = (0, gestureState_ts_1.getGestureHandlerState)();
|
|
108
|
+
if (!Gesture) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
const minY = positions[0];
|
|
112
|
+
const gs = gestureStateRef.current; // shorthand
|
|
113
|
+
// simultaneousHandlers pattern from react-native-actions-sheet
|
|
114
|
+
// both gestures run simultaneously, we use blockPan to decide who handles
|
|
115
|
+
const gesture = Gesture.Pan()
|
|
116
|
+
.withRef(panGestureRef)
|
|
117
|
+
// NO manualActivation - let both gestures run via simultaneousHandlers
|
|
118
|
+
// activeOffsetY: activate pan when user moves 10px vertically (required on Android)
|
|
119
|
+
.activeOffsetY([-10, 10])
|
|
120
|
+
// failOffsetX: cancel pan if user moves 20px horizontally (horizontal scroll takes over)
|
|
121
|
+
.failOffsetX([-20, 20])
|
|
122
|
+
.shouldCancelWhenOutside(false)
|
|
123
|
+
.onBegin(() => {
|
|
124
|
+
// onBegin fires on ANY touch (including taps to focus inputs).
|
|
125
|
+
// We do NOT set isDragging here — that would block keyboard animation.
|
|
126
|
+
// Instead, isDragging is set in onStart (actual pan gesture recognized).
|
|
127
|
+
gs.panStarted = false;
|
|
128
|
+
// lightweight: pause keyboard handler to suppress hide events during gesture.
|
|
129
|
+
// This prevents keyboard flicker if input blurs before onStart.
|
|
130
|
+
// If this is just a tap, onFinalize un-pauses without setting isDragging.
|
|
131
|
+
if (config.pauseKeyboardHandler) {
|
|
132
|
+
config.pauseKeyboardHandler.current = true;
|
|
133
|
+
}
|
|
134
|
+
// check position at gesture begin - before direction is known
|
|
135
|
+
const pos = getCurrentPosition();
|
|
136
|
+
const atTop = pos <= minY + AT_TOP_THRESHOLD;
|
|
137
|
+
const currentScrollY = scrollBridge.y;
|
|
138
|
+
gs.startY = pos;
|
|
139
|
+
gs.lastPanTranslationY = 0;
|
|
140
|
+
gs.accumulatedOffset = 0;
|
|
141
|
+
gs.prevTranslationY = 0;
|
|
142
|
+
gs.scrollEngaged = currentScrollY > 0; // track if scroll is already engaged
|
|
143
|
+
// freeze positions at gesture start so keyboard dismiss during drag
|
|
144
|
+
// doesn't change snap targets mid-gesture
|
|
145
|
+
gs.frozenPositions = [...positions];
|
|
146
|
+
gs.frozenMinY = minY;
|
|
147
|
+
gs.frozenIsKeyboardVisible = releaseConfigRef.current.isKeyboardVisible;
|
|
148
|
+
gs.startedBelowTop = !atTop;
|
|
149
|
+
gs.upwardDragAfterTop = 0;
|
|
150
|
+
gs.scrollUnlockedAfterTop = false;
|
|
151
|
+
gs.keepScrollLockedAfterEnd = false;
|
|
152
|
+
scrollBridge.lockScrollAtTop = false;
|
|
153
|
+
if (unlockScrollTimer.current) {
|
|
154
|
+
clearTimeout(unlockScrollTimer.current);
|
|
155
|
+
unlockScrollTimer.current = null;
|
|
156
|
+
}
|
|
157
|
+
// if sheet not at top, DISABLE SCROLL immediately and lock to 0
|
|
158
|
+
// this prevents scroll from firing before pan takes over
|
|
159
|
+
if (!atTop) {
|
|
160
|
+
scrollBridge.setScrollEnabled?.(false, 0);
|
|
161
|
+
}
|
|
162
|
+
})
|
|
163
|
+
.onStart(() => {
|
|
164
|
+
// onStart fires only when pan gesture is recognized (finger moved enough).
|
|
165
|
+
// Safe to set isDragging here — this won't fire for taps to focus inputs.
|
|
166
|
+
gs.panStarted = true;
|
|
167
|
+
setIsDragging(true);
|
|
168
|
+
scrollBridge.initialPosition = gs.startY;
|
|
169
|
+
onStart();
|
|
170
|
+
})
|
|
171
|
+
.onChange((event) => {
|
|
172
|
+
const { translationY } = event;
|
|
173
|
+
// determine direction by comparing translations (like react-native-actions-sheet)
|
|
174
|
+
// this is more reliable than velocity which can be noisy during direction changes
|
|
175
|
+
const isSwipingDown = gs.prevTranslationY < translationY;
|
|
176
|
+
const deltaY = translationY - gs.prevTranslationY;
|
|
177
|
+
gs.prevTranslationY = translationY;
|
|
178
|
+
const scrollY = scrollBridge.y;
|
|
179
|
+
// track if scroll has been engaged at some point (needed for handoff detection)
|
|
180
|
+
if (scrollY > 0) {
|
|
181
|
+
gs.scrollEngaged = true;
|
|
182
|
+
}
|
|
183
|
+
// calculate current sheet position based on accumulated offset
|
|
184
|
+
const currentPos = gs.startY + gs.accumulatedOffset;
|
|
185
|
+
const isCurrentlyAtTop = currentPos <= minY + AT_TOP_THRESHOLD;
|
|
186
|
+
const nodeIsScrolling = scrollY > 0;
|
|
187
|
+
// decision matrix (from react-native-actions-sheet pattern)
|
|
188
|
+
// each frame, decide who handles the movement based on current state
|
|
189
|
+
//
|
|
190
|
+
// Key insight: we track accumulated offset separately from translation
|
|
191
|
+
// This allows seamless handoffs between pan and scroll
|
|
192
|
+
let panHandles = false;
|
|
193
|
+
// BUG #1 FIX: Check if scroll content is actually scrollable
|
|
194
|
+
// If content doesn't fill the ScrollView, gestures should pass through to sheet
|
|
195
|
+
const hasScrollableContent = scrollBridge.hasScrollableContent !== false;
|
|
196
|
+
if (!isCurrentlyAtTop) {
|
|
197
|
+
// sheet not at top position
|
|
198
|
+
if (isSwipingDown) {
|
|
199
|
+
// swiping down while sheet not at top
|
|
200
|
+
// BUG #1 FIX: if content not scrollable, pan always handles
|
|
201
|
+
// only scroll if scrollY > 0 AND content is scrollable, otherwise pan handles
|
|
202
|
+
panHandles = !nodeIsScrolling || !hasScrollableContent;
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
// swiping up while sheet not at top -> pan drags sheet up
|
|
206
|
+
panHandles = true;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
// sheet is at top position
|
|
211
|
+
if (isSwipingDown) {
|
|
212
|
+
// swiping down at top
|
|
213
|
+
if (nodeIsScrolling && hasScrollableContent) {
|
|
214
|
+
// scroll > 0 and content scrollable, let scroll handle (scroll back towards 0)
|
|
215
|
+
panHandles = false;
|
|
216
|
+
}
|
|
217
|
+
else if (gs.scrollEngaged && hasScrollableContent) {
|
|
218
|
+
// scroll WAS > 0 but now is 0 -> handoff from scroll to pan
|
|
219
|
+
// pan takes over to drag sheet down
|
|
220
|
+
panHandles = true;
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
// scroll never engaged OR content not scrollable, just drag sheet down
|
|
224
|
+
panHandles = true;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
// swiping up at top
|
|
229
|
+
// if there's scrollable content, let scroll handle so user can scroll into content
|
|
230
|
+
// resistance only applies when there's NO scrollable content
|
|
231
|
+
if (hasScrollableContent) {
|
|
232
|
+
if (gs.startedBelowTop && !gs.scrollUnlockedAfterTop) {
|
|
233
|
+
gs.upwardDragAfterTop += Math.max(0, -deltaY);
|
|
234
|
+
if (gs.upwardDragAfterTop >= SCROLL_HANDOFF_THRESHOLD) {
|
|
235
|
+
gs.scrollUnlockedAfterTop = true;
|
|
236
|
+
panHandles = false;
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
panHandles = true;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
// content is scrollable - let scroll handle (user wants to scroll down into content)
|
|
244
|
+
panHandles = false;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
// no scrollable content -> pan handles for resistance effect
|
|
249
|
+
panHandles = true;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
if (panHandles) {
|
|
254
|
+
scrollBridge.lockScrollAtTop = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
|
|
255
|
+
// pan handles - disable scroll and move sheet
|
|
256
|
+
// when swiping down at top after scroll was engaged: lock at current scroll position
|
|
257
|
+
// (handoff from scroll to pan — preserve scroll offset)
|
|
258
|
+
// otherwise: always lock scroll to 0 (prevents scroll from firing during sheet drag)
|
|
259
|
+
const lockTo = isCurrentlyAtTop && isSwipingDown && gs.scrollEngaged ? undefined : 0;
|
|
260
|
+
scrollBridge.setScrollEnabled?.(false, lockTo);
|
|
261
|
+
// accumulate the delta for position calculation
|
|
262
|
+
gs.accumulatedOffset += deltaY;
|
|
263
|
+
const newPosition = resisted(gs.startY + gs.accumulatedOffset, minY);
|
|
264
|
+
// update position
|
|
265
|
+
scrollBridge.paneY = newPosition;
|
|
266
|
+
setAnimatedPosition(newPosition);
|
|
267
|
+
scrollBridge.setParentDragging(newPosition > minY);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
scrollBridge.lockScrollAtTop = false;
|
|
271
|
+
// scroll handles - enable scroll so it can move freely
|
|
272
|
+
scrollBridge.setScrollEnabled?.(true);
|
|
273
|
+
scrollBridge.setParentDragging(false);
|
|
274
|
+
// don't accumulate offset when scroll is handling
|
|
275
|
+
}
|
|
276
|
+
})
|
|
277
|
+
.onEnd((event) => {
|
|
278
|
+
const { velocityY } = event;
|
|
279
|
+
const currentPos = gs.startY + gs.accumulatedOffset;
|
|
280
|
+
const keepScrollLockedAfterEnd = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
|
|
281
|
+
// clear scroll lock
|
|
282
|
+
scrollBridge.lockScrollAtTop = false;
|
|
283
|
+
scrollBridge.scrollLockY = keepScrollLockedAfterEnd ? 0 : undefined;
|
|
284
|
+
gs.keepScrollLockedAfterEnd = keepScrollLockedAfterEnd;
|
|
285
|
+
// use frozen positions from gesture start — keyboard may have dismissed
|
|
286
|
+
// during drag (input blur), reverting activePositions. Frozen positions
|
|
287
|
+
// ensure the snap index reflects the user's intent at drag start.
|
|
288
|
+
// The onEnd callback's animateTo uses latest activePositions for the
|
|
289
|
+
// actual animation target, so the sheet ends up at the right place.
|
|
290
|
+
const snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions;
|
|
291
|
+
const snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
|
|
292
|
+
// if sheet is at top and scroll is engaged, just stay at top
|
|
293
|
+
if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
|
|
294
|
+
onEnd(0, undefined, keepScrollLockedAfterEnd);
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
// snap calculation using frozen positions
|
|
298
|
+
const velocity = velocityY / 1000;
|
|
299
|
+
const projectedEnd = currentPos + frameSize * velocity * 0.2;
|
|
300
|
+
const releaseConfig = releaseConfigRef.current;
|
|
301
|
+
const closestPoint = (0, keyboardAvoidance_ts_1.getSheetReleasePosition)({
|
|
302
|
+
positions: snapPositions,
|
|
303
|
+
projectedEnd,
|
|
304
|
+
currentPosition: currentPos,
|
|
305
|
+
frameSize,
|
|
306
|
+
dismissOnSnapToBottom: releaseConfig.dismissOnSnapToBottom,
|
|
307
|
+
snapPointsMode: releaseConfig.snapPointsMode,
|
|
308
|
+
isKeyboardVisible: gs.frozenIsKeyboardVisible,
|
|
309
|
+
isWeb: constants_1.isWeb,
|
|
310
|
+
});
|
|
311
|
+
onEnd(closestPoint, undefined, keepScrollLockedAfterEnd);
|
|
312
|
+
})
|
|
313
|
+
.onFinalize(() => {
|
|
314
|
+
// clear scroll lock on finalize too (safety)
|
|
315
|
+
scrollBridge.lockScrollAtTop = false;
|
|
316
|
+
scrollBridge.scrollLockY = gs.keepScrollLockedAfterEnd ? 0 : undefined;
|
|
317
|
+
if (gs.panStarted) {
|
|
318
|
+
// real pan gesture — reset isDragging (also un-pauses keyboard handler + flushes)
|
|
319
|
+
setIsDragging(false);
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
// just a tap (onBegin fired but onStart never did) — un-pause keyboard handler
|
|
323
|
+
// without setting isDragging (which would block keyboard animation effect)
|
|
324
|
+
if (config.pauseKeyboardHandler) {
|
|
325
|
+
config.pauseKeyboardHandler.current = false;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
})
|
|
329
|
+
.runOnJS(true);
|
|
330
|
+
// if we have a scroll gesture ref, make pan simultaneous with it
|
|
331
|
+
// this allows both gestures to run and we decide in onChange who handles it
|
|
332
|
+
if (scrollGestureRef?.current) {
|
|
333
|
+
return gesture.simultaneousWithExternalGesture(scrollGestureRef.current);
|
|
334
|
+
}
|
|
335
|
+
return gesture;
|
|
336
|
+
}, [
|
|
337
|
+
gestureHandlerEnabled,
|
|
338
|
+
disableDrag,
|
|
339
|
+
isShowingInnerSheet,
|
|
340
|
+
frameSize,
|
|
341
|
+
positions,
|
|
342
|
+
scrollBridge,
|
|
343
|
+
getCurrentPosition,
|
|
344
|
+
resisted,
|
|
345
|
+
onStart,
|
|
346
|
+
onEnd,
|
|
347
|
+
setIsDragging,
|
|
348
|
+
setAnimatedPosition,
|
|
349
|
+
]);
|
|
350
|
+
return {
|
|
351
|
+
panGesture,
|
|
352
|
+
panGestureRef,
|
|
353
|
+
gestureHandlerEnabled,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
//# sourceMappingURL=useGestureHandlerPan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGestureHandlerPan.js","sourceRoot":"","sources":["../../src/useGestureHandlerPan.tsx"],"names":[],"mappings":"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"}
|