completed group batch feature
This commit is contained in:
77
lib/widgets/app_snack_bar.dart
Normal file
77
lib/widgets/app_snack_bar.dart
Normal file
@@ -0,0 +1,77 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
/// Centralized helper for showing SnackBars across the app.
|
||||
///
|
||||
/// This guarantees that every SnackBar has a fixed width of 400 and a
|
||||
/// consistent floating behaviour, so the project-wide limit only has to
|
||||
/// be set in one place.
|
||||
class AppSnackBar {
|
||||
AppSnackBar._();
|
||||
|
||||
/// The default width applied to every floating SnackBar in the app.
|
||||
static const double width = 400;
|
||||
|
||||
/// Shows a SnackBar with the project-wide width of 400.
|
||||
///
|
||||
/// By default a [Text] widget with [message] is used as the content.
|
||||
/// Pass [customContent] to override the default content widget (e.g. for
|
||||
/// custom layouts that include icons, multiple lines, etc.).
|
||||
static void show(
|
||||
BuildContext context,
|
||||
String message, {
|
||||
Widget? customContent,
|
||||
Color? backgroundColor,
|
||||
Color? textColor,
|
||||
SnackBarBehavior behavior = SnackBarBehavior.floating,
|
||||
SnackBarAction? action,
|
||||
Duration duration = const Duration(seconds: 4),
|
||||
ShapeBorder? shape,
|
||||
EdgeInsetsGeometry? margin,
|
||||
EdgeInsetsGeometry? padding,
|
||||
}) {
|
||||
final messenger = ScaffoldMessenger.maybeOf(context);
|
||||
if (messenger == null) return;
|
||||
|
||||
final Widget content = customContent ??
|
||||
(textColor != null
|
||||
? Text(message, style: TextStyle(color: textColor))
|
||||
: Text(message));
|
||||
|
||||
messenger.showSnackBar(
|
||||
SnackBar(
|
||||
content: content,
|
||||
backgroundColor: backgroundColor,
|
||||
behavior: behavior,
|
||||
action: action,
|
||||
duration: duration,
|
||||
shape: shape,
|
||||
margin: margin,
|
||||
padding: padding,
|
||||
width: width,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/// Convenience helper for error messages.
|
||||
static void showError(BuildContext context, String message) {
|
||||
show(
|
||||
context,
|
||||
message,
|
||||
backgroundColor: Colors.deepOrange,
|
||||
);
|
||||
}
|
||||
|
||||
/// Convenience helper for success messages.
|
||||
static void showSuccess(BuildContext context, String message) {
|
||||
show(
|
||||
context,
|
||||
message,
|
||||
backgroundColor: Colors.green.shade700,
|
||||
);
|
||||
}
|
||||
|
||||
/// Convenience helper for informational messages.
|
||||
static void showInfo(BuildContext context, String message) {
|
||||
show(context, message);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user