import 'package:flutter/material.dart'; class PrimaryButton extends StatelessWidget { const PrimaryButton({ super.key, required this.label, required this.onPressed, this.icon, this.loading = false, }); final String label; final VoidCallback? onPressed; final IconData? icon; final bool loading; @override Widget build(BuildContext context) { return SizedBox( width: double.infinity, height: 56, child: FilledButton.icon( onPressed: loading ? null : onPressed, icon: loading ? const SizedBox( width: 18, height: 18, child: CircularProgressIndicator( strokeWidth: 2.4, color: Colors.white, ), ) : Icon(icon ?? Icons.explore_rounded), label: Text(label), style: FilledButton.styleFrom( textStyle: Theme.of(context).textTheme.titleMedium?.copyWith( fontWeight: FontWeight.w800, ), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(18), ), ), ), ); } }