import * as React from "react"; import Animated, { useAnimatedStyle, useSharedValue, withRepeat, withSequence, withTiming, } from "react-native-reanimated"; import { cn } from "@turbostarter/ui"; const duration = 1000; function Skeleton({ className, style, ...props }: React.ComponentPropsWithoutRef) { const sv = useSharedValue(1); React.useEffect(() => { sv.value = withRepeat( withSequence(withTiming(0.5, { duration }), withTiming(1, { duration })), -1, ); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); const animatedStyle = useAnimatedStyle(() => ({ opacity: sv.value, })); return ( ); } export { Skeleton };