import {type SharedValue, useAnimatedReaction, useSharedValue} from "react-native-reanimated"

/**
 * Returns a shared value of the last value of the provided shared value.
 */
export function useLastSharedValue<T>(sharedValue: SharedValue<T>) {
    const lastSharedValue = useSharedValue<T | null>(null)
    useAnimatedReaction(
        () => sharedValue.get(),
        (_value, lastValue) => {
            lastSharedValue.set(lastValue)
        },
        [sharedValue]
    )

    return lastSharedValue
}
