Skip to content

Commit

Permalink
more refactoring / add card screen
Browse files Browse the repository at this point in the history
  • Loading branch information
thenifemi committed Jul 10, 2020
1 parent e3d1f4f commit 737aa74
Show file tree
Hide file tree
Showing 5 changed files with 129 additions and 312 deletions.
2 changes: 0 additions & 2 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import 'package:mollet/screens/register_screens/registration_screen.dart';
import 'package:mollet/screens/register_screens/reset_screen.dart';
import 'package:mollet/screens/settings_screens/cards.dart';
import 'package:mollet/screens/settings_screens/changePassword.dart';
import 'package:mollet/screens/settings_screens/inviteFriend.dart';
import 'package:mollet/screens/settings_screens/passwordSecurity.dart';
import 'package:mollet/utils/colors.dart';
import 'package:mollet/widgets/provider.dart';
Expand All @@ -39,7 +38,6 @@ final routes = {
'/Security': (BuildContext context) => SecurityScreen(),
'/ChangePassword': (BuildContext context) => ChangePasswordScreen(),
'/Cards': (BuildContext context) => Cards(),
'/InviteFriend': (BuildContext context) => InviteFriendScreen(),
'/MyTabs': (BuildContext context) => TabsLayout(),
};

Expand Down
279 changes: 122 additions & 157 deletions lib/screens/settings_screens/cards.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:mollet/model/notifiers/userData_notifier.dart';
import 'package:mollet/model/services/user_management.dart';
import 'package:mollet/screens/tab_screens/checkout_screens/addPaymentMethod.dart';
Expand Down Expand Up @@ -45,76 +44,74 @@ class _CardsState extends State<Cards> {
return Scaffold(
key: _scaffoldKey,
backgroundColor: MColors.primaryWhiteSmoke,
appBar: AppBar(
elevation: 0.0,
brightness: Brightness.light,
backgroundColor: MColors.primaryWhite,
leading: IconButton(
appBar: primaryAppBar(
IconButton(
icon: Icon(
Icons.arrow_back_ios,
color: MColors.textDark,
color: MColors.textGrey,
),
onPressed: () {
Navigator.of(context).pop();
},
),
title: Text(
Text(
"Cards",
style: GoogleFonts.montserrat(
fontSize: 20.0,
color: MColors.primaryPurple,
fontWeight: FontWeight.bold),
style: boldFont(MColors.primaryPurple, 18.0),
),
centerTitle: true,
MColors.primaryWhiteSmoke,
null,
true,
null,
),
body: Column(
children: <Widget>[
Container(
padding: EdgeInsets.all(20.0),
child: FutureBuilder(
future: cardFuture,
builder: (c, s) {
switch (s.connectionState) {
case ConnectionState.active:
return Container(
height: MediaQuery.of(context).size.height / 7,
color: MColors.primaryWhiteSmoke,
child: Center(
child: CircularProgressIndicator(
strokeWidth: 2.0,
body: primaryContainer(
Column(
children: <Widget>[
Container(
child: FutureBuilder(
future: cardFuture,
builder: (c, s) {
switch (s.connectionState) {
case ConnectionState.active:
return Container(
height: MediaQuery.of(context).size.height / 7,
color: MColors.primaryWhiteSmoke,
child: Center(
child: CircularProgressIndicator(
strokeWidth: 2.0,
),
),
),
);
break;
case ConnectionState.done:
return cardList.isEmpty ? noCard() : savedPaymentMethod();
break;
case ConnectionState.waiting:
return Container(
height: MediaQuery.of(context).size.height / 7,
color: MColors.primaryWhiteSmoke,
child: Center(
child: CircularProgressIndicator(
strokeWidth: 2.0,
);
break;
case ConnectionState.done:
return cardList.isEmpty ? noCard() : savedPaymentMethod();
break;
case ConnectionState.waiting:
return Container(
height: MediaQuery.of(context).size.height / 7,
color: MColors.primaryWhiteSmoke,
child: Center(
child: CircularProgressIndicator(
strokeWidth: 2.0,
),
),
),
);
break;
default:
return Container(
height: MediaQuery.of(context).size.height / 7,
color: MColors.primaryWhiteSmoke,
child: Center(
child: CircularProgressIndicator(
strokeWidth: 2.0,
);
break;
default:
return Container(
height: MediaQuery.of(context).size.height / 7,
color: MColors.primaryWhiteSmoke,
child: Center(
child: CircularProgressIndicator(
strokeWidth: 2.0,
),
),
),
);
}
},
);
}
},
),
),
),
],
],
),
),
);
}
Expand All @@ -138,6 +135,7 @@ class _CardsState extends State<Cards> {
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
children: <Widget>[
Expand All @@ -154,10 +152,7 @@ class _CardsState extends State<Cards> {
child: Container(
child: Text(
"Payment method",
style: GoogleFonts.montserrat(
fontSize: 14.0,
color: MColors.textGrey,
),
style: normalFont(MColors.textGrey, 14.0),
),
),
),
Expand Down Expand Up @@ -187,13 +182,8 @@ class _CardsState extends State<Cards> {
);
}
},
child: Text(
"Change",
style: GoogleFonts.montserrat(
fontSize: 14.0,
color: MColors.primaryPurple,
fontWeight: FontWeight.w600),
),
child: Text("Change",
style: boldFont(MColors.primaryPurple, 14.0)),
),
),
],
Expand All @@ -204,27 +194,19 @@ class _CardsState extends State<Cards> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
padding: const EdgeInsets.only(top: 5.0),
child: Text(
card.cardHolder,
style: GoogleFonts.montserrat(
fontSize: 16.0,
color: MColors.textDark,
fontWeight: FontWeight.w500,
),
style: boldFont(MColors.textDark, 16.0),
),
),
Row(
children: <Widget>[
Container(
child: Text(
"**** **** **** " +
"•••• •••• •••• " +
card.cardNumber
.substring(card.cardNumber.length - 4),
style: GoogleFonts.montserrat(
fontSize: 16.0,
color: MColors.textGrey,
),
style: normalFont(MColors.textGrey, 16.0),
),
),
Spacer(),
Expand All @@ -248,89 +230,72 @@ class _CardsState extends State<Cards> {
UserDataCardNotifier cardNotifier =
Provider.of<UserDataCardNotifier>(context);
var cardList = cardNotifier.userDataCardList;
var card = cardList.first;
return Center(
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
SvgPicture.asset(
"assets/images/creditcard.svg",
height: 150,
),
SizedBox(
height: 20.0,
),
Text(
"No card is attached to this account",
style: GoogleFonts.montserrat(
fontSize: 16.0,
color: MColors.primaryPurple,
),
),
SizedBox(
height: 5.0,
),
Padding(
padding: const EdgeInsets.only(left: 30.0, right: 30.0),
child: Text(
"Add a new card to start making quick and easy payments",
style: GoogleFonts.montserrat(
fontSize: 14.0,
color: MColors.textGrey,
return Container(
width: MediaQuery.of(context).size.width,
padding: EdgeInsets.all(20.0),
decoration: BoxDecoration(
color: MColors.primaryWhite,
borderRadius: BorderRadius.all(
Radius.circular(10.0),
),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
children: <Widget>[
Container(
child: SvgPicture.asset(
"assets/images/icons/Wallet.svg",
color: MColors.primaryPurple,
),
textAlign: TextAlign.center,
),
),
SizedBox(
height: 20.0,
),
SizedBox(
width: double.infinity,
height: 60.0,
child: RawMaterialButton(
elevation: 0.0,
hoverElevation: 0.0,
focusElevation: 0.0,
highlightElevation: 0.0,
fillColor: MColors.primaryPurple,
onPressed: () async {
UserDataCardNotifier cardNotifier =
Provider.of<UserDataCardNotifier>(context, listen: false);

var navigationResult = await Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => AddNewCard(card, cardList),
),
);
if (navigationResult == true) {
setState(() {
getCard(cardNotifier);
});
showSimpleSnack(
"Card has been updated",
Icons.check_circle_outline,
Colors.green,
_scaffoldKey,
);
}
},
child: Text(
"Add Card",
style: GoogleFonts.montserrat(
color: MColors.primaryWhite,
fontSize: 16.0,
fontWeight: FontWeight.bold),
),
shape: RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(10.0),
SizedBox(
width: 5.0,
),
Expanded(
child: Container(
child: Text(
"Payment method",
style: normalFont(MColors.textGrey, 14.0),
),
),
),
],
),
SizedBox(height: 10.0),
Container(
padding: const EdgeInsets.only(left: 25.0),
child: Text(
"No payment method added to this account",
style: normalFont(MColors.textGrey, 16.0),
),
],
),
),
SizedBox(height: 10.0),
primaryButtonWhiteSmoke(
Text("Add a payment method",
style: boldFont(MColors.primaryPurple, 16.0)),
() async {
var navigationResult = await Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => AddNewCard(null, cardList),
),
);
if (navigationResult == true) {
setState(() {
getCard(cardNotifier);
});
showSimpleSnack(
"Card has been updated",
Icons.check_circle_outline,
Colors.green,
_scaffoldKey,
);
}
},
),
],
),
);
}
Expand Down
Loading

0 comments on commit 737aa74

Please sign in to comment.