Skip to content

Commit 62eb89c

Browse files
author
Wilker Oliveira
committed
list item and menu item widget created
1 parent 328aac2 commit 62eb89c

File tree

8 files changed

+176
-133
lines changed

8 files changed

+176
-133
lines changed

lib/src/ui/resources/app_color.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,6 @@ class AppColor {
1616

1717
static const Color creditCardFirstColor = Color(0xFFbdc3c7);
1818
static const Color creditCardSecondColor = Color(0xFF2c3e50);
19+
20+
static const Color debitColor = Color(0xFFB34747);
1921
}

lib/src/ui/resources/app_dimen.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,19 @@ class AppDimen {
7272
static const double cardDetailWidth = 100.0;
7373

7474
static const double menuCardHeight = 150.0;
75+
static const double menuItemHeight = 90.0;
76+
static const double menuItemWidth = 112.0;
77+
static const double menuItemBorderRadius = 15.0;
78+
static const double menuItemImageWidth = 48.0;
79+
static const double menuItemTextSize = 12.0;
7580

7681
static const double creditCardHeight = 126.0;
7782
static const double creditCardWidth = 390.0;
7883
static const double creditCardLogoWidth = 64.0;
7984
static const double creditCardLogoHeight = 64.0;
8085
static const double creditCardNumberSize = 22.0;
86+
87+
static const double listItemIconSize = 36.0;
88+
static const double listItemContentWidth = 100.0;
89+
static const double listItemContentHeight = 40.0;
8190
}

lib/src/ui/screens/card/card_screen.dart

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import 'package:bank_cards/src/ui/resources/app_dimen.dart';
66
import 'package:bank_cards/src/ui/resources/app_styles.dart';
77
import 'package:bank_cards/src/ui/resources/decorations.dart';
88
import 'package:bank_cards/src/ui/screens/base/base_widget.dart';
9-
import 'package:bank_cards/src/ui/widgets/common/common_widgets.dart';
109
import 'package:bank_cards/src/ui/widgets/credit_card/credit_card_front.dart';
1110
import 'package:bank_cards/src/ui/widgets/custom_circular_progress_indicator.dart';
1211
import 'package:bank_cards/src/ui/widgets/menu/horizontal_menu_widget.dart';
12+
import 'package:bank_cards/src/ui/widgets/menu/menu_item_widget.dart';
1313
import 'package:bank_cards/src/utils/formatter.dart';
1414
import 'package:bank_cards/src/viewmodel/base/base_viewmodel.dart';
1515
import 'package:bank_cards/src/viewmodel/card/card_viewmodel.dart';
@@ -43,7 +43,6 @@ class _CardPageState extends State<CardPage> {
4343

4444
@override
4545
Widget build(BuildContext context) {
46-
4746
Size screenSize = MediaQuery.of(context).size;
4847

4948
return BaseWidget<CardViewModel>(
@@ -253,7 +252,10 @@ class _CardPageState extends State<CardPage> {
253252
// break;
254253
}
255254
},
256-
child: CommonWidgets.menuItem(img, text),
255+
child: MenuItemWidget(
256+
image: img,
257+
text: text,
258+
),
257259
);
258260
}
259261
}

lib/src/ui/screens/card/statement/statement_card_screen.dart

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ import 'package:bank_cards/src/ui/resources/app_dimen.dart';
55
import 'package:bank_cards/src/ui/resources/app_styles.dart';
66
import 'package:bank_cards/src/ui/resources/decorations.dart';
77
import 'package:bank_cards/src/ui/screens/base/base_widget.dart';
8-
import 'package:bank_cards/src/ui/widgets/common/common_widgets.dart';
98
import 'package:bank_cards/src/ui/widgets/common/custom_appbar.dart';
109
import 'package:bank_cards/src/ui/widgets/credit_card/credit_card_front.dart';
1110
import 'package:bank_cards/src/ui/widgets/custom_circular_progress_indicator.dart';
11+
import 'package:bank_cards/src/ui/widgets/list_item/statement_item_widget.dart';
1212
import 'package:bank_cards/src/viewmodel/base/base_viewmodel.dart';
1313
import 'package:bank_cards/src/viewmodel/card/statement_card_viewmodel.dart';
1414
import 'package:flutter/cupertino.dart';
@@ -142,8 +142,16 @@ class _StatementCardScreenState extends State<StatementCardScreen> {
142142
child: new ListView.builder(
143143
itemCount: _statementResponse.statement.length,
144144
itemBuilder: (BuildContext ctxt, int index) {
145-
return CommonWidgets.createInvoiceItem(
146-
_statementResponse.statement[index], model);
145+
return StatementItemWidget(
146+
icon: _statementResponse.statement[index].icon,
147+
title: _statementResponse.statement[index].description,
148+
description:
149+
_statementResponse.statement[index].additionalInfo,
150+
amount: model.toCurrency(
151+
_statementResponse.statement[index].amount,
152+
_statementResponse.statement[index].type),
153+
statementType: _statementResponse.statement[index].type,
154+
);
147155
},
148156
),
149157
),

lib/src/ui/screens/home/bank_screen.dart

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import 'package:bank_cards/src/ui/resources/decorations.dart';
2-
import 'package:bank_cards/src/ui/widgets/common/common_widgets.dart';
3-
import 'package:bank_cards/src/ui/widgets/menu/horizontal_menu_widget.dart';
4-
import 'package:flutter/material.dart';
5-
import 'package:bank_cards/src/ui/widgets/common/account_header.dart';
61
import 'package:bank_cards/generated/i18n.dart';
2+
import 'package:bank_cards/src/ui/resources/app_color.dart';
73
import 'package:bank_cards/src/ui/resources/app_dimen.dart';
84
import 'package:bank_cards/src/ui/resources/app_styles.dart';
5+
import 'package:bank_cards/src/ui/resources/decorations.dart';
6+
import 'package:bank_cards/src/ui/widgets/common/account_header.dart';
7+
import 'package:bank_cards/src/ui/widgets/menu/horizontal_menu_widget.dart';
8+
import 'package:bank_cards/src/ui/widgets/menu/menu_item_widget.dart';
99
import 'package:bank_cards/src/utils/formatter.dart';
10-
import 'package:bank_cards/src/ui/resources/app_color.dart';
10+
import 'package:flutter/material.dart';
1111

1212
class BankPage extends StatefulWidget {
1313
@override
@@ -33,7 +33,6 @@ class _BankPageState extends State<BankPage> with TickerProviderStateMixin {
3333

3434
@override
3535
Widget build(BuildContext context) {
36-
3736
return new Container(
3837
decoration: BoxDecoration(
3938
gradient: Decorations.gradientDecoration(),
@@ -134,7 +133,10 @@ class _BankPageState extends State<BankPage> with TickerProviderStateMixin {
134133
Widget createNewItem(img, text, position) {
135134
return new GestureDetector(
136135
onTap: () {},
137-
child: CommonWidgets.menuItem(img, text),
136+
child: MenuItemWidget(
137+
image: img,
138+
text: text,
139+
),
138140
);
139141
}
140142
}

lib/src/ui/widgets/common/common_widgets.dart

Lines changed: 0 additions & 119 deletions
This file was deleted.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import 'package:bank_cards/src/ui/resources/app_color.dart';
2+
import 'package:bank_cards/src/ui/resources/app_dimen.dart';
3+
import 'package:bank_cards/src/ui/resources/app_styles.dart';
4+
import 'package:bank_cards/src/ui/resources/decorations.dart';
5+
import 'package:bank_cards/src/utils/constants.dart';
6+
import 'package:flutter/material.dart';
7+
import 'package:flutter_screenutil/flutter_screenutil.dart';
8+
9+
class StatementItemWidget extends StatelessWidget {
10+
final String icon;
11+
final String title;
12+
final String description;
13+
final String amount;
14+
final String statementType;
15+
16+
const StatementItemWidget(
17+
{Key key,
18+
this.icon,
19+
this.title,
20+
this.description,
21+
this.amount,
22+
this.statementType})
23+
: super(key: key);
24+
25+
@override
26+
Widget build(BuildContext context) {
27+
return Card(
28+
margin: EdgeInsets.only(
29+
top: ScreenUtil.instance.setWidth(AppDimen.defaultDividerHeight),
30+
),
31+
child: Container(
32+
decoration: Decorations.listItemDecoration(),
33+
child: Column(
34+
mainAxisSize: MainAxisSize.min,
35+
children: <Widget>[
36+
new ListTile(
37+
leading: new Image(
38+
image: AssetImage(this.icon),
39+
width: ScreenUtil.instance.setWidth(AppDimen.listItemIconSize),
40+
),
41+
title: Text(
42+
this.title,
43+
style: AppStyles.defaultTextStyle(),
44+
),
45+
subtitle: Padding(
46+
padding: EdgeInsets.only(
47+
top: ScreenUtil.instance.setWidth(AppDimen.simpleMargin),
48+
),
49+
child: Text(
50+
this.description,
51+
style: AppStyles.formTextStyle(
52+
Colors.white, AppDimen.defaultLabelSubTitleSize),
53+
),
54+
),
55+
trailing: Container(
56+
alignment: Alignment.center,
57+
width:
58+
ScreenUtil.instance.setWidth(AppDimen.listItemContentWidth),
59+
height: ScreenUtil.instance
60+
.setHeight(AppDimen.listItemContentHeight),
61+
child: Text(
62+
this.amount,
63+
style: TextStyle(
64+
color: this.statementType == Constants.statementTypeDebit
65+
? AppColor.debitColor
66+
: AppColor.green,
67+
fontSize:
68+
ScreenUtil.instance.setSp(AppDimen.formTextSize),
69+
fontWeight: FontWeight.bold),
70+
),
71+
),
72+
),
73+
],
74+
),
75+
),
76+
);
77+
}
78+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
import 'package:bank_cards/src/ui/resources/app_color.dart';
2+
import 'package:bank_cards/src/ui/resources/app_dimen.dart';
3+
import 'package:flutter/material.dart';
4+
import 'package:flutter_screenutil/flutter_screenutil.dart';
5+
6+
class MenuItemWidget extends StatelessWidget {
7+
final String image;
8+
final String text;
9+
10+
const MenuItemWidget({Key key, @required this.image, @required this.text})
11+
: super(key: key);
12+
13+
@override
14+
Widget build(BuildContext context) {
15+
return Container(
16+
margin: EdgeInsets.all(
17+
ScreenUtil.instance.setWidth(AppDimen.simpleMargin),
18+
),
19+
height: ScreenUtil.instance.setHeight(AppDimen.menuItemHeight),
20+
width: ScreenUtil.instance.setWidth(AppDimen.menuItemWidth),
21+
decoration: new BoxDecoration(
22+
border: new Border.all(color: AppColor.green),
23+
borderRadius: new BorderRadius.only(
24+
bottomLeft: Radius.circular(
25+
ScreenUtil.instance.setWidth(AppDimen.menuItemBorderRadius),
26+
),
27+
bottomRight: Radius.circular(
28+
ScreenUtil.instance.setWidth(AppDimen.menuItemBorderRadius),
29+
),
30+
topRight: Radius.circular(
31+
ScreenUtil.instance.setWidth(AppDimen.menuItemBorderRadius),
32+
),
33+
topLeft: Radius.circular(
34+
ScreenUtil.instance.setWidth(AppDimen.menuItemBorderRadius),
35+
),
36+
),
37+
),
38+
child: Column(
39+
mainAxisAlignment: MainAxisAlignment.center,
40+
children: <Widget>[
41+
Image.asset(
42+
image,
43+
width: ScreenUtil.instance.setWidth(AppDimen.menuItemImageWidth),
44+
),
45+
Padding(
46+
padding: EdgeInsets.all(
47+
ScreenUtil.instance.setWidth(AppDimen.simpleMargin),
48+
),
49+
child: Text(
50+
text,
51+
style: TextStyle(
52+
fontSize: ScreenUtil.instance.setSp(AppDimen.menuItemTextSize),
53+
color: Colors.white,
54+
),
55+
),
56+
),
57+
],
58+
),
59+
);
60+
}
61+
}

0 commit comments

Comments
 (0)