diff --git a/lib/core/base/app_scaffold_widget.dart b/lib/core/base/app_scaffold_widget.dart index 6d457ee..3443537 100644 --- a/lib/core/base/app_scaffold_widget.dart +++ b/lib/core/base/app_scaffold_widget.dart @@ -1,11 +1,8 @@ - import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:queuing_system/core/base/project_view_model.dart'; import 'package:queuing_system/widget/app_loader_widget.dart'; import 'package:queuing_system/widget/data_display/app_texts_widget.dart'; - - import 'base_view_model.dart'; import 'network_base_view.dart'; diff --git a/lib/core/config/config.dart b/lib/core/config/config.dart index 130d644..7221b93 100644 --- a/lib/core/config/config.dart +++ b/lib/core/config/config.dart @@ -18,5 +18,7 @@ class AppGlobal { static Color appTextColor = const Color(0xFF2B353E); static Color scheduleTextColor = const Color(0xFF2E303A); static Color inProgressColor = const Color(0xFFCC9B14); + static Color appGreyColor = const Color(0xFF575757); + static Color appLightGreyColor = const Color(0xFFE6E6E6); } diff --git a/lib/core/enum/font_enum.dart b/lib/core/enum/font_enum.dart new file mode 100644 index 0000000..8852b2e --- /dev/null +++ b/lib/core/enum/font_enum.dart @@ -0,0 +1,6 @@ +enum FontType { + Poppins_Bold, + poppins_Medium, + poppins_Regular, + poppins_SemiBold, +} \ No newline at end of file diff --git a/lib/header/app_header.dart b/lib/header/app_header.dart index 480dd39..5b1697e 100644 --- a/lib/header/app_header.dart +++ b/lib/header/app_header.dart @@ -1,7 +1,5 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:provider/provider.dart'; -import 'package:queuing_system/core/base/project_view_model.dart'; import 'package:queuing_system/core/config/config.dart'; import 'package:queuing_system/core/config/size_config.dart'; import 'package:queuing_system/widget/data_display/app_texts_widget.dart'; @@ -21,19 +19,18 @@ class AppHeader extends StatelessWidget with PreferredSizeWidget { , border: const Border(bottom: BorderSide(color: Color(0xFFEFEFEF)))), child: Container( - padding: const EdgeInsets.only(left: 30, right: 50, bottom: 10,), - margin: EdgeInsets.only(top: SizeConfig.isHeightVeryShort ? 30 : 50), + padding: const EdgeInsets.only(left: 30, right: 50, bottom: 0,), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [ AppText( " Current Serving", - letterSpacing: -2.48, color: Colors.white, + fontFamily: 'Poppins-SemiBold.ttf', ), - SvgPicture.asset( "assets/images/hmglogo.svg", height: 120,), + SvgPicture.asset( "assets/images/hmglogo.svg", height: 60,), ], ), ), @@ -43,5 +40,5 @@ class AppHeader extends StatelessWidget with PreferredSizeWidget { @override Size get preferredSize => Size( double.maxFinite, - 280); + SizeConfig.getHeightMultiplier()*8); } diff --git a/lib/home/home_screen.dart b/lib/home/home_screen.dart index 7039cde..101a14d 100644 --- a/lib/home/home_screen.dart +++ b/lib/home/home_screen.dart @@ -3,17 +3,17 @@ import 'package:queuing_system/core/base/app_scaffold_widget.dart'; import 'package:queuing_system/core/config/config.dart'; import 'package:queuing_system/core/config/size_config.dart'; import 'package:queuing_system/header/app_header.dart'; -import 'package:queuing_system/home/que_item.dart'; +import 'package:queuing_system/home/que_item/que_item.dart'; import 'package:queuing_system/home/que_item_list.dart'; import 'package:queuing_system/utils/signalR_utils.dart'; +import 'package:queuing_system/utils/utils.dart'; import 'package:queuing_system/widget/data_display/app_texts_widget.dart'; class MyHomePage extends StatefulWidget { - String title ="MyHomePage"; - bool haveOnePatient = false; - bool haveLessThan3Patient = true; + bool haveOnePatient = true; + bool have3Patient = false; bool haveListOfPatient = true; @@ -29,35 +29,52 @@ class _MyHomePageState extends State { appBar: AppHeader(), body: Column( children: [ - SizedBox(height: SizeConfig.getHeightMultiplier() * (widget.haveOnePatient?20: 5)), - widget.haveListOfPatient?Row( + SizedBox(height: SizeConfig.getHeightMultiplier() * (widget.haveOnePatient?20: 2)), + widget.haveListOfPatient? + Row( children: [ - FirstColumn(haveLessThan3Patient: widget.haveLessThan3Patient,), - - Container(width: 20,height:SizeConfig.getHeightMultiplier() *40,color: Colors.grey, margin: EdgeInsets.only(left: 30),), - QueItemList() + FirstColumn( + have3Patient: widget.have3Patient, + ), + const SizedBox( + width: 40, + ), + if(widget.haveListOfPatient) + Container( + width: 10, + height:SizeConfig.getHeightMultiplier()*40, + color: AppGlobal.appLightGreyColor, + ), + if(widget.haveListOfPatient) + const SizedBox( + width: 40, + ), + if(widget.haveListOfPatient) + const QueItemList() ], - ): FirstColumn(haveLessThan3Patient: widget.haveLessThan3Patient,), + ): FirstColumn(have3Patient: widget.have3Patient,), ], ), bottomSheet: Container( color: Colors.transparent, - height: 280, + height: Utils.getHeight()* 0.9, width: double.infinity, - padding: const EdgeInsets.only(left: 50, right: 50, bottom: 10,), child: Row( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.center , children: [ - AppText( - "Powered By", - letterSpacing: -2.48, - color: AppGlobal.appTextColor, - fontSize: SizeConfig.getWidthMultiplier() * 3, - + Padding( + padding: const EdgeInsets.only(top: 30, left: 30), + child: AppText( + "Powered By", + letterSpacing: -1.1, + color: AppGlobal.appTextColor, + fontSize: SizeConfig.getWidthMultiplier() * 2.5, + fontFamily: 'Poppins-Medium.ttf', + ), + ), + Padding( + padding: const EdgeInsets.only(top: 40, left: 18), + child: Image.asset( "assets/images/cloud_logo.png", height: SizeConfig.getHeightMultiplier()*5,), ), - const SizedBox(width: 40,), - Image.asset( "assets/images/cloud_logo.png",), ], ), ),// This trailing comma makes auto-formatting nicer for build methods. @@ -66,26 +83,26 @@ class _MyHomePageState extends State { } class FirstColumn extends StatelessWidget { - final bool haveLessThan3Patient; + final bool have3Patient; - const FirstColumn({Key key, this.haveLessThan3Patient = false}) : super(key: key); + const FirstColumn({Key key, this.have3Patient = false}) : super(key: key); @override Widget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.start, children: [ - QueItem(queNo: "OBG-T45", isFirstLine: true, isNurseVisit: true,), - SizedBox(height: SizeConfig.getHeightMultiplier() * 5,), - if(haveLessThan3Patient) + const QueItem(queNo: "OBG-T45", isFirstLine: true, isNurseVisit: true, haveListOfPatient: true,), + SizedBox( + height: SizeConfig.getHeightMultiplier() * 5,), + if(have3Patient) Row( mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - QueItem(queNo: "OBG-T45", isSecondLine: true, isNurseVisit: true,), - QueItem(queNo: "OBG-T45", isSecondLine: true, isNurseVisit: false,), + children: const [ + QueItem(queNo: "OBG-T45", isSecondLine: true, isNurseVisit: true, haveListOfPatient: true,), + QueItem(queNo: "OBG-T45", isSecondLine: true, isNurseVisit: false, haveListOfPatient: true,), ], ), - ], ); } diff --git a/lib/home/que_item/que_item.dart b/lib/home/que_item/que_item.dart new file mode 100644 index 0000000..94020d5 --- /dev/null +++ b/lib/home/que_item/que_item.dart @@ -0,0 +1,90 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:queuing_system/core/config/config.dart'; +import 'package:queuing_system/core/config/size_config.dart'; +import 'package:queuing_system/home/que_item/que_item_widget.dart'; +import 'package:queuing_system/widget/data_display/app_texts_widget.dart'; + +class QueItem extends StatelessWidget { + const QueItem({ + Key key, + this.isFirstLine = false, + this.isSecondLine = false, + this.isInListLine = false, + this.queNo, + this.isNurseVisit = false, + this.idDoctorVisit = false, this.haveListOfPatient + }) : super(key: key); + final bool isFirstLine; + final bool isSecondLine; + final bool isInListLine; + final bool isNurseVisit; + final bool idDoctorVisit; + final String queNo; + final bool haveListOfPatient; + + @override + Widget build(BuildContext context) { + return haveListOfPatient? + Padding( + padding: const EdgeInsets.all(45.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + QueItemWidget( + isFirstLine: isFirstLine, + isNurseVisit: isNurseVisit, + isSecondLine: isSecondLine, + queNo: queNo, + ), + ], + ), + ) + :Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only(right: 20.0, left: 20.0), + child: AppText( + queNo, + fontSize: SizeConfig.getWidthMultiplier() * + (isFirstLine + ? 13 + : isSecondLine + ? 8.5 + : 5.5), + letterSpacing: -2.6, + fontWeight: FontWeight.bold, + fontFamily: 'Poppins', + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SvgPicture.asset( + isNurseVisit + ? "assets/images/nurseicon.svg" + : "assets/images/doctoricon.svg", height:(isFirstLine + ? SizeConfig.getHeightMultiplier()*3 + : isSecondLine + ? SizeConfig.getHeightMultiplier()*3 + : SizeConfig.getHeightMultiplier()*3) ,), + const SizedBox(width: 8,), + AppText( + isNurseVisit ? " Please visit Nurse" : " Please visit doctor", + color: AppGlobal.appGreyColor, + fontSize: SizeConfig.getWidthMultiplier() * (isFirstLine + ? 3.3 + : isSecondLine + ? 3.3 + : 3.3), + letterSpacing: -1.6, + fontFamily: 'Poppins-Medium.ttf', + ), + ], + ) + ], + ); + } +} diff --git a/lib/home/que_item.dart b/lib/home/que_item/que_item_widget.dart similarity index 65% rename from lib/home/que_item.dart rename to lib/home/que_item/que_item_widget.dart index da9d30e..7ac5d60 100644 --- a/lib/home/que_item.dart +++ b/lib/home/que_item/que_item_widget.dart @@ -4,26 +4,23 @@ import 'package:queuing_system/core/config/config.dart'; import 'package:queuing_system/core/config/size_config.dart'; import 'package:queuing_system/widget/data_display/app_texts_widget.dart'; -class QueItem extends StatelessWidget { - const QueItem({ +class QueItemWidget extends StatelessWidget { + const QueItemWidget({ Key key, this.isFirstLine = false, this.isSecondLine = false, - this.isInListLine = false, this.queNo, this.isNurseVisit = false, - this.idDoctorVisit = false, }) : super(key: key); final bool isFirstLine; final bool isSecondLine; - final bool isInListLine; final bool isNurseVisit; - final bool idDoctorVisit; final String queNo; @override Widget build(BuildContext context) { return Column( + crossAxisAlignment: CrossAxisAlignment.center, children: [ AppText( queNo, @@ -31,38 +28,42 @@ class QueItem extends StatelessWidget { (isFirstLine ? 13 : isSecondLine - ? 8.5 - : 5.5), - letterSpacing: -9.32, + ? 7.5 + : 5.5), + letterSpacing: -5.00, fontWeight: FontWeight.bold, + fontFamily: 'Poppins-Bold.ttf', + ), Row( - mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, children: [ - SvgPicture.asset(isNurseVisit - ? "assets/images/nurseicon.svg" - : "assets/images/doctoricon.svg", height:(isFirstLine - ? 120 + SvgPicture.asset( + isNurseVisit + ? "assets/images/nurseicon.svg" + : "assets/images/doctoricon.svg", height:(isFirstLine + ? SizeConfig.getHeightMultiplier()*3 : isSecondLine - ? 80 - : 70) ,), - SizedBox(width: 10,), + ? SizeConfig.getHeightMultiplier()*3 + : SizeConfig.getHeightMultiplier()*3) ,), + const SizedBox(width: 8,), AppText( isNurseVisit ? "Please visit Nurse" : "Please visit doctor", color: isNurseVisit ? AppGlobal.appGreenColor : AppGlobal.appRedColor, fontSize: SizeConfig.getWidthMultiplier() * (isFirstLine - ? 4 + ? 3.3 : isSecondLine - ? 3 - : 3.2), + ? 3.3 + : 3.3), letterSpacing: -2.6, fontWeight: FontWeight.w600, + fontFamily: 'Poppins-Bold.ttf', ), ], - ) + ), ], ); } diff --git a/lib/home/que_item_list.dart b/lib/home/que_item_list.dart index 7f2a5d0..4dea15c 100644 --- a/lib/home/que_item_list.dart +++ b/lib/home/que_item_list.dart @@ -1,18 +1,26 @@ import 'package:flutter/material.dart'; -import 'package:queuing_system/home/que_item.dart'; +import 'package:queuing_system/home/que_item/que_item.dart'; class QueItemList extends StatelessWidget { const QueItemList({Key key}) : super(key: key); @override Widget build(BuildContext context) { - return Column(children: [ - QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true,), - QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true,), - QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true,), - QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true,), - QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true,), + return SizedBox( + child: Expanded( + child: Column( + children: const [ + QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true, haveListOfPatient: false,), + QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true, haveListOfPatient: false,), + QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true, haveListOfPatient: false,), + QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true, haveListOfPatient: false,), + QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true, haveListOfPatient: false,), + QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true, haveListOfPatient: false,), + QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true, haveListOfPatient: false,), + QueItem(queNo: "OBG-T45", isInListLine: true, isNurseVisit: true, haveListOfPatient: false,), - ],); + ],), + ), + ); } } diff --git a/lib/main.dart b/lib/main.dart index ffcdf1f..ed701d3 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,8 +1,5 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:queuing_system/utils/signalR_utils.dart'; - -import 'core/base/app_scaffold_widget.dart'; import 'core/base/project_view_model.dart'; import 'core/config/size_config.dart'; import 'home/home_screen.dart'; diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index c585496..73ac5f3 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -176,4 +176,8 @@ class Utils { // Join/Merge all words back to one String return capitalizedWords.join(' '); } + + static getHeight() { + return SizeConfig.getHeightMultiplier()*10; + } } diff --git a/lib/widget/data_display/app_texts_widget.dart b/lib/widget/data_display/app_texts_widget.dart index 9708e36..9fe77a2 100644 --- a/lib/widget/data_display/app_texts_widget.dart +++ b/lib/widget/data_display/app_texts_widget.dart @@ -300,7 +300,7 @@ class _AppTextState extends State { case "date": return 24.0; default: - return SizeConfig.textMultiplier * 2.5; + return SizeConfig.textMultiplier * 2.8; } } diff --git a/pubspec.lock b/pubspec.lock index b88033d..1f5e5a0 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -177,6 +177,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.12.11" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2" meta: dependency: transitive description: @@ -300,7 +307,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.3" + version: "0.4.8" tuple: dependency: transitive description: