nhance_partner/lib/presentation/themes/indicators/custom_loader.dart
2025-11-01 15:05:30 +05:30

63 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
class CustomLoader extends StatelessWidget {
final String? message;
final Color? backgroundColor;
final double size;
final Color loaderColor;
final bool useBlurBackground;
const CustomLoader({
super.key,
this.message,
this.backgroundColor,
this.size = 50,
this.loaderColor = Colors.blue,
this.useBlurBackground = false,
});
@override
Widget build(BuildContext context) {
return Stack(
children: [
if (useBlurBackground) Container(color: Colors.black.withOpacity(0.4)),
Center(
child: Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: backgroundColor ?? Colors.white,
borderRadius: BorderRadius.circular(12),
boxShadow: [
BoxShadow(color: Colors.black.withOpacity(0.1), blurRadius: 10),
],
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(
width: size,
height: size,
child: CircularProgressIndicator(
color: loaderColor,
strokeWidth: 4,
),
),
if (message != null) ...[
const SizedBox(height: 12),
Text(
message!,
style: const TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
),
),
],
],
),
),
),
],
);
}
}