import { useEffect, useRef, type ReactNode } from 'react'; import { Animated, Easing, View } from 'react-native'; import Svg, { Path, Use } from 'react-native-svg'; import { useTheme } from '../../hooks/useTheme'; import styles from './styles'; const AnimatedUse = Animated.createAnimatedComponent(Use); export interface LoadingHexagonProps { children?: ReactNode; paused?: boolean; } export function LoadingHexagon({ children, paused }: LoadingHexagonProps) { const Theme = useTheme(); const spinValue = useRef(new Animated.Value(0)); useEffect(() => { const animation = Animated.timing(spinValue.current, { toValue: 1, duration: 1000, useNativeDriver: true, easing: Easing.linear }); const loop = Animated.loop(animation); loop.start(); return () => { loop.stop(); }; }, [spinValue]); const spin = spinValue.current.interpolate({ inputRange: [0, 1], outputRange: [0, -172] }); return ( {children ?? null} ); }