You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
188 lines
8.3 KiB
188 lines
8.3 KiB
import 'package:flutter/material.dart';
|
|
import 'package:flutter_animate/flutter_animate.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
|
|
class AlertAlert extends StatelessWidget {
|
|
const AlertAlert(
|
|
{super.key,
|
|
required this.typealert,
|
|
required this.titleAlert,
|
|
required this.descriAlert,
|
|
this.confirmbtnText = "Valider",
|
|
this.cancelbtn = false,
|
|
this.cancelbtnText = "Annuler",
|
|
this.onpresConfirm});
|
|
|
|
final String typealert;
|
|
final String titleAlert;
|
|
final String descriAlert;
|
|
final String cancelbtnText;
|
|
final String confirmbtnText;
|
|
final bool cancelbtn;
|
|
final VoidCallback? onpresConfirm;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Dialog(
|
|
child: Container(
|
|
decoration: BoxDecoration(
|
|
color: typealert == "succes"
|
|
? Colors.green
|
|
: (typealert == "error" ? Colors.red : const Color(0xFF6334A9)),
|
|
borderRadius: BorderRadius.circular(20)),
|
|
height: 300.sp,
|
|
width: MediaQuery.of(context).size.width * 0.8,
|
|
child: Center(
|
|
child: Column(
|
|
children: [
|
|
Padding(
|
|
padding: const EdgeInsets.all(20.0),
|
|
child: Container(
|
|
decoration: BoxDecoration(
|
|
image: DecorationImage(
|
|
fit: BoxFit.cover,
|
|
image: AssetImage(typealert == "succes"
|
|
? 'lib/photos/gif_alert/succes3.gif'
|
|
: (typealert == "error"
|
|
? 'lib/photos/gif_alert/error.gif'
|
|
: (typealert == "warning"
|
|
? 'lib/photos/gif_alert/warning.gif'
|
|
: (typealert == "info"
|
|
? 'lib/photos/gif_alert/informaton2.gif'
|
|
: 'lib/photos/gif_alert/doyouwant1.gif'))))),
|
|
borderRadius: BorderRadius.circular(60.sp)),
|
|
height: 100.sp,
|
|
width: 100.sp,
|
|
),
|
|
),
|
|
Expanded(
|
|
child: FractionallySizedBox(
|
|
widthFactor: 1,
|
|
child: Container(
|
|
decoration: const BoxDecoration(
|
|
color: Colors.white,
|
|
borderRadius: BorderRadius.only(
|
|
bottomLeft: Radius.circular(20),
|
|
bottomRight: Radius.circular(20))),
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
|
children: [
|
|
Column(
|
|
children: [
|
|
Text(
|
|
textAlign: TextAlign.center,
|
|
titleAlert,
|
|
style: TextStyle(
|
|
fontSize: 20.sp,
|
|
fontWeight: FontWeight.bold,
|
|
color: Colors.black,
|
|
// fontFamily: 'PlusJakartaSans',
|
|
),
|
|
),
|
|
SizedBox(
|
|
height: 15.sp,
|
|
),
|
|
Text(
|
|
textAlign: TextAlign.center,
|
|
descriAlert,
|
|
style: TextStyle(
|
|
fontSize: 12.sp,
|
|
fontWeight: FontWeight.normal,
|
|
color: Colors.black,
|
|
// fontFamily: 'PlusJakartaSans',
|
|
),
|
|
),
|
|
],
|
|
),
|
|
cancelbtn == true
|
|
? Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: FittedBox(
|
|
fit: BoxFit.scaleDown,
|
|
child: Row(
|
|
mainAxisAlignment:
|
|
MainAxisAlignment.spaceAround,
|
|
children: [
|
|
ElevatedButton(
|
|
onPressed: () {
|
|
Navigator.pop(context);
|
|
},
|
|
style: ElevatedButton.styleFrom(
|
|
backgroundColor: Colors.grey,
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius:
|
|
BorderRadius.circular(20),
|
|
)),
|
|
child: FittedBox(
|
|
fit: BoxFit.scaleDown,
|
|
child: Text(
|
|
textAlign: TextAlign.center,
|
|
cancelbtnText,
|
|
style: TextStyle(
|
|
fontSize: 15.sp,
|
|
fontWeight: FontWeight.bold,
|
|
color: Colors.white,
|
|
fontFamily: 'PlusJakartaSans',
|
|
),
|
|
),
|
|
),
|
|
),
|
|
SizedBox(
|
|
width: 10.sp,
|
|
),
|
|
ElevatedButton(
|
|
onPressed: onpresConfirm,
|
|
style: ElevatedButton.styleFrom(
|
|
backgroundColor:
|
|
const Color(0xFF6334A9),
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius:
|
|
BorderRadius.circular(20),
|
|
)),
|
|
child: FittedBox(
|
|
fit: BoxFit.scaleDown,
|
|
child: Text(
|
|
textAlign: TextAlign.center,
|
|
confirmbtnText,
|
|
style: TextStyle(
|
|
fontSize: 15.sp,
|
|
fontWeight: FontWeight.bold,
|
|
color: Colors.white,
|
|
fontFamily: 'PlusJakartaSans',
|
|
),
|
|
),
|
|
),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
)
|
|
: ElevatedButton(
|
|
onPressed: onpresConfirm,
|
|
style: ElevatedButton.styleFrom(
|
|
backgroundColor: const Color(0xFF6334A9),
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(20),
|
|
)),
|
|
child: Text(
|
|
textAlign: TextAlign.center,
|
|
confirmbtnText,
|
|
style: TextStyle(
|
|
fontSize: 15.sp,
|
|
fontWeight: FontWeight.bold,
|
|
color: Colors.white,
|
|
fontFamily: 'PlusJakartaSans',
|
|
),
|
|
),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
))
|
|
],
|
|
),
|
|
),
|
|
),
|
|
).animate().scale(duration: const Duration(milliseconds: 100));
|
|
}
|
|
}
|
|
|