MIF_E31231623/android/wisata_app/lib/widgets/primary_button.dart

47 lines
1.2 KiB
Dart

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),
),
),
),
);
}
}