import 'package:flutter/material.dart'; import '../../core/theme/design_tokens.dart'; class AppButton extends StatelessWidget { final String text; final VoidCallback? onPressed; final bool isOutlined; final double height; final bool isLoading; const AppButton({ super.key, required this.text, this.onPressed, this.isOutlined = false, this.height = 44, this.isLoading = false, }); @override Widget build(BuildContext context) { if (isOutlined) { return SizedBox( height: height, child: OutlinedButton( onPressed: isLoading ? null : onPressed, style: OutlinedButton.styleFrom( backgroundColor: AppColors.background, foregroundColor: AppColors.slate500, side: const BorderSide(color: AppColors.input), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(AppRadius.sm), ), ), child: isLoading ? const SizedBox( width: 16, height: 16, child: CircularProgressIndicator(strokeWidth: 2), ) : Text( text, style: const TextStyle( fontSize: 13, fontWeight: FontWeight.w500, ), ), ), ); } return SizedBox( height: height, child: ElevatedButton( onPressed: isLoading ? null : onPressed, child: isLoading ? const SizedBox( width: 16, height: 16, child: CircularProgressIndicator( strokeWidth: 2, color: AppColors.primaryForeground, ), ) : Text( text, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.w500, ), ), ), ); } }