import { useState } from 'react'; import { IconRefresh } from '@tabler/icons-react'; /** * RetryButton - кнопка для повторной попытки с индикацией загрузки */ function RetryButton({ onRetry, loading: externalLoading, disabled, className = 'btn btn-primary', children = 'Повторить', showIcon = true, ...props }) { const [internalLoading, setInternalLoading] = useState(false); const loading = externalLoading !== undefined ? externalLoading : internalLoading; const handleClick = async () => { if (loading || disabled) return; try { setInternalLoading(true); await onRetry(); } finally { setInternalLoading(false); } }; return ( ); } export default RetryButton;