From 46dbd464babe64a284a05f76313001aad5842239 Mon Sep 17 00:00:00 2001 From: "hanie.khodkari" Date: Sun, 16 Mar 2025 18:08:13 +0330 Subject: [PATCH] Arrange the tiles of home and dashboard --- lib/pages/home_screen.dart | 105 ++++++++++++++++----------------- lib/widgets/Global/drawer.dart | 103 ++++++++++++++++++++++++++++---- 2 files changed, 143 insertions(+), 65 deletions(-) diff --git a/lib/pages/home_screen.dart b/lib/pages/home_screen.dart index 8f1e02d..4ef32c1 100755 --- a/lib/pages/home_screen.dart +++ b/lib/pages/home_screen.dart @@ -146,22 +146,41 @@ class HomePage extends StatelessWidget { ), ), ), - Divider( - height: 2, - ), SelectionItem( - firstLine: 'LABELS', - secondLine: 'List, Details & Add a one', - firstLineColor: kLightBlue, - secondLineColor: kLightBlueSub, - backgroundColor: kLightBlueBackground, + firstLine: 'TEST TO VERIFY', + secondLine: 'Verify and reject Test Results', + firstLineColor: Colors.black, + secondLineColor: Colors.grey, + backgroundColor: kLightGreyBackground, onTap: () => Navigator.push( context, MaterialPageRoute( builder: (context) { return Consumer( builder: (ctx, auth, _) { - return LabelResultScreen(); + return TestVerifyScreen(); + }, + ); + }, + ), + ), + ), + Divider( + height: 2, + ), + SelectionItem( + firstLine: 'ITEMS', + secondLine: 'List, Details & Add a one', + firstLineColor: kBlue, + secondLineColor: kBlueSub, + backgroundColor: kBlueBackground, + onTap: () => Navigator.push( + context, + MaterialPageRoute( + builder: (context) { + return Consumer( + builder: (ctx, auth, _) { + return ItemResultScreen(); }, ); }, @@ -169,18 +188,18 @@ class HomePage extends StatelessWidget { ), ), SelectionItem( - firstLine: 'CYCLES', - secondLine: 'List, Details & Add a one', - firstLineColor: kPink, - secondLineColor: kPinkSub, - backgroundColor: kPinkBackground, + firstLine: 'MY ITEMS', + secondLine: 'The Items that i possess', + firstLineColor: kDarkBlue, + secondLineColor: kDarkBlueSub, + backgroundColor: kDarkBlueBackground, onTap: () => Navigator.push( context, MaterialPageRoute( builder: (context) { return Consumer( builder: (ctx, auth, _) { - return CycleResultScreen(); + return MyItemsResultScreen(); }, ); }, @@ -232,18 +251,18 @@ class HomePage extends StatelessWidget { height: 2, ), SelectionItem( - firstLine: 'ITEMS', + firstLine: 'LABELS', secondLine: 'List, Details & Add a one', - firstLineColor: kBlue, - secondLineColor: kBlueSub, - backgroundColor: kBlueBackground, + firstLineColor: kLightBlue, + secondLineColor: kLightBlueSub, + backgroundColor: kLightBlueBackground, onTap: () => Navigator.push( context, MaterialPageRoute( builder: (context) { return Consumer( builder: (ctx, auth, _) { - return ItemResultScreen(); + return LabelResultScreen(); }, ); }, @@ -251,18 +270,18 @@ class HomePage extends StatelessWidget { ), ), SelectionItem( - firstLine: 'MY ITEMS', - secondLine: 'The Items that i possess', - firstLineColor: kDarkBlue, - secondLineColor: kDarkBlueSub, - backgroundColor: kDarkBlueBackground, + firstLine: 'CYCLES', + secondLine: 'List, Details & Add a one', + firstLineColor: kPink, + secondLineColor: kPinkSub, + backgroundColor: kPinkBackground, onTap: () => Navigator.push( context, MaterialPageRoute( builder: (context) { return Consumer( builder: (ctx, auth, _) { - return MyItemsResultScreen(); + return CycleResultScreen(); }, ); }, @@ -270,25 +289,6 @@ class HomePage extends StatelessWidget { ), ), Divider(height: 2), - SelectionItem( - firstLine: 'TEST TO VERIFY', - secondLine: 'Verify and reject Test Results', - firstLineColor: Colors.black, - secondLineColor: Colors.grey, - backgroundColor: kLightGreyBackground, - onTap: () => Navigator.push( - context, - MaterialPageRoute( - builder: (context) { - return Consumer( - builder: (ctx, auth, _) { - return TestVerifyScreen(); - }, - ); - }, - ), - ), - ), BarcodeSelectionItem(), ], ), @@ -331,14 +331,13 @@ class SelectionItem extends StatelessWidget { final Color? backgroundColor; final VoidCallback? onTap; - SelectionItem({ - this.firstLine, - this.secondLine, - this.onTap, - this.firstLineColor, - this.secondLineColor, - this.backgroundColor - }); + SelectionItem( + {this.firstLine, + this.secondLine, + this.onTap, + this.firstLineColor, + this.secondLineColor, + this.backgroundColor}); @override Widget build(BuildContext context) { diff --git a/lib/widgets/Global/drawer.dart b/lib/widgets/Global/drawer.dart index c069b95..eba8274 100755 --- a/lib/widgets/Global/drawer.dart +++ b/lib/widgets/Global/drawer.dart @@ -4,8 +4,10 @@ import 'package:cssd/providers/auth.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; +import 'package:url_launcher/url_launcher.dart'; import '../../config/routes.dart'; +import '../../pages/TestPages/test_filter_screen.dart'; class AppDrawer extends StatefulWidget { @override @@ -24,6 +26,10 @@ class _AppDrawerState extends State { @override Widget build(BuildContext context) { + final _media = MediaQuery.of(context); + + final double _devicewidth = _media.size.width; + final double _deviceBlockSize = _devicewidth / 100; return SafeArea( child: SizedBox( width: 250, @@ -142,7 +148,7 @@ class _AppDrawerState extends State { ), InkWell( onTap: () { - Navigator.of(context).pushNamed(Routes.labelResultScreen); + Navigator.of(context).pushNamed(Routes.itemResultScreen); }, child: Container( padding: EdgeInsets.symmetric(vertical: 5, horizontal: 15), @@ -153,14 +159,14 @@ class _AppDrawerState extends State { child: Row( children: [ Icon( - FontAwesomeIcons.tag, + Icons.book, color: Colors.white, ), SizedBox( width: 10, ), Text( - 'Labels', + 'Items', style: TextStyle( color: Colors.white, ), @@ -171,7 +177,7 @@ class _AppDrawerState extends State { ), InkWell( onTap: () { - Navigator.of(context).pushNamed(Routes.cycleResultScreen); + Navigator.of(context).pushNamed(Routes.myItemsResultScreen); }, child: Container( padding: EdgeInsets.symmetric(vertical: 5, horizontal: 15), @@ -182,14 +188,14 @@ class _AppDrawerState extends State { child: Row( children: [ Icon( - Icons.refresh, + Icons.my_library_books, color: Colors.white, ), SizedBox( width: 10, ), Text( - 'Cycles', + 'My Items', style: TextStyle( color: Colors.white, ), @@ -259,7 +265,7 @@ class _AppDrawerState extends State { ), InkWell( onTap: () { - Navigator.of(context).pushNamed(Routes.itemResultScreen); + Navigator.of(context).pushNamed(Routes.labelResultScreen); }, child: Container( padding: EdgeInsets.symmetric(vertical: 5, horizontal: 15), @@ -270,14 +276,14 @@ class _AppDrawerState extends State { child: Row( children: [ Icon( - Icons.book, + FontAwesomeIcons.tag, color: Colors.white, ), SizedBox( width: 10, ), Text( - 'Items', + 'Labels', style: TextStyle( color: Colors.white, ), @@ -288,7 +294,7 @@ class _AppDrawerState extends State { ), InkWell( onTap: () { - Navigator.of(context).pushNamed(Routes.myItemsResultScreen); + Navigator.of(context).pushNamed(Routes.cycleResultScreen); }, child: Container( padding: EdgeInsets.symmetric(vertical: 5, horizontal: 15), @@ -299,14 +305,87 @@ class _AppDrawerState extends State { child: Row( children: [ Icon( - Icons.my_library_books, + Icons.refresh, color: Colors.white, ), SizedBox( width: 10, ), Text( - 'My Items', + 'Cycles', + style: TextStyle( + color: Colors.white, + ), + ) + ], + ), + ), + ), + InkWell( + onTap: () => scan().then( + (String result) { + if (result == 'cancel') { + print('cancel'); + } else if (result == 'error') { + print('error'); + } else if (result == 'access') { + print('access'); + } else { + print(result); + showDialog( + context: context, + builder: (_) => AlertDialog( + title: Text( + 'نتیجه ی اسکن', + textDirection: TextDirection.rtl, + textAlign: TextAlign.right, + style: TextStyle( + fontSize: 2.75 * _deviceBlockSize, + ), + ), + content: Text( + result, + textDirection: TextDirection.rtl, + style: TextStyle( + fontSize: 4 * _deviceBlockSize, + ), + ), + actions: [ + TextButton( + onPressed: () async { + await launch(result); + Navigator.of(context).pop(); + }, + child: Text( + 'بازکردن در مرورگر', + style: TextStyle( + fontFamily: 'montserrat', + ), + ), + ), + ], + ), + ); + } + }, + ), + child: Container( + padding: EdgeInsets.symmetric(vertical: 5, horizontal: 15), + margin: EdgeInsets.only(top: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(5), + ), + child: Row( + children: [ + Icon( + Icons.qr_code_scanner, + color: Colors.white, + ), + SizedBox( + width: 10, + ), + Text( + 'Scanner', style: TextStyle( color: Colors.white, ),