import React, { useEffect, useRef } from 'react'; import type { StyleProp, ViewStyle } from 'react-native'; import { Animated, Easing } from 'react-native'; export interface SpinWrapperProps { children: React.ReactNode; style?: StyleProp; testID?: string; } const SpinWrapper = ({ children, style, testID }: SpinWrapperProps) => { const rotateAnimation = useRef(new Animated.Value(0)); useEffect(() => { const animation = Animated.loop( Animated.timing(rotateAnimation.current, { toValue: 1, duration: 1000, easing: Easing.linear, useNativeDriver: true, }) ); animation.start(); return () => animation.stop(); }, []); const rotate = rotateAnimation.current.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'], }); return ( {children} ); }; export default SpinWrapper;