Created
July 17, 2019 23:47
-
-
Save freelance-github/cba2ee0a626a605b9dab03d49447687c to your computer and use it in GitHub Desktop.
orders management
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
import '../packages/CIcons.dart'; | |
import '../components/dashboard/CarouselCards.dart'; | |
import 'package:scoped_model/scoped_model.dart'; | |
import '../scopedModels/base.dart'; | |
class DashboardPage extends StatefulWidget { | |
@override | |
State<StatefulWidget> createState() => _DashboardPageState(); | |
} | |
class _DashboardPageState extends State<DashboardPage> with TickerProviderStateMixin { | |
@override | |
Widget build(BuildContext context) { | |
return ScopedModelDescendant(builder: (BuildContext context, Widget child, BaseModel model) => | |
Scaffold( | |
appBar: AppBar( | |
textTheme: TextTheme(title: TextStyle(color: Colors.black87)), | |
title: Text(model.authUser.name, style: TextStyle(fontSize: 20),), | |
centerTitle: true, | |
leading: Icon(CIcons.home, color: Colors.black,), | |
brightness: Brightness.light, | |
backgroundColor: Colors.white, | |
elevation: 0.5, | |
actionsIconTheme: IconThemeData(color: Colors.black87), | |
actions: <Widget>[ | |
IconButton( | |
icon: Icon(CIcons.power_swtich), | |
onPressed: (){ | |
model.logout(); | |
}, | |
) | |
], | |
), | |
body: Container( | |
color: Colors.white, | |
width: double.infinity, | |
child: Column( | |
crossAxisAlignment: CrossAxisAlignment.start, | |
children: <Widget>[ | |
Container( | |
padding: EdgeInsets.symmetric(horizontal: 10), | |
child: Text("Statistic", style: TextStyle(color: Colors.black54,fontSize: 20)), | |
margin: EdgeInsets.only(top: 10, left: 10), | |
), | |
Container( | |
child: CarouselCards(), | |
), | |
], | |
), | |
) | |
) | |
); | |
} | |
} | |
/*MaterialApp( | |
debugShowMaterialGrid: true, | |
theme: ThemeData( | |
primarySwatch: Colors.deepOrange, | |
brightness: Brightness.light | |
), | |
home: Scaffold( | |
appBar: AppBar( | |
title: Text("Dashboard"), | |
), | |
body: OrdersManager(_orders) | |
), | |
)*/ | |
/* | |
return CupertinoApp( | |
theme: CupertinoThemeData( | |
// primaryColor: CupertinoColors.white | |
), | |
home: CupertinoTabScaffold(tabBar: CupertinoTabBar(items: [ | |
BottomNavigationBarItem( | |
icon: Icon(CupertinoIcons.shopping_cart), | |
title: Text("Orders"), | |
), | |
BottomNavigationBarItem( | |
icon: Icon(CupertinoIcons.mic_off), | |
title: Text("Expenses") | |
) | |
],), tabBuilder: (context, i) => CupertinoPageScaffold( | |
navigationBar: CupertinoNavigationBar( | |
trailing: Icon(CupertinoIcons.search), | |
middle: i == 0 ? Text("Orders"): Text("Expenses"), | |
leading: Icon(i == 0 ? CupertinoIcons.mail: CupertinoIcons.reply_thick_solid), | |
), | |
child: Center(child: i == 0 ? Text("Orders"): Text("Expenses")), | |
) | |
), | |
); | |
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
import '../../packages/CIcons.dart'; | |
import 'package:scoped_model/scoped_model.dart'; | |
import '../../scopedModels/base.dart'; | |
// child pages | |
import 'progress.dart'; | |
class OrdersPage extends StatefulWidget { | |
@override | |
State<StatefulWidget> createState() => _OrdersPage(); | |
} | |
class _OrdersPage extends State<OrdersPage> with TickerProviderStateMixin { | |
final List<Widget> _listPages = [ | |
ProgressPage(), // first page => 0 | |
Text("Not Found"), | |
]; | |
Widget getPage(index) { | |
if(_listPages.length > index) { | |
return _listPages[index]; | |
} | |
return _listPages.last; | |
} | |
@override | |
Widget build(BuildContext context) { | |
return ScopedModelDescendant(builder: (BuildContext context, Widget child, BaseModel model) { | |
return Scaffold( | |
body: NestedScrollView( | |
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { | |
return <Widget>[ | |
SliverAppBar( | |
pinned: true, | |
snap: true, | |
floating: true, | |
automaticallyImplyLeading: false, | |
textTheme: TextTheme(title: TextStyle(color: Colors.black87)), | |
title: Text("Orders", style: TextStyle(fontSize: 20),), | |
centerTitle: true, | |
// forceElevated: innerBoxIsScrolled, | |
leading: Icon(CIcons.store, color: Colors.black,), | |
brightness: Brightness.light, | |
backgroundColor: Colors.white, | |
elevation: 2, | |
actionsIconTheme: IconThemeData(color: Colors.black87), | |
actions: <Widget>[ | |
IconButton( | |
icon: Icon(CIcons.search_1), | |
onPressed: () { | |
model.logout(); | |
}, | |
) | |
], | |
bottom: PreferredSize( | |
child: BottomNavigationBar( | |
items: _buildNavigationBarItems(), | |
unselectedItemColor: Colors.grey, | |
iconSize: 20, | |
selectedFontSize: 10, | |
unselectedFontSize: 10, | |
selectedItemColor: Theme | |
.of(context) | |
.primaryColor, | |
elevation: 1, | |
onTap: (int index) { | |
model.selectOrderPage(index); | |
}, | |
currentIndex: model.selectedOrderPage, | |
type: BottomNavigationBarType.fixed, | |
backgroundColor: Colors.white, | |
showUnselectedLabels: false, | |
showSelectedLabels: false, | |
), | |
preferredSize: Size.fromHeight(kToolbarHeight), | |
), | |
), | |
]; | |
}, | |
body: getPage(model.selectedOrderPage) | |
), | |
// body: CustomScrollView(slivers: <Widget>[ | |
// SliverAppBar( | |
// pinned: true, | |
// snap: true, | |
// floating: true, | |
// | |
// textTheme: TextTheme(title: TextStyle(color: Colors.black87)), | |
// title: Text("Orders", style: TextStyle(fontSize: 20),), | |
// centerTitle: true, | |
// leading: Icon(CIcons.store, color: Colors.black,), | |
// brightness: Brightness.light, | |
// backgroundColor: Colors.white, | |
// elevation: 2, | |
// actionsIconTheme: IconThemeData(color: Colors.black87), | |
// actions: <Widget>[ | |
// IconButton( | |
// icon: Icon(CIcons.search_1), | |
// onPressed: (){ | |
// model.logout(); | |
// }, | |
// ) | |
// ], | |
// | |
// bottom: PreferredSize( | |
// child: BottomNavigationBar( | |
// items: _buildNavigationBarItems(), | |
// unselectedItemColor: Colors.grey, | |
// iconSize: 20, | |
// selectedFontSize: 10, | |
// unselectedFontSize: 10, | |
// selectedItemColor: Theme.of(context).primaryColor, | |
// elevation: 1, | |
// onTap: (int index) { | |
// model.selectOrderPage(index); | |
// }, | |
// currentIndex: model.selectedOrderPage, | |
// type: BottomNavigationBarType.fixed, | |
// backgroundColor: Colors.white, | |
// showUnselectedLabels: false, | |
// showSelectedLabels: false, | |
// ), | |
// preferredSize: Size.fromHeight(kToolbarHeight), | |
// ), | |
// ), | |
// getPage(model.selectedOrderPage) | |
// ], | |
// ) | |
); | |
}); | |
} | |
List<BottomNavigationBarItem> _buildNavigationBarItems() { | |
return [ | |
BottomNavigationBarItem( | |
icon: Icon(CIcons.list), | |
title: Text("Progress") | |
), | |
BottomNavigationBarItem( | |
icon: Icon(CIcons.phone), | |
title: Text("No replay"), | |
), | |
BottomNavigationBarItem( | |
icon: Icon(CIcons.undo), | |
title: Text("Refuased"), | |
), | |
BottomNavigationBarItem( | |
icon: Icon(CIcons.map_marker), | |
title: Text("Out Of Range"), | |
), | |
BottomNavigationBarItem( | |
icon: Icon(CIcons.paper_plane), | |
title: Text("Approved"), | |
), | |
]; | |
} | |
} | |
/* | |
bottom: TabBar( | |
controller: _tabController, | |
tabs: <Tab>[ | |
Tab(icon: Icon(CIcons.list),), | |
Tab(icon: Icon(CIcons.phone_handset),), | |
], | |
labelColor: Theme.of(context).primaryColor, | |
isScrollable: false, | |
indicator: BoxDecoration( | |
color: Colors.grey[100] | |
), | |
unselectedLabelColor: Colors.black45, | |
onTap: (int currentPage) { | |
setState(() { | |
_currentPage = currentPage; | |
}); | |
}, | |
), | |
TabBarView( | |
physics: ScrollPhysics(parent: ScrollPhysics()), | |
children: childPages, | |
controller: _tabController, | |
) | |
*/ | |
/* | |
new Scaffold( | |
body: new NestedScrollView( | |
controller: _scrollViewController, | |
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { | |
return <Widget>[ | |
new SliverAppBar( | |
title: new Text(widget.title), | |
pinned: true, | |
floating: true, | |
forceElevated: innerBoxIsScrolled, | |
bottom: new TabBar( | |
tabs: <Tab>[ | |
new Tab(text: "STATISTICS"), | |
new Tab(text: "HISTORY"), | |
], | |
controller: _tabController, | |
), | |
), | |
]; | |
}, | |
body: new TabBarView( | |
children: <Widget>[ | |
new StatisticsPage(), | |
new HistoryPage(), | |
], | |
controller: _tabController, | |
), | |
), | |
); | |
ScopedModelDescendant(builder: (BuildContext context, Widget child, BaseModel model) =>Scaffold( | |
appBar: AppBar( | |
textTheme: TextTheme(title: TextStyle(color: Colors.black87)), | |
title: Text("Orders", style: TextStyle(fontSize: 20),), | |
centerTitle: true, | |
leading: Icon(CIcons.store, color: Colors.black,), | |
brightness: Brightness.light, | |
backgroundColor: Colors.white, | |
elevation: 0.5, | |
actionsIconTheme: IconThemeData(color: Colors.black87), | |
actions: <Widget>[ | |
IconButton( | |
icon: Icon(CIcons.search_1), | |
onPressed: (){ | |
model.logout(); | |
}, | |
) | |
], | |
bottom: PreferredSize( | |
child: BottomNavigationBar( | |
items: _buildNavigationBarItems(), | |
unselectedItemColor: Colors.grey, | |
iconSize: 20, | |
selectedFontSize: 10, | |
unselectedFontSize: 10, | |
selectedItemColor: Theme.of(context).primaryColor, | |
elevation: 1, | |
onTap: (int index) { | |
model.selectOrderPage(index); | |
}, | |
currentIndex: model.selectedOrderPage, | |
type: BottomNavigationBarType.fixed, | |
backgroundColor: Colors.white, | |
showUnselectedLabels: false, | |
showSelectedLabels: false, | |
), | |
preferredSize: Size.fromHeight(kToolbarHeight), | |
), | |
), | |
body: getPage(model.selectedOrderPage) | |
) | |
) | |
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
import '../../packages/CIcons.dart'; | |
import 'dart:async'; | |
import 'package:scoped_model/scoped_model.dart'; | |
import '../../scopedModels/base.dart'; | |
class ProgressPage extends StatefulWidget { | |
@override | |
State<StatefulWidget> createState() => _ProgressPageState(); | |
} | |
class _ProgressPageState extends State<ProgressPage> with TickerProviderStateMixin { | |
@override | |
Widget build(BuildContext context) { | |
return ListView.builder( | |
itemBuilder: (BuildContext context, int index) { | |
return _orderDetailCard(); | |
}, | |
itemCount: 10, | |
padding: EdgeInsets.all(8), | |
); | |
} | |
Widget _orderDetailCard() { | |
return Container( | |
// padding: EdgeInsets.only(bottom: 4,), | |
child: Card( | |
child: Padding( | |
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10), | |
child: Column( | |
crossAxisAlignment: CrossAxisAlignment.start, | |
children: <Widget>[ | |
Row( | |
crossAxisAlignment: CrossAxisAlignment.start, | |
children: <Widget>[ | |
Expanded(child: Column( | |
crossAxisAlignment: CrossAxisAlignment.start, | |
children: <Widget>[ | |
Text("Abderrazzak oxa", style: TextStyle(fontSize: 18, fontFamily: 'Poppins-Medium')), | |
Row(children: <Widget>[ | |
SizedBox(width: 5,), | |
Icon(CIcons.map_marker, size: 12,), | |
SizedBox(width: 5,), | |
Text("Hay Takadoum El Koalea Ait Melloul", style: TextStyle(color: Theme.of(context).textTheme.headline.color, fontSize: 12,),) | |
],) | |
]), | |
), | |
InkWell( | |
child: Container( | |
child: Icon(CIcons.phone_handset, size: 18,), | |
padding: EdgeInsets.all(5), | |
), | |
onTap: (){ | |
final snackBar = SnackBar(content: Text("Tap"), action: SnackBarAction(label: "Okay", onPressed: (){}),); | |
Scaffold.of(context).showSnackBar(snackBar); | |
}, | |
) | |
], | |
), | |
SizedBox(height: 10,), | |
Row( | |
mainAxisAlignment: MainAxisAlignment.start, | |
children: <Widget>[ | |
Text("3.", style: TextStyle(color: Colors.black, fontSize: 12),), | |
SizedBox(width: 2,), | |
Text("Notebook 1442", style: TextStyle(color: Colors.black87, fontSize: 12),), | |
SizedBox(width: 5,), | |
Text("200 DH", style: TextStyle(color: Theme.of(context).primaryColor, fontSize: 12),), | |
], | |
), | |
SizedBox(height: 20,), | |
Row( | |
mainAxisAlignment: MainAxisAlignment.spaceBetween, | |
children: <Widget>[ | |
InkWell( | |
onTap: (){}, | |
child: Text("View more", style: TextStyle(fontSize: 12),), | |
), | |
Row( | |
children: <Widget>[ | |
Icon(CIcons.calendar, size: 9, color: Colors.black45,), | |
SizedBox(width: 3,), | |
Text("Des, 25 19", style: TextStyle(color: Colors.black45, fontSize: 12),) | |
], | |
) | |
], | |
) | |
], | |
) | |
), | |
), | |
); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment