import 'package:e_scan/components/loading_progress_component.dart'; import 'package:e_scan/themes/app_theme.dart'; import 'package:flutter/material.dart'; class OutlineButtonComponent extends StatelessWidget { const OutlineButtonComponent({ super.key, required this.text, required this.onPressed, this.loading = false, this.leading, this.centered = false, }); final void Function()? onPressed; final String text; final bool loading; final Widget? leading; final bool centered; @override Widget build(BuildContext context) { final textWidget = Text( text, style: AppTheme.of(context).bodySmall.copyWith( color: AppTheme.of(context).primaryText, fontWeight: FontWeight.bold, ), ); return OutlinedButton( style: OutlinedButton.styleFrom( side: BorderSide(color: AppTheme.of(context).alternate), backgroundColor: AppTheme.of(context).primaryBackground, padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 16), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), ), onPressed: loading ? null : onPressed, child: loading ? SizedBox( height: 20, width: 20, child: Center( child: LoadingProgressComponent( color: AppTheme.of(context).primary, ), ), ) : leading == null ? textWidget : Row( mainAxisSize: centered ? MainAxisSize.min : MainAxisSize.max, spacing: 10, children: [?leading, textWidget], ), ); } }