You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Dart
		
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Dart
		
	
| import 'package:flutter/material.dart';
 | |
| import 'package:mohem_flutter_app/extensions/int_extensions.dart';
 | |
| 
 | |
| void showMyBottomSheet(BuildContext context, {required Widget child, required VoidCallback callBackFunc, String? type}) {
 | |
|   showModalBottomSheet<String>(
 | |
|     context: context,
 | |
|     isScrollControlled: true,
 | |
|     backgroundColor: Colors.transparent,
 | |
|     builder: (BuildContext context) {
 | |
|       return Container(
 | |
|       constraints:  BoxConstraints(
 | |
|       maxHeight: type =='CONTINUE_ACTION' ? MediaQuery.of(context).size.height *.75 :  double.infinity,),
 | |
|         decoration: const BoxDecoration(
 | |
|           color: Colors.white,
 | |
|           borderRadius: BorderRadius.only(
 | |
|             topRight: Radius.circular(25),
 | |
|             topLeft: Radius.circular(25),
 | |
|           ),
 | |
|         ),
 | |
|         padding: MediaQuery.of(context).viewInsets,
 | |
|         clipBehavior: Clip.antiAlias,
 | |
|         child:SingleChildScrollView(child: Column(
 | |
|           mainAxisAlignment: MainAxisAlignment.center,
 | |
|           mainAxisSize: MainAxisSize.min,
 | |
|           children: <Widget>[
 | |
|             13.height,
 | |
|             Container(
 | |
|               height: 6,
 | |
|               width: 60,
 | |
|               decoration: const BoxDecoration(
 | |
|                 color: Color(0xff9A9A9A),
 | |
|                 borderRadius: BorderRadius.all(
 | |
|                   Radius.circular(20),
 | |
|                 ),
 | |
|               ),
 | |
|             ),
 | |
|             8.height,
 | |
|             child,
 | |
|           ],
 | |
|         )),
 | |
|       );
 | |
|     },
 | |
|   ).then((value) {
 | |
|     // print("BACK FROM DELEGATE!!!!");
 | |
|     // print("value: $value");
 | |
|     if (value == "delegate_reload") {
 | |
|       callBackFunc();
 | |
|     }
 | |
|   });
 | |
| }
 | |
| 
 | |
| class BottomSheetItem extends StatelessWidget {
 | |
|   final Function onTap;
 | |
|   final IconData icon;
 | |
|   final String title;
 | |
|   final Color color;
 | |
| 
 | |
|   const BottomSheetItem({Key? key, required this.onTap, required this.title, required this.icon, this.color = Colors.black}) : super(key: key);
 | |
| 
 | |
|   @override
 | |
|   Widget build(BuildContext context) {
 | |
|     return InkWell(
 | |
|       onTap: () {
 | |
|         if (onTap != null) {
 | |
|           Navigator.pop(context);
 | |
|           onTap();
 | |
|         }
 | |
|       },
 | |
|       child: Padding(
 | |
|         padding: EdgeInsets.symmetric(horizontal: 18.0, vertical: 18.0),
 | |
|         child: Row(
 | |
|           children: <Widget>[
 | |
|             if (icon != null)
 | |
|               Icon(
 | |
|                 icon,
 | |
|                 color: color,
 | |
|                 size: 18.0,
 | |
|               ),
 | |
|             if (icon != null) SizedBox(width: 24.0),
 | |
|             Text(
 | |
|               title ?? "",
 | |
|               style: TextStyle(color: color),
 | |
|             ),
 | |
|           ],
 | |
|         ),
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| }
 |