showFailedAnimation function
Future<void>
showFailedAnimation({
- required BuildContext context,
- VoidCallback? onComplete,
- Duration duration = const Duration(milliseconds: 2000),
Shows a failed animation dialog.
This displays a brief failed animation overlay that auto-dismisses after completion.
Parameters:
context: The build context for showing the dialogonComplete: Callback when the animation completesduration: Duration of the animation (default: 2 seconds)
Implementation
Future<void> showFailedAnimation({
required BuildContext context,
VoidCallback? onComplete,
Duration duration = const Duration(milliseconds: 2000),
}) async {
await showDialog(
context: context,
barrierDismissible: false,
barrierColor: Colors.black54,
builder: (dialogContext) {
// Auto-dismiss after duration
Future.delayed(duration, () {
if (dialogContext.mounted) {
Navigator.of(dialogContext).pop();
onComplete?.call();
}
});
return Center(
child: Container(
width: 300,
height: 300,
padding: const EdgeInsets.all(16),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
boxShadow: [
BoxShadow(
color: Colors.black.withValues(alpha: 0.1),
blurRadius: 10,
offset: const Offset(0, 4),
),
],
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Lottie.asset(
repeat: false,
AppAssets.failedLottie,
package: 'amwal_pay_sdk',
width: 60,
height: 60,
fit: BoxFit.contain,
),
const SizedBox(height: 24),
Text(
'Payment Failed',
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w500,
color: Colors.black87,
decoration: TextDecoration.none,
),
),
],
),
),
);
},
);
}