2025-09-06 19:21:52 +05:30

97 lines
3.3 KiB
Dart

import 'package:base_project/utils/image_constant.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
class ShowSnackAlert {
static SnackBar CustomMessenger(
BuildContext context, Color color1, Color color2, String text) {
return SnackBar(
elevation: 0,
behavior: SnackBarBehavior.floating,
content: Stack(
clipBehavior: Clip.none,
children: [
Container(
padding: const EdgeInsets.all(16),
height: 100,
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(20)),
color: color1),
child: Row(
children: [
const SizedBox(
width: 48,
),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (color1 == Colors.red.shade400)
const Text(
'Oh Snap!',
style: TextStyle(fontSize: 18, color: Colors.white),
),
if (color1 == Colors.orange.shade400)
const Text('Alert',
style:
TextStyle(fontSize: 18, color: Colors.white)),
if (color1 == Colors.green.shade600)
const Text('Success',
style:
TextStyle(fontSize: 18, color: Colors.white)),
Text(
text,
style: const TextStyle(
fontSize: 12, color: Colors.white),
maxLines: 2,
overflow: TextOverflow.ellipsis,
),
],
),
),
],
)),
Positioned(
bottom: 0,
child: ClipRRect(
borderRadius:
const BorderRadius.only(bottomLeft: Radius.circular(20)),
child: SvgPicture.asset(ImageConstant.bubbles,
// 'assets/icon/bubbles.svg',
height: 48,
width: 40,
colorFilter: ColorFilter.mode(color2, BlendMode.srcIn)),
),
),
Positioned(
top: -20,
left: 0,
child: Stack(
alignment: Alignment.center,
children: [
SvgPicture.asset(
ImageConstant.fail,
// 'assets/icon/fail.svg',
height: 40,
),
Positioned(
top: 10,
child: InkWell(
onTap: () {
ScaffoldMessenger.of(context).clearSnackBars();
},
child: SvgPicture.asset(ImageConstant.close,
// 'assets/icon/close.svg',
height: 16)))
],
),
)
],
),
backgroundColor: Colors.transparent,
);
}
}