UNPKG

react-native-reanimated

Version:

More powerful alternative to Animated library for React Native.

33 lines (24 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useScrollViewOffset = useScrollViewOffset; var _react = require("react"); var _reactNative = require("react-native"); var _utils = require("./utils"); var _useSharedValue = require("./useSharedValue"); const scrollEventNames = ['onScroll', 'onScrollBeginDrag', 'onScrollEndDrag', 'onMomentumScrollBegin', 'onMomentumScrollEnd']; function useScrollViewOffset(aref) { const offsetRef = (0, _react.useRef)((0, _useSharedValue.useSharedValue)(0)); const event = (0, _utils.useEvent)(event => { 'worklet'; offsetRef.current.value = event.contentOffset.x === 0 ? event.contentOffset.y : event.contentOffset.x; }, scrollEventNames); (0, _react.useEffect)(() => { var _event$current; const viewTag = (0, _reactNative.findNodeHandle)(aref.current); (_event$current = event.current) === null || _event$current === void 0 ? void 0 : _event$current.registerForEvents(viewTag); }, [aref.current]); return offsetRef.current; } //# sourceMappingURL=useScrollViewOffset.js.map