UNPKG

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

Version:
36 lines (34 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useLastSharedValueBeforeLock = useLastSharedValueBeforeLock; var _reactNativeReanimated = require("react-native-reanimated"); var _context = require("../context"); var _useLastSharedValue = require("./use-last-shared-value"); /** * Returns a shared value holding the last value seen of the input shared value * prior to a current position lock being engaged. */ function useLastSharedValueBeforeLock(sharedValue) { const { currentPositionLockSharedValue } = (0, _context.useBottomSheetToolboxInternalContext)(); const lastSharedValue = (0, _useLastSharedValue.useLastSharedValue)(sharedValue); const sharedValueBeforeLock = (0, _reactNativeReanimated.useSharedValue)(null); (0, _reactNativeReanimated.useAnimatedReaction)(() => currentPositionLockSharedValue.get(), (currentPositionLock, lastCurrentPositionLock) => { const didJustLock = currentPositionLock !== null && currentPositionLock !== lastCurrentPositionLock; if (didJustLock) { const lastValue = lastSharedValue.get(); sharedValueBeforeLock.set(lastValue); } else { sharedValueBeforeLock.set(null); /** * When a lock ends take most recent value. */ lastSharedValue.set(sharedValue.get()); } }, [currentPositionLockSharedValue.get]); return sharedValueBeforeLock; } //# sourceMappingURL=use-last-shared-value-before-lock.js.map