import { useCallback, useEffect, useState } from 'react'; import { RefreshCw } from 'lucide-react'; import { LoadingButtonPrimitive } from '@/components/loading-button'; export const RefreshButton: React.FC< React.ComponentProps & { isRefreshing?: boolean; } > = ({ children, isRefreshing, ...rest }) => { const [isAnimating, setIsAnimating] = useState(false); const [rotation, setRotation] = useState(0); const onTransitionEnd = useCallback(() => { if (isRefreshing) { setIsAnimating(true); setRotation((prev) => prev + 360); } else { setIsAnimating(false); } }, [isRefreshing, setRotation]); useEffect(() => { onTransitionEnd(); }, [onTransitionEnd]); return ( {children} ); };