import 'package:flutter/material.dart'; import 'package:syncrow_app/utils/context_extension.dart'; import 'package:syncrow_app/utils/resource_manager/color_manager.dart'; class DefaultButton extends StatelessWidget { const DefaultButton({ super.key, this.enabled = true, this.onPressed, required this.child, this.isSecondary = false, this.isLoading = false, this.isDone = false, this.customTextStyle, this.customButtonStyle, }); final void Function()? onPressed; final Widget child; final bool isSecondary; final bool enabled; final bool isDone; final bool isLoading; final TextStyle? customTextStyle; final ButtonStyle? customButtonStyle; @override Widget build(BuildContext context) { return ElevatedButton( onPressed: enabled ? onPressed : null, style: isSecondary ? null : customButtonStyle ?? ButtonStyle( textStyle: MaterialStateProperty.all( customTextStyle ?? context.bodyMedium.copyWith( fontSize: 16, ), ), foregroundColor: MaterialStateProperty.all( isSecondary ? Colors.black : enabled ? Colors.white : Colors.black, ), backgroundColor: MaterialStateProperty.all( enabled ? ColorsManager.primaryColor : Colors.grey), shape: MaterialStateProperty.all( RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), ), fixedSize: MaterialStateProperty.all( const Size.fromHeight(50), ), padding: MaterialStateProperty.all( const EdgeInsets.all(10), ), minimumSize: MaterialStateProperty.all( const Size.fromHeight(50), ), ), child: SizedBox( height: 50, child: Center( child: isLoading ? const SizedBox.square( dimension: 24, child: CircularProgressIndicator( color: Colors.white, ), ) : isDone ? const Icon( Icons.check_circle_outline, color: Colors.white, ) : child, ), ), ); } }