Work List screen
							parent
							
								
									f16b3c5c79
								
							
						
					
					
						commit
						bf8dce2afd
					
				| @ -0,0 +1,25 @@ | ||||
| import 'package:easy_localization/src/public_ext.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/string_extensions.dart'; | ||||
| 
 | ||||
| AppBar appBar(BuildContext context, {required String title}) { | ||||
|   return AppBar( | ||||
|     title: title.toText24(textColor: MyColors.darkTextColor), | ||||
|     centerTitle: false, | ||||
|     automaticallyImplyLeading: false, | ||||
|     backgroundColor: Colors.white, | ||||
|     actions: [ | ||||
|       IconButton( | ||||
|         onPressed: () { | ||||
|           Navigator.pop(context); | ||||
|         }, | ||||
|         icon: Icon( | ||||
|           Icons.close, | ||||
|           color: MyColors.darkIconColor, | ||||
|         ), | ||||
|       ), | ||||
|     ], | ||||
|   ); | ||||
| } | ||||
| @ -0,0 +1,200 @@ | ||||
| import 'package:easy_localization/src/public_ext.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:flutter_svg/svg.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/ui/app_bar.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/string_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; | ||||
| 
 | ||||
| class WorkListScreen extends StatefulWidget { | ||||
|   @override | ||||
|   State<WorkListScreen> createState() => _WorkListScreenState(); | ||||
| } | ||||
| 
 | ||||
| class _WorkListScreenState extends State<WorkListScreen> { | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Scaffold( | ||||
|       backgroundColor: Colors.white, | ||||
|       appBar: appBar( | ||||
|         context, | ||||
|         title: LocaleKeys.workList.tr(), | ||||
|       ), | ||||
|       body: Container( | ||||
|         width: double.infinity, | ||||
|         height: double.infinity, | ||||
|         child: Column( | ||||
|           crossAxisAlignment: CrossAxisAlignment.start, | ||||
|           children: [ | ||||
|             Container( | ||||
|               width: double.infinity, | ||||
|               height: 2, | ||||
|               color: MyColors.darkWhiteColor, | ||||
|             ), | ||||
|             Container( | ||||
|               width: double.infinity, | ||||
|               height: 40, | ||||
|               margin: EdgeInsets.only( | ||||
|                 top: 21, | ||||
|               ), | ||||
|               child: ListView.separated( | ||||
|                 itemBuilder: (context, index) { | ||||
|                   return Container( | ||||
|                     padding: EdgeInsets.only( | ||||
|                       left: 30, | ||||
|                       right: 30, | ||||
|                     ), | ||||
|                     alignment: Alignment.center, | ||||
|                     decoration: BoxDecoration( | ||||
|                       borderRadius: BorderRadius.circular(6), | ||||
|                       color: tabList[index].isSelected | ||||
|                           ? MyColors.darkIconColor | ||||
|                           : MyColors.darkWhiteColor, | ||||
|                     ), | ||||
|                     child: tabList[index].title.toText12( | ||||
|                           color: tabList[index].isSelected | ||||
|                               ? MyColors.white | ||||
|                               : MyColors.black, | ||||
|                         ), | ||||
|                   ); | ||||
|                 }, | ||||
|                 separatorBuilder: (context, index) { | ||||
|                   return 8.width; | ||||
|                 }, | ||||
|                 shrinkWrap: true, | ||||
|                 itemCount: tabList.length, | ||||
|                 scrollDirection: Axis.horizontal, | ||||
|                 padding: const EdgeInsets.only( | ||||
|                   left: 21, | ||||
|                   right: 21, | ||||
|                 ), | ||||
|               ), | ||||
|             ), | ||||
|             Column( | ||||
|               crossAxisAlignment: CrossAxisAlignment.start, | ||||
|               mainAxisSize: MainAxisSize.min, | ||||
|               children: [ | ||||
|                 LocaleKeys.human.toText12(), | ||||
|                 LocaleKeys.resources.tr().toText24(isBold: true), | ||||
|               ], | ||||
|             ).paddingOnly(top: 24, left: 21, right: 21), | ||||
|             24.height, | ||||
|             Expanded( | ||||
|               child: ListView.separated( | ||||
|                 itemBuilder: (context, index) { | ||||
|                   return rowItem(typesList[index]); | ||||
|                 }, | ||||
|                 separatorBuilder: (context, index) { | ||||
|                   return 12.height; | ||||
|                 }, | ||||
|                 itemCount: typesList.length, | ||||
|                 padding: EdgeInsets.only(left: 21, right: 21), | ||||
|               ), | ||||
|             ), | ||||
|           ], | ||||
|         ), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|   Widget rowItem(Types types) { | ||||
|     return Container( | ||||
|       width: double.infinity, | ||||
|       padding: EdgeInsets.all(12), | ||||
|       decoration: BoxDecoration( | ||||
|         color: Colors.white, | ||||
|         borderRadius: BorderRadius.circular(10), | ||||
|         boxShadow: [ | ||||
|           BoxShadow( | ||||
|             color: const Color(0xff000000).withOpacity(.05), | ||||
|             blurRadius: 26, | ||||
|             offset: const Offset(0, -3), | ||||
|           ), | ||||
|         ], | ||||
|       ), | ||||
|       child: Row( | ||||
|         crossAxisAlignment: CrossAxisAlignment.start, | ||||
|         mainAxisAlignment: MainAxisAlignment.start, | ||||
|         children: [ | ||||
|           Container( | ||||
|             decoration: BoxDecoration( | ||||
|               borderRadius: BorderRadius.circular(4), | ||||
|               gradient: LinearGradient( | ||||
|                   transform: GradientRotation(.46), | ||||
|                   begin: Alignment.topRight, | ||||
|                   end: Alignment.bottomRight, | ||||
|                   colors: types.colors), | ||||
|             ), | ||||
|             child: Column( | ||||
|               crossAxisAlignment: CrossAxisAlignment.center, | ||||
|               children: [ | ||||
|                 SvgPicture.asset( | ||||
|                   "assets/images/miss_swipe.svg", | ||||
|                   color: Colors.white, | ||||
|                 ), | ||||
|                 2.height, | ||||
|                 types.title.toText10(color: Colors.white) | ||||
|               ], | ||||
|             ).paddingAll(6), | ||||
|           ), | ||||
|           12.width, | ||||
|           Expanded( | ||||
|             child: Column( | ||||
|               crossAxisAlignment: CrossAxisAlignment.start, | ||||
|               mainAxisAlignment: MainAxisAlignment.start, | ||||
|               children: [ | ||||
|                 "Missing Swipe Request".toText16(), | ||||
|                 "Missing Swipe Request for Hussain, Mohammad has been approved" | ||||
|                     .toText10(), | ||||
|                 12.height, | ||||
|                 Row( | ||||
|                   children: [ | ||||
|                     Expanded( | ||||
|                         child: "07 Jan 2021" | ||||
|                             .toText10(color: MyColors.lightTextColor)), | ||||
|                     SvgPicture.asset( | ||||
|                       "assets/images/arrow_next.svg", | ||||
|                       color: MyColors.darkIconColor, | ||||
|                     ) | ||||
|                   ], | ||||
|                 ), | ||||
|               ], | ||||
|             ), | ||||
|           ), | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| class Tabs { | ||||
|   String title; | ||||
|   bool isSelected; | ||||
| 
 | ||||
|   Tabs(this.title, this.isSelected); | ||||
| } | ||||
| 
 | ||||
| List<Tabs> tabList = [ | ||||
|   Tabs("All", true), | ||||
|   Tabs("HR", false), | ||||
|   Tabs("MO", false), | ||||
|   Tabs("PR", false), | ||||
|   Tabs("PO", false), | ||||
| ]; | ||||
| 
 | ||||
| class Types { | ||||
|   String title; | ||||
|   List<Color> colors; | ||||
| 
 | ||||
|   Types(this.title, this.colors); | ||||
| } | ||||
| 
 | ||||
| List<Types> typesList = [ | ||||
|   Types("HR", [Color(0xff32D892), Color(0xff1AB170)]), | ||||
|   Types("ITG", [Color(0xffEB8C90), Color(0xffDE6C70)]), | ||||
|   Types("PO", [Color(0xff5099E3), Color(0xff3670AA)]), | ||||
|   Types("PR", [Color(0xff48EACF), Color(0xff3DCAB3)]), | ||||
|   Types("MO", [Color(0xff58DCFA), Color(0xff3CB9D5)]), | ||||
| ]; | ||||
					Loading…
					
					
				
		Reference in New Issue