77 lines
1.8 KiB
Dart
77 lines
1.8 KiB
Dart
import 'dart:math' as math;
|
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:grocery_app/utils/constants/globle_variable.dart';
|
|
|
|
|
|
|
|
|
|
/// Hides soft keyboard if already shown
|
|
///
|
|
enum SnackType {
|
|
success,
|
|
alert,
|
|
error
|
|
}
|
|
|
|
|
|
void hideKeyBoard() {
|
|
FocusManager.instance.primaryFocus?.unfocus();
|
|
}
|
|
|
|
|
|
/// Show snackbar
|
|
void showSnackBar(
|
|
{ BuildContext ?context,
|
|
required String message,
|
|
SnackType snackType = SnackType.success,
|
|
bool canDismiss = true,
|
|
bool sticky = false,
|
|
SnackBarBehavior behaviour = SnackBarBehavior.floating,
|
|
}) {
|
|
//if (!context?.mounted??) return;
|
|
//Clear snack bars
|
|
ScaffoldMessenger.of(context??GlobalVariable.globalScaffoldKey.currentContext!).clearSnackBars();
|
|
// Snack bar
|
|
final snackBar = SnackBar(
|
|
behavior: behaviour,
|
|
padding: EdgeInsets.zero,
|
|
elevation: 0,
|
|
content: Container(
|
|
padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 8.h),
|
|
decoration: BoxDecoration(
|
|
gradient: LinearGradient(
|
|
colors:snackType==SnackType.success? const [
|
|
Color(0xFF61B15A),
|
|
Color(0xFF6ABE8B)
|
|
]:snackType==SnackType.alert?
|
|
const [
|
|
Color(0xFFFF8906),
|
|
Color(0xFFFFA745),
|
|
]:
|
|
const [
|
|
Colors.red,
|
|
Colors.redAccent,
|
|
],
|
|
),
|
|
),
|
|
child: Text(
|
|
message,
|
|
|
|
textAlign: TextAlign.center,
|
|
),
|
|
),
|
|
duration: sticky ? const Duration(days: 365) : const Duration(seconds: 3),
|
|
dismissDirection:
|
|
canDismiss ? DismissDirection.down : DismissDirection.none,
|
|
);
|
|
|
|
// Find the ScaffoldMessenger in the widget tree
|
|
// and use it to show a SnackBar.
|
|
ScaffoldMessenger.of(context??GlobalVariable.globalScaffoldKey.currentContext!).showSnackBar(snackBar);
|
|
}
|
|
|
|
|