import 'package:driverapp/config/size_config.dart'; import 'package:driverapp/core/viewModels/pending_orders_view_model.dart'; import 'package:driverapp/pages/delivery/information_page.dart'; import 'package:driverapp/pages/orders/pending_orders_page.dart'; import 'package:driverapp/widgets/others/rounded_container.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import '../base/base_view.dart'; class DashboardScreen extends StatefulWidget { @override _DashboardScreenState createState() => _DashboardScreenState(); } class _DashboardScreenState extends State { @override Widget build(BuildContext context) { return BaseView( onModelReady: (model) => model.getPendingOrders(), builder: (BuildContext context, PendingOrdersViewModel model, Widget child) => Scaffold( backgroundColor: Color(0xffF4F9FA), body: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Padding( padding: EdgeInsets.all(16.0), child: Column( children: [ Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( 'Have a great day ,', style: TextStyle(fontSize: 12.5), ), Padding( padding: EdgeInsets.only(top: 4.5), child: Text( 'Driver Name', style: TextStyle( fontWeight: FontWeight.w400, fontSize: 25.0), ), ), ], ), ], ), ), Padding( padding: EdgeInsets.all(16.0), child: Column( children: [ CircleAvatar( radius: 25.5, backgroundColor: Color(0xff30B7B9), child: CircleAvatar( backgroundColor: Color(0xff30B7B9), maxRadius: 26.0, child: Image.asset( 'assets/images/driver.png', fit: BoxFit.contain, ), ), ), ], ), ), ], ), Row( children: [ Column( children: [ Padding( padding: EdgeInsets.symmetric(horizontal: 12.0), child: Container( height: MediaQuery.of(context).size.height * 0.15, width: MediaQuery.of(context).size.width * 0.43, decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), gradient: LinearGradient( colors: [Color(0xff17AFB8), Color(0xff49C1BC)]), ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Padding( padding: EdgeInsets.all(12.0), child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Text( 'You Have', style: TextStyle( color: Colors.white, fontSize: 10.0), ), Text( '5', style: TextStyle( color: Colors.white, fontSize: 25.0), ), Text( 'Undelivered \n Packages', style: TextStyle( color: Colors.white, fontSize: 10.0), ) ], ), ), Padding( padding: EdgeInsets.all(4.0), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Padding( padding: EdgeInsets.only(right: 9.5), child: Image.asset( 'assets/images/closed_box.png', height: MediaQuery.of(context).size.height * 0.09, width: MediaQuery.of(context).size.width * 0.20, //fit: BoxFit.cover, )), ], ), ) ], ), ), ) ], ), Column( children: [ Padding( padding: EdgeInsets.symmetric(horizontal: 12.0), child: Container( height: MediaQuery.of(context).size.height * 0.15, width: MediaQuery.of(context).size.width * 0.43, decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), gradient: LinearGradient( colors: [Color(0xff17AFB8), Color(0xff49C1BC)]), ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Padding( padding: EdgeInsets.all(12.0), child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Text( 'You Have', style: TextStyle( color: Colors.white, fontSize: 10.0), ), Text( '25', style: TextStyle( color: Colors.white, fontSize: 25.0), ), Text( 'unWanted\n Packge', style: TextStyle( color: Colors.white, fontSize: 10.0), ) ], ), ), Padding( padding: EdgeInsets.only(right: 9.5), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Image.asset( 'assets/images/open_box.png', height: MediaQuery.of(context).size.height * 0.11, width: MediaQuery.of(context).size.width * 0.24, scale: 0.9, fit: BoxFit.cover, ), ], ), ), ], ), ), ) ], ), ], ), Padding( padding: EdgeInsets.symmetric(vertical: 16.0, horizontal: 12.0), child: Row( children: [ Expanded( child: InkWell( child: Container( height: 140, width: 350, decoration: BoxDecoration( borderRadius: BorderRadius.circular(12.0), gradient: LinearGradient(colors: [ Color(0xff48C0BC), Color(0xff17AFB8) ])), child: Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Image.asset( 'assets/images/qr_code.png', width: MediaQuery.of(context).size.width * 0.25, height: MediaQuery.of(context).size.height * 0.14, fit: BoxFit.fitHeight, ) ], ), Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( 'SCAN', style: TextStyle( fontSize: 35.0, color: Colors.white), ), Padding( padding: EdgeInsets.only(top: 6.0), child: Text( 'To add package to que ', style: TextStyle( fontSize: 12.0, color: Colors.white, letterSpacing: 0.5, wordSpacing: 5.5, ), ), ), ], ) ], ), ), ), ) ], ), ), Padding( padding: EdgeInsets.symmetric(horizontal: 12.0, vertical: 10.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Column( children: [ Text( 'Nearest Drop-Offs', style: TextStyle( fontSize: 21.0, fontWeight: FontWeight.w400, ), ), ], ), Column( mainAxisAlignment: MainAxisAlignment.center, children: [ InkWell( child: Row( children: [ Text( 'See All', style: TextStyle(fontSize: 14.5), ), Icon( Icons.arrow_forward_ios, size: 15.0, ), ], ), onTap: () => Navigator.push( context, MaterialPageRoute( builder: (context) => OrdersListScreen()), )), ], ), ], ), ), Column( children: [ ListView.builder( shrinkWrap: true, scrollDirection: Axis.vertical, itemCount: //model.orders == null ? 0 : model.orders.length, 2, itemBuilder: (BuildContext context, int index) { return InkWell( onTap: () { Navigator.push( context, MaterialPageRoute(builder: (context) => InformationPage(model.orders[index]))); }, child: Padding( padding: EdgeInsets.symmetric(horizontal: 12.0), child: RoundedContainer( height: SizeConfig.heightMultiplier * 10.5, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Padding( padding: EdgeInsets.only(left: 22.0), child: Image.asset( 'assets/images/location.png'), ) ], ), if (model.orders.length != 0) Column( crossAxisAlignment: CrossAxisAlignment .start, children: [ Text( model.orders[index].firstName + ' ' + model.orders[index].lastName, style: TextStyle(fontSize: 20.0), ), Text( model.orders[index].mobileNumber, style: TextStyle( color: Color(0xff30B7B9), fontWeight: FontWeight.w600, fontSize: 15.0), ), Text( 'Olaya ST, Behind kfc next to king-\ndom tower 2nd floor n.o 247', style: TextStyle(color: Colors.black45), ) ], ), Padding( padding: EdgeInsets.all(10.0), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ CircleAvatar( backgroundColor: Colors.black45, radius: 30.0, child: CircleAvatar( backgroundColor: Colors.white, maxRadius: 28.9, child: Padding( padding: const EdgeInsets.all(8.0), child: Text( '3 K.m \n away', style: TextStyle( color: Color(0xff30B7B9), fontSize: 14.0), ), ), ), ) ], ), ) ], ), ), ), ); }) ], ) ], ), ), ); } }