UNPKG

@attio/react-native-bottom-sheet-toolbox

Version:
55 lines (54 loc) 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BottomSheetScrollGestureDetector = BottomSheetScrollGestureDetector; exports.useBottomSheetScrollGestureDetectorConnector = useBottomSheetScrollGestureDetectorConnector; var _reactNativeGestureHandler = require("react-native-gesture-handler"); var _reactNativeReanimated = require("react-native-reanimated"); var _hooks = require("../hooks"); var _jsxRuntime = require("react/jsx-runtime"); function BottomSheetScrollGestureDetector({ children, ...rest }) { const gesture = (0, _hooks.useBottomSheetScrollGesture)(rest); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector, { gesture: gesture, children: children }); } function useBottomSheetScrollGestureDetectorConnector(scrollDefaults = {}) { const scrollRef = (0, _reactNativeReanimated.useAnimatedRef)(); const scrollOffsetYSharedValue = (0, _reactNativeReanimated.useSharedValue)(0); const scrollContentHeightSharedValue = (0, _reactNativeReanimated.useSharedValue)(null); const scrollLayoutHeightSharedValue = (0, _reactNativeReanimated.useSharedValue)(null); const scrollHandler = (0, _reactNativeReanimated.useAnimatedScrollHandler)({ onScroll: (event, context) => { scrollDefaults.onScroll?.(event, context); scrollOffsetYSharedValue.set(event.contentOffset.y); scrollContentHeightSharedValue.set(event.contentSize.height); scrollLayoutHeightSharedValue.set(event.layoutMeasurement.height); }, onBeginDrag: (event, context) => { scrollDefaults.onBeginDrag?.(event, context); }, onEndDrag: (event, context) => { scrollDefaults.onEndDrag?.(event, context); }, onMomentumBegin: (event, context) => { scrollDefaults.onMomentumBegin?.(event, context); }, onMomentumEnd: (event, context) => { scrollDefaults.onMomentumEnd?.(event, context); } }, [scrollDefaults.onScroll, scrollDefaults.onBeginDrag, scrollDefaults.onEndDrag, scrollDefaults.onMomentumBegin, scrollDefaults.onMomentumEnd]); return { scrollRef, scrollHandler, scrollOffsetYSharedValue, scrollContentHeightSharedValue, scrollLayoutHeightSharedValue }; } //# sourceMappingURL=bottom-sheet-scroll-gesture-detector.js.map