react-native-reanimated
Version:
More powerful alternative to Animated library for React Native.
28 lines (25 loc) • 839 B
text/typescript
;
import type { HostInstance } from 'react-native';
import type { InstanceOrElement } from '../commonTypes';
import type { AnimatedRef } from './commonTypes';
import { useAnimatedRefBase } from './useAnimatedRefCommon';
/**
* Lets you get a reference of a view that you can use inside a worklet.
*
* @returns An object with a `.current` property which contains an instance of
* the reference object.
* @see https://docs.swmansion.com/react-native-reanimated/docs/core/useAnimatedRef
*/
export function useAnimatedRef<
TRef extends InstanceOrElement = HostInstance,
>(): AnimatedRef<TRef> {
return useAnimatedRefBase<TRef>((ref) => {
if (ref.getScrollableNode) {
return ref.getScrollableNode();
}
if (ref.getNativeScrollRef) {
return ref.getNativeScrollRef();
}
return ref;
});
}