react-native-reanimated
Version:
More powerful alternative to Animated library for React Native.
33 lines (24 loc) • 1.09 kB
JavaScript
;
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