@hanzogui/sheet 7.3.0 → 8.0.0
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/.turbo/turbo-build.log +2 -0
- package/controller/index.cjs +2 -0
- package/controller/index.d.ts +5 -0
- package/controller/index.js +2 -0
- package/controller/index.native.cjs +2 -0
- package/controller/index.native.js +2 -0
- package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -1
- package/dist/cjs/SheetImplementationCustom.cjs +137 -74
- package/dist/cjs/SheetImplementationCustom.native.js +162 -83
- package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
- package/dist/cjs/SheetScrollView.cjs +155 -34
- package/dist/cjs/SheetScrollView.native.js +160 -35
- package/dist/cjs/SheetScrollView.native.js.map +1 -1
- package/dist/cjs/createSheet.cjs +7 -3
- package/dist/cjs/createSheet.native.js +7 -3
- package/dist/cjs/createSheet.native.js.map +1 -1
- package/dist/cjs/gestureState.cjs +13 -2
- package/dist/cjs/gestureState.native.js +14 -2
- package/dist/cjs/gestureState.native.js.map +1 -1
- package/dist/cjs/index.cjs +12 -1
- package/dist/cjs/index.native.js +11 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/keyboardAvoidance.cjs +93 -0
- package/dist/cjs/keyboardAvoidance.native.js +99 -0
- package/dist/cjs/keyboardAvoidance.native.js.map +1 -0
- package/dist/cjs/nativeSheet.cjs +3 -0
- package/dist/cjs/nativeSheet.native.js +3 -0
- package/dist/cjs/nativeSheet.native.js.map +1 -1
- package/dist/cjs/setupGestureHandler.cjs +9 -6
- package/dist/cjs/setupGestureHandler.native.js +11 -6
- package/dist/cjs/setupGestureHandler.native.js.map +1 -1
- package/dist/cjs/useGestureHandlerPan.cjs +86 -18
- package/dist/cjs/useGestureHandlerPan.native.js +91 -18
- package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
- package/dist/cjs/useKeyboardControllerSheet.cjs +68 -6
- package/dist/cjs/useSafeAreaInsets.cjs +44 -0
- package/dist/cjs/useSafeAreaInsets.native.js +48 -0
- package/dist/cjs/useSafeAreaInsets.native.js.map +1 -0
- package/dist/cjs/useSheetProviderProps.cjs +1 -1
- package/dist/cjs/useSheetProviderProps.native.js +1 -1
- package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
- package/dist/cjs/useSheetScrollViewGestures.cjs +30 -5
- package/dist/cjs/useSheetScrollViewGestures.native.js +4 -0
- package/dist/cjs/useSheetScrollViewGestures.native.js.map +1 -1
- package/dist/cjs/webViewport.cjs +75 -0
- package/dist/cjs/webViewport.native.js +81 -0
- package/dist/cjs/webViewport.native.js.map +1 -0
- package/dist/esm/GestureDetectorWrapper.mjs.map +1 -1
- package/dist/esm/GestureDetectorWrapper.native.js.map +1 -1
- package/dist/esm/SheetImplementationCustom.mjs +143 -84
- package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
- package/dist/esm/SheetImplementationCustom.native.js +173 -102
- package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +157 -36
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +162 -37
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/createSheet.mjs +9 -6
- package/dist/esm/createSheet.mjs.map +1 -1
- package/dist/esm/createSheet.native.js +19 -15
- package/dist/esm/createSheet.native.js.map +1 -1
- package/dist/esm/gestureState.mjs +13 -2
- package/dist/esm/gestureState.mjs.map +1 -1
- package/dist/esm/gestureState.native.js +14 -2
- package/dist/esm/gestureState.native.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/keyboardAvoidance.mjs +66 -0
- package/dist/esm/keyboardAvoidance.mjs.map +1 -0
- package/dist/esm/keyboardAvoidance.native.js +69 -0
- package/dist/esm/keyboardAvoidance.native.js.map +1 -0
- package/dist/esm/nativeSheet.mjs +3 -0
- package/dist/esm/nativeSheet.mjs.map +1 -1
- package/dist/esm/nativeSheet.native.js +3 -0
- package/dist/esm/nativeSheet.native.js.map +1 -1
- package/dist/esm/setupGestureHandler.mjs +9 -6
- package/dist/esm/setupGestureHandler.mjs.map +1 -1
- package/dist/esm/setupGestureHandler.native.js +11 -6
- package/dist/esm/setupGestureHandler.native.js.map +1 -1
- package/dist/esm/useGestureHandlerPan.mjs +87 -19
- package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
- package/dist/esm/useGestureHandlerPan.native.js +92 -19
- package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
- package/dist/esm/useKeyboardControllerSheet.mjs +69 -7
- package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -1
- package/dist/esm/useSafeAreaInsets.mjs +7 -0
- package/dist/esm/useSafeAreaInsets.mjs.map +1 -0
- package/dist/esm/useSafeAreaInsets.native.js +8 -0
- package/dist/esm/useSafeAreaInsets.native.js.map +1 -0
- package/dist/esm/useSheetProviderProps.mjs +1 -1
- package/dist/esm/useSheetProviderProps.mjs.map +1 -1
- package/dist/esm/useSheetProviderProps.native.js +1 -1
- package/dist/esm/useSheetProviderProps.native.js.map +1 -1
- package/dist/esm/useSheetScrollViewGestures.mjs +30 -5
- package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -1
- package/dist/esm/useSheetScrollViewGestures.native.js +4 -0
- package/dist/esm/useSheetScrollViewGestures.native.js.map +1 -1
- package/dist/esm/webViewport.mjs +43 -0
- package/dist/esm/webViewport.mjs.map +1 -0
- package/dist/esm/webViewport.native.js +46 -0
- package/dist/esm/webViewport.native.js.map +1 -0
- package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -1
- package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -1
- package/dist/jsx/SheetImplementationCustom.mjs +143 -84
- package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.native.js +162 -83
- package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +157 -36
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.js +160 -35
- package/dist/jsx/SheetScrollView.native.js.map +1 -1
- package/dist/jsx/createSheet.mjs +9 -6
- package/dist/jsx/createSheet.mjs.map +1 -1
- package/dist/jsx/createSheet.native.js +7 -3
- package/dist/jsx/createSheet.native.js.map +1 -1
- package/dist/jsx/gestureState.mjs +13 -2
- package/dist/jsx/gestureState.mjs.map +1 -1
- package/dist/jsx/gestureState.native.js +14 -2
- package/dist/jsx/gestureState.native.js.map +1 -1
- package/dist/jsx/index.js +2 -0
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -0
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +11 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/keyboardAvoidance.mjs +66 -0
- package/dist/jsx/keyboardAvoidance.mjs.map +1 -0
- package/dist/jsx/keyboardAvoidance.native.js +99 -0
- package/dist/jsx/keyboardAvoidance.native.js.map +1 -0
- package/dist/jsx/nativeSheet.mjs +3 -0
- package/dist/jsx/nativeSheet.mjs.map +1 -1
- package/dist/jsx/nativeSheet.native.js +3 -0
- package/dist/jsx/nativeSheet.native.js.map +1 -1
- package/dist/jsx/setupGestureHandler.mjs +9 -6
- package/dist/jsx/setupGestureHandler.mjs.map +1 -1
- package/dist/jsx/setupGestureHandler.native.js +11 -6
- package/dist/jsx/setupGestureHandler.native.js.map +1 -1
- package/dist/jsx/useGestureHandlerPan.mjs +87 -19
- package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
- package/dist/jsx/useGestureHandlerPan.native.js +91 -18
- package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
- package/dist/jsx/useKeyboardControllerSheet.mjs +69 -7
- package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -1
- package/dist/jsx/useSafeAreaInsets.mjs +7 -0
- package/dist/jsx/useSafeAreaInsets.mjs.map +1 -0
- package/dist/jsx/useSafeAreaInsets.native.js +48 -0
- package/dist/jsx/useSafeAreaInsets.native.js.map +1 -0
- package/dist/jsx/useSheetProviderProps.mjs +1 -1
- package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
- package/dist/jsx/useSheetProviderProps.native.js +1 -1
- package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
- package/dist/jsx/useSheetScrollViewGestures.mjs +30 -5
- package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -1
- package/dist/jsx/useSheetScrollViewGestures.native.js +4 -0
- package/dist/jsx/useSheetScrollViewGestures.native.js.map +1 -1
- package/dist/jsx/webViewport.mjs +43 -0
- package/dist/jsx/webViewport.mjs.map +1 -0
- package/dist/jsx/webViewport.native.js +81 -0
- package/dist/jsx/webViewport.native.js.map +1 -0
- package/next.md +78 -0
- package/package.json +30 -48
- package/setup-gesture-handler/index.cjs +2 -0
- package/setup-gesture-handler/index.js +2 -0
- package/setup-gesture-handler/index.native.cjs +2 -0
- package/setup-gesture-handler/index.native.js +2 -0
- package/src/GestureDetectorWrapper.tsx +0 -3
- package/src/SheetImplementationCustom.tsx +387 -127
- package/src/SheetScrollView.tsx +195 -22
- package/src/createSheet.tsx +20 -7
- package/src/gestureState.ts +22 -2
- package/src/index.ts +4 -0
- package/src/keyboardAvoidance.ts +121 -0
- package/src/nativeSheet.tsx +8 -1
- package/src/setupGestureHandler.ts +14 -5
- package/src/types.tsx +20 -1
- package/src/useGestureHandlerPan.tsx +94 -35
- package/src/useKeyboardControllerSheet.ts +127 -10
- package/src/useSafeAreaInsets.native.ts +29 -0
- package/src/useSafeAreaInsets.ts +19 -0
- package/src/useSheetProviderProps.tsx +12 -1
- package/src/useSheetScrollViewGestures.native.ts +4 -0
- package/src/useSheetScrollViewGestures.ts +52 -5
- package/src/webViewport.ts +100 -0
- package/test/keyboardAvoidance.test.ts +269 -0
- package/tsconfig.json +57 -0
- 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 +6 -5
- package/types/Sheet.d.ts.map +1 -1
- package/types/SheetContext.d.ts +5 -2
- package/types/SheetContext.d.ts.map +1 -1
- package/types/SheetController.d.ts +1 -2
- package/types/SheetController.d.ts.map +1 -1
- package/types/SheetImplementationCustom.d.ts +1 -0
- package/types/SheetImplementationCustom.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts.map +1 -1
- package/types/createSheet.d.ts +13 -12
- package/types/createSheet.d.ts.map +1 -1
- package/types/gestureState.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/keyboardAvoidance.d.ts +26 -0
- package/types/keyboardAvoidance.d.ts.map +1 -0
- package/types/nativeSheet.d.ts.map +1 -1
- package/types/setupGestureHandler.d.ts.map +1 -1
- package/types/types.d.ts +10 -1
- package/types/types.d.ts.map +1 -1
- package/types/useGestureHandlerPan.d.ts +4 -1
- package/types/useGestureHandlerPan.d.ts.map +1 -1
- package/types/useKeyboardControllerSheet.d.ts +14 -3
- package/types/useKeyboardControllerSheet.d.ts.map +1 -1
- package/types/useSafeAreaInsets.d.ts +10 -0
- package/types/useSafeAreaInsets.d.ts.map +1 -0
- package/types/useSafeAreaInsets.native.d.ts +20 -0
- package/types/useSafeAreaInsets.native.d.ts.map +1 -0
- package/types/useSheetProviderProps.d.ts +3 -0
- package/types/useSheetProviderProps.d.ts.map +1 -1
- package/types/useSheetScrollViewGestures.d.ts +2 -1
- package/types/useSheetScrollViewGestures.d.ts.map +1 -1
- package/types/useSheetScrollViewGestures.native.d.ts.map +1 -1
- package/types/webViewport.d.ts +36 -0
- package/types/webViewport.d.ts.map +1 -0
- package/LICENSE +0 -42
package/next.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Sheet ScrollView Gesture Handoff - Next Steps
|
|
2
|
+
|
|
3
|
+
## Current Limitation
|
|
4
|
+
|
|
5
|
+
The Sheet + ScrollView gesture coordination on native iOS has limitations because Gui uses React Native's built-in `PanResponder`, while iOS's `UIScrollView` gesture recognizers fire BEFORE the RN responder system can claim the gesture.
|
|
6
|
+
|
|
7
|
+
This causes:
|
|
8
|
+
|
|
9
|
+
- Minor scroll "flicker" when starting to drag down from scroll top
|
|
10
|
+
- Imperfect handoff between scroll and sheet drag gestures
|
|
11
|
+
|
|
12
|
+
## Ideal Solution: react-native-gesture-handler Integration
|
|
13
|
+
|
|
14
|
+
Both `gorhom/bottom-sheet` and `react-native-actions-sheet` solve this by using `react-native-gesture-handler` which provides:
|
|
15
|
+
|
|
16
|
+
1. **`simultaneousHandlers`** - allows coordinating multiple gesture recognizers
|
|
17
|
+
2. **`GestureDetector`** with worklets - can check conditions and decide who handles gesture before it starts
|
|
18
|
+
3. **Native gesture coordination** - works at the iOS/Android gesture recognizer level, not the JS responder level
|
|
19
|
+
|
|
20
|
+
## Proposed API
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { setupGestureHandler } from '@hanzogui/sheet'
|
|
24
|
+
import { GestureHandlerRootView } from 'react-native-gesture-handler'
|
|
25
|
+
|
|
26
|
+
// Call once at app startup (optional - falls back to PanResponder)
|
|
27
|
+
setupGestureHandler({
|
|
28
|
+
// Pass the gesture handler module so we don't add it as a hard dependency
|
|
29
|
+
GestureDetector: require('react-native-gesture-handler').GestureDetector,
|
|
30
|
+
Gesture: require('react-native-gesture-handler').Gesture,
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
// Then wrap app
|
|
34
|
+
export default function App() {
|
|
35
|
+
return (
|
|
36
|
+
<GestureHandlerRootView style={{ flex: 1 }}>
|
|
37
|
+
<YourApp />
|
|
38
|
+
</GestureHandlerRootView>
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Implementation Notes
|
|
44
|
+
|
|
45
|
+
If `setupGestureHandler()` is called:
|
|
46
|
+
|
|
47
|
+
- Use `GestureDetector` with `Gesture.Pan()` instead of `PanResponder`
|
|
48
|
+
- Use `simultaneousHandlers` to coordinate with ScrollView's gesture
|
|
49
|
+
- Implement `blockPan` flag pattern from actions-sheet for smooth handoff
|
|
50
|
+
|
|
51
|
+
If not called:
|
|
52
|
+
|
|
53
|
+
- Fall back to current `PanResponder` implementation
|
|
54
|
+
- Accept the minor limitations on native
|
|
55
|
+
|
|
56
|
+
## References
|
|
57
|
+
|
|
58
|
+
- gorhom/bottom-sheet: Uses Reanimated worklets + gesture handler
|
|
59
|
+
- react-native-actions-sheet: Uses `blockPan` flag pattern with gesture handler
|
|
60
|
+
- Both are MIT licensed and can be used as reference
|
|
61
|
+
|
|
62
|
+
## Files to Modify
|
|
63
|
+
|
|
64
|
+
- `SheetImplementationCustom.tsx` - Replace PanResponder with GestureDetector
|
|
65
|
+
- `SheetScrollView.tsx` - Use `useScrollHandlers()` pattern from actions-sheet
|
|
66
|
+
- Add `setupGestureHandler.ts` for optional gesture handler registration
|
|
67
|
+
|
|
68
|
+
## Test Case
|
|
69
|
+
|
|
70
|
+
There's a test case at `apps/kitchen-sink/src/usecases/SheetScrollableDrag.tsx` that demonstrates the bug and can be used to verify fixes. It's not exported in the main navigation but can be accessed directly for testing.
|
|
71
|
+
|
|
72
|
+
## Attempted Fixes
|
|
73
|
+
|
|
74
|
+
1. **Native scroll enable/disable based on pane position** - Tried disabling scroll when sheet is not at top position, but this completely broke scrolling because the initial pane position values aren't set correctly on mount.
|
|
75
|
+
|
|
76
|
+
2. **PaneY change listeners** - Added `onPaneYChange`/`setPaneY` to ScrollBridge to notify ScrollView of position changes during drag, but the fundamental issue remains that iOS UIScrollView gesture recognizers fire before RN's responder system.
|
|
77
|
+
|
|
78
|
+
The core issue is architectural: React Native's PanResponder cannot coordinate with iOS's native UIScrollView gesture recognizers at the right level. The only real solution is `react-native-gesture-handler` integration.
|
package/package.json
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzogui/sheet",
|
|
3
|
-
"version": "
|
|
4
|
-
"license": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
|
+
"license": "MIT",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"sideEffects":
|
|
8
|
-
"*.css"
|
|
9
|
-
],
|
|
7
|
+
"sideEffects": false,
|
|
10
8
|
"main": "dist/cjs",
|
|
11
9
|
"module": "dist/esm",
|
|
12
10
|
"types": "./types/index.d.ts",
|
|
@@ -35,7 +33,7 @@
|
|
|
35
33
|
"module": "./dist/esm/controller.mjs",
|
|
36
34
|
"import": "./dist/esm/controller.mjs",
|
|
37
35
|
"require": "./dist/cjs/controller.cjs",
|
|
38
|
-
"default": "./dist/
|
|
36
|
+
"default": "./dist/esm/controller.mjs"
|
|
39
37
|
},
|
|
40
38
|
"./setup-gesture-handler": {
|
|
41
39
|
"types": "./types/setupGestureHandler.d.ts",
|
|
@@ -51,56 +49,40 @@
|
|
|
51
49
|
"access": "public"
|
|
52
50
|
},
|
|
53
51
|
"scripts": {
|
|
54
|
-
"build": "
|
|
55
|
-
"watch": "
|
|
56
|
-
"clean": "
|
|
52
|
+
"build": "hanzogui-build",
|
|
53
|
+
"watch": "hanzogui-build --watch",
|
|
54
|
+
"clean": "hanzogui-build clean"
|
|
57
55
|
},
|
|
58
56
|
"dependencies": {
|
|
59
|
-
"@hanzogui/adapt": "
|
|
60
|
-
"@hanzogui/animate-presence": "
|
|
61
|
-
"@hanzogui/animations-react-native": "
|
|
62
|
-
"@hanzogui/compose-refs": "
|
|
63
|
-
"@hanzogui/constants": "
|
|
64
|
-
"@hanzogui/core": "
|
|
65
|
-
"@hanzogui/create-context": "
|
|
66
|
-
"@hanzogui/helpers": "
|
|
67
|
-
"@hanzogui/native": "
|
|
68
|
-
"@hanzogui/portal": "
|
|
69
|
-
"@hanzogui/remove-scroll": "
|
|
70
|
-
"@hanzogui/scroll-view": "
|
|
71
|
-
"@hanzogui/stacks": "
|
|
72
|
-
"@hanzogui/use-constant": "
|
|
73
|
-
"@hanzogui/use-controllable-state": "
|
|
74
|
-
"@hanzogui/use-did-finish-ssr": "
|
|
75
|
-
"@hanzogui/use-keyboard-visible": "
|
|
76
|
-
"@hanzogui/z-index-stack": "
|
|
57
|
+
"@hanzogui/adapt": "8.0.0",
|
|
58
|
+
"@hanzogui/animate-presence": "8.0.0",
|
|
59
|
+
"@hanzogui/animations-react-native": "8.0.0",
|
|
60
|
+
"@hanzogui/compose-refs": "8.0.0",
|
|
61
|
+
"@hanzogui/constants": "8.0.0",
|
|
62
|
+
"@hanzogui/core": "8.0.0",
|
|
63
|
+
"@hanzogui/create-context": "8.0.0",
|
|
64
|
+
"@hanzogui/helpers": "8.0.0",
|
|
65
|
+
"@hanzogui/native": "8.0.0",
|
|
66
|
+
"@hanzogui/portal": "8.0.0",
|
|
67
|
+
"@hanzogui/remove-scroll": "8.0.0",
|
|
68
|
+
"@hanzogui/scroll-view": "8.0.0",
|
|
69
|
+
"@hanzogui/stacks": "8.0.0",
|
|
70
|
+
"@hanzogui/use-constant": "8.0.0",
|
|
71
|
+
"@hanzogui/use-controllable-state": "8.0.0",
|
|
72
|
+
"@hanzogui/use-did-finish-ssr": "8.0.0",
|
|
73
|
+
"@hanzogui/use-keyboard-visible": "8.0.0",
|
|
74
|
+
"@hanzogui/z-index-stack": "8.0.0"
|
|
77
75
|
},
|
|
78
76
|
"devDependencies": {
|
|
79
|
-
"@hanzogui/build": "
|
|
77
|
+
"@hanzogui/build": "8.0.0",
|
|
80
78
|
"react": ">=19",
|
|
81
79
|
"react-native": "0.83.2",
|
|
82
|
-
"react-native-gesture-handler": "~2.30.0"
|
|
80
|
+
"react-native-gesture-handler": "~2.30.0",
|
|
81
|
+
"react-native-safe-area-context": "~5.7.0"
|
|
83
82
|
},
|
|
84
83
|
"peerDependencies": {
|
|
85
|
-
"react": ">=19"
|
|
86
|
-
"react-native": "*",
|
|
87
|
-
"react-native-gesture-handler": ">=2.0.0"
|
|
88
|
-
},
|
|
89
|
-
"peerDependenciesMeta": {
|
|
90
|
-
"react-native-gesture-handler": {
|
|
91
|
-
"optional": true
|
|
92
|
-
}
|
|
84
|
+
"react": ">=19"
|
|
93
85
|
},
|
|
94
86
|
"module:jsx": "dist/jsx",
|
|
95
|
-
"removeSideEffects": true
|
|
96
|
-
"files": [
|
|
97
|
-
"dist",
|
|
98
|
-
"src",
|
|
99
|
-
"types",
|
|
100
|
-
"*.cjs",
|
|
101
|
-
"*.mjs",
|
|
102
|
-
"*.css",
|
|
103
|
-
"README.md"
|
|
104
|
-
],
|
|
105
|
-
"author": "Hanzo AI <dev@hanzo.ai>"
|
|
87
|
+
"removeSideEffects": true
|
|
106
88
|
}
|
|
@@ -20,13 +20,10 @@ export function GestureDetectorWrapper({
|
|
|
20
20
|
const { GestureDetector } = getGestureHandlerState()
|
|
21
21
|
const enabled = isGestureHandlerEnabled()
|
|
22
22
|
|
|
23
|
-
// console.warn('[RNGH-Wrapper] enabled:', enabled, 'hasDetector:', !!GestureDetector, 'hasGesture:', !!gesture)
|
|
24
|
-
|
|
25
23
|
// only wrap if we have RNGH available AND a gesture to attach
|
|
26
24
|
if (enabled && GestureDetector && gesture) {
|
|
27
25
|
// GestureDetector needs a native View to attach handlers to
|
|
28
26
|
// the View wrapper ensures proper gesture propagation
|
|
29
|
-
// console.warn('[RNGH-Wrapper] WRAPPING')
|
|
30
27
|
return (
|
|
31
28
|
<GestureDetector gesture={gesture}>
|
|
32
29
|
<View style={style} collapsable={false}>
|