checkpoint
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class ToastHelper {
|
||||
static void showSuccess(
|
||||
BuildContext context,
|
||||
String message, {
|
||||
Duration duration = const Duration(seconds: 3),
|
||||
}) {
|
||||
_showToast(
|
||||
context,
|
||||
message,
|
||||
duration: duration,
|
||||
backgroundColor: Colors.green,
|
||||
);
|
||||
}
|
||||
|
||||
static void showError(
|
||||
BuildContext context,
|
||||
String message, {
|
||||
Duration duration = const Duration(seconds: 5),
|
||||
}) {
|
||||
_showToast(
|
||||
context,
|
||||
message,
|
||||
duration: duration,
|
||||
backgroundColor: Colors.red,
|
||||
);
|
||||
}
|
||||
|
||||
static void showInfo(
|
||||
BuildContext context,
|
||||
String message, {
|
||||
Duration duration = const Duration(seconds: 3),
|
||||
}) {
|
||||
_showToast(
|
||||
context,
|
||||
message,
|
||||
duration: duration,
|
||||
);
|
||||
}
|
||||
|
||||
static void _showToast(
|
||||
BuildContext context,
|
||||
String message, {
|
||||
required Duration duration,
|
||||
Color? backgroundColor,
|
||||
}) {
|
||||
final screenWidth = MediaQuery.of(context).size.width;
|
||||
final screenHeight = MediaQuery.of(context).size.height;
|
||||
final topPadding = MediaQuery.of(context).padding.top;
|
||||
final toastWidth = screenWidth * 0.5; // 50% of screen width
|
||||
final horizontalMargin = (screenWidth - toastWidth) / 2;
|
||||
|
||||
// Position toast very close to top (10px into safe area)
|
||||
final topMargin = topPadding - 10;
|
||||
const toastHeight = 60.0;
|
||||
final bottomMargin = screenHeight - topMargin - toastHeight;
|
||||
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(
|
||||
message,
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
duration: duration,
|
||||
behavior: SnackBarBehavior.floating,
|
||||
backgroundColor: backgroundColor,
|
||||
margin: EdgeInsets.only(
|
||||
top: topMargin,
|
||||
left: horizontalMargin,
|
||||
right: horizontalMargin,
|
||||
bottom: bottomMargin,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user