@attio/react-native-bottom-sheet-toolbox
Version:
27 lines (20 loc) • 812 B
text/typescript
import {useDerivedValue, useSharedValue} from "react-native-reanimated"
import {useBottomSheetToolboxInternalContext} from "../context"
/**
* Returns the direction the bottom sheet is moving in.
* +1 = moving up
* 0 = not moving
* -1 = moving down
*/
export function useBottomSheetDirection() {
const {currentPositionSharedValue} = useBottomSheetToolboxInternalContext()
const lastPositionSharedValue = useSharedValue(0)
return useDerivedValue(() => {
const currentPosition = currentPositionSharedValue.get()
const lastPosition = lastPositionSharedValue.get()
const delta = currentPosition - lastPosition
const direction = Math.sign(delta)
lastPositionSharedValue.set(currentPosition)
return direction
}, [currentPositionSharedValue])
}