Spaces:
Runtime error
Runtime error
| import React from 'react'; | |
| interface TmaButtonProps { | |
| text: string; | |
| onClick?: () => void; | |
| className?: string; | |
| disabled?: boolean; | |
| loading?: boolean; | |
| } | |
| export default function TmaButton({ text, onClick, className = '', disabled = false, loading = false }: TmaButtonProps) { | |
| const baseStyles = 'w-full py-3 px-4 rounded-lg font-medium transition-all duration-200 flex items-center justify-center gap-2'; | |
| const disabledStyles = 'opacity-50 cursor-not-allowed bg-gray-300 text-gray-600'; | |
| const primaryStyles = 'bg-tg-secondary text-white shadow-md hover:bg-blue-600 active:scale-95'; | |
| const finalClassName = `${baseStyles} ${disabled ? disabledStyles : primaryStyles} ${className}`; | |
| return ( | |
| <button | |
| onClick={onClick} | |
| disabled={disabled || loading} | |
| className={finalClassName} | |
| > | |
| {loading ? ( | |
| <svg className="animate-spin h-5 w-5 text-white" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> | |
| <circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4"></circle> | |
| <path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> | |
| </svg> | |
| ) : ( | |
| text | |
| )} | |
| </button> | |
| ); | |
| } |