// app/components/admin/CommonComponents/FormActions.tsx
import Link from 'next/link';

interface FormActionsProps {
  cancelHref: string;
  cancelLabel?: string;
  submitLabel?: string;
  loadingLabel?: string;
  loading?: boolean;
  disabled?: boolean;
  className?: string;
}

export default function FormActions({
  cancelHref,
  cancelLabel = 'Cancel',
  submitLabel = 'Save',
  loadingLabel = 'Saving...',
  loading = false,
  disabled = false,
  className = '',
}: FormActionsProps) {
  return (
    <div className={`flex items-center justify-end space-x-4 pt-6 border-t border-var-border ${className}`}>
      <Link
        href={cancelHref}
        className="px-6 py-2 text-sm font-medium text-var-text-secondary bg-var-surface border border-var-border rounded-xl hover:bg-var-surface-hover transition-colors duration-200"
      >
        {cancelLabel}
      </Link>

      <button
        type="submit"
        disabled={loading || disabled}
        className="inline-flex items-center px-6 py-2 text-sm font-medium text-white bg-var-primary rounded-xl hover:bg-var-primary-hover focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-var-primary disabled:opacity-50 disabled:cursor-not-allowed transition-all duration-200 shadow-var-button hover:shadow-var-card"
      >
        {loading ? (
          <>
            <svg
              className="animate-spin -ml-1 mr-2 h-4 w-4 text-white"
              fill="none"
              viewBox="0 0 24 24"
            >
              <circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4" />
              <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"
              />
            </svg>
            {loadingLabel}
          </>
        ) : (
          submitLabel
        )}
      </button>
    </div>
  );
}