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])
}
