@attio/react-native-bottom-sheet-toolbox
Version:
25 lines (24 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useBottomSheetOnSnapDetection = useBottomSheetOnSnapDetection;
var _reactNativeReanimated = require("react-native-reanimated");
var _context = require("../context");
function useBottomSheetOnSnapDetection(onSnapChange) {
const {
isReadySharedValue,
normalizedSnapPointsSharedValue,
currentPositionSharedValue
} = (0, _context.useBottomSheetToolboxInternalContext)();
(0, _reactNativeReanimated.useAnimatedReaction)(() => {
const normalizedSnapPoints = normalizedSnapPointsSharedValue.get();
if (!isReadySharedValue.get() || normalizedSnapPoints === null) return null;
const snapPointIndex = normalizedSnapPoints.indexOf(currentPositionSharedValue.get());
return snapPointIndex === -1 ? null : snapPointIndex;
}, (currentSnapIndex, lastSnapIndex) => {
if (currentSnapIndex === null) return;
if (onSnapChange) (0, _reactNativeReanimated.runOnJS)(onSnapChange)(currentSnapIndex, lastSnapIndex);
}, [isReadySharedValue, normalizedSnapPointsSharedValue, currentPositionSharedValue]);
}
//# sourceMappingURL=use-bottom-sheet-on-snap-detection.js.map