react-native-wagmi-charts
Version:
A sweet candlestick chart for React Native
47 lines (41 loc) • 922 B
text/typescript
import {
useAnimatedProps,
useAnimatedReaction,
useSharedValue,
withTiming,
} from 'react-native-reanimated';
import { interpolatePath } from './utils';
import { usePrevious } from '../../utils';
export function useAnimatedPath({
enabled = true,
path,
}: {
enabled?: boolean;
path: string;
}) {
const transition = useSharedValue(0);
const previousPath = usePrevious(path);
useAnimatedReaction(
() => {
return path;
},
(result, previous) => {
if (result !== previous) {
transition.value = 0;
transition.value = withTiming(1);
}
},
[path]
);
const animatedProps = useAnimatedProps(() => {
let d = path || '';
if (previousPath && enabled) {
const pathInterpolator = interpolatePath(previousPath, path, null);
d = pathInterpolator(transition.value);
}
return {
d,
};
});
return { animatedProps };
}