Skip to content

Commit 3b77956

Browse files
authored
Merge pull request #6 from nathansdev/kit/shopping
fix: shopping screens
2 parents 634af51 + d706417 commit 3b77956

21 files changed

+450
-269
lines changed

lib/custom_widgets/button_plain.dart

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,35 @@ class ButtonPlain extends StatelessWidget {
77
final Color textColor;
88
final double size;
99
final String text;
10+
final VoidCallback onTap;
11+
final double height;
12+
final double textSize;
1013

1114
const ButtonPlain(
12-
{this.color, this.textColor, this.borderColor, this.size, this.text});
15+
{this.color,
16+
this.textColor,
17+
this.borderColor,
18+
this.size,
19+
this.text,
20+
this.height,
21+
this.textSize,
22+
this.onTap});
1323

1424
@override
1525
Widget build(BuildContext context) {
1626
return ButtonTheme(
17-
height: 48,
27+
height: height != null ? height : 48,
1828
minWidth: size != null ? size : MediaQuery.of(context).size.width,
1929
child: RaisedButton(
2030
padding: EdgeInsets.all(16),
2131
color: color,
22-
onPressed: () {
23-
Navigator.pushNamed(context, "/welcome_screen");
24-
},
32+
onPressed: onTap,
2533
textColor: textColor,
2634
child: Text(
2735
text,
28-
style: TextStyle(fontSize: 12.0, fontWeight: FontWeight.w800),
36+
style: TextStyle(
37+
fontSize: textSize != null ? textSize : 12,
38+
fontWeight: FontWeight.w800),
2939
),
3040
shape: RoundedRectangleBorder(
3141
borderRadius: new BorderRadius.circular(16.0)),

lib/custom_widgets/cart_add_remove_button.dart

Lines changed: 35 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,33 @@ class _CartAddRemoveButtonState extends State<CartAddRemoveButton> {
1717
}
1818

1919
void onAddClicked() {
20-
setState(() {
21-
count = count + 1;
22-
print("add clicked " + count.toString());
23-
});
20+
if (count < 4)
21+
setState(() {
22+
count = count + 1;
23+
print("add clicked " + count.toString());
24+
});
2425
}
2526

2627
void onRemoveClicked() {
27-
setState(() {
28-
count = count - 1;
29-
print("remove clicked " + count.toString());
30-
});
28+
if (count > 0)
29+
setState(() {
30+
count = count - 1;
31+
print("remove clicked " + count.toString());
32+
});
3133
}
3234

3335
@override
3436
Widget build(BuildContext context) {
3537
return Container(
3638
width: 96,
37-
height: 36,
39+
height: 40,
3840
decoration: ShapeDecoration(
3941
shape: RoundedRectangleBorder(
4042
borderRadius: BorderRadius.all(Radius.circular(10)),
4143
side: BorderSide(color: wood_smoke, width: 2))),
4244
child: Row(
4345
mainAxisSize: MainAxisSize.max,
46+
crossAxisAlignment: CrossAxisAlignment.center,
4447
children: <Widget>[
4548
count == 0
4649
? SizedBox()
@@ -50,24 +53,31 @@ class _CartAddRemoveButtonState extends State<CartAddRemoveButton> {
5053
onTap: () {
5154
onRemoveClicked();
5255
},
53-
child: Center(
54-
child: IconButton(
55-
alignment: Alignment.topCenter,
56-
icon: Icon(Icons.remove),
57-
onPressed: () {
58-
onRemoveClicked();
59-
},
56+
child: IconButton(
57+
icon: Icon(
58+
Icons.remove,
59+
size: 24,
6060
),
61+
onPressed: () {
62+
onRemoveClicked();
63+
},
6164
),
6265
),
6366
),
6467
count == 0
6568
? Expanded(
6669
flex: 2,
6770
child: Container(
71+
padding: EdgeInsets.symmetric(horizontal: 8),
6872
alignment: Alignment.center,
6973
height: MediaQuery.of(context).size.height,
70-
color: lightening_yellow,
74+
decoration: ShapeDecoration(
75+
color: lightening_yellow,
76+
shape: RoundedRectangleBorder(
77+
borderRadius: BorderRadius.only(
78+
topLeft: Radius.circular(10),
79+
bottomLeft: Radius.circular(10))),
80+
),
7181
child: Text(
7282
"Add",
7383
textAlign: TextAlign.center,
@@ -79,6 +89,7 @@ class _CartAddRemoveButtonState extends State<CartAddRemoveButton> {
7989
: Expanded(
8090
flex: 1,
8191
child: Container(
92+
padding: EdgeInsets.symmetric(horizontal: 8),
8293
alignment: Alignment.center,
8394
height: MediaQuery.of(context).size.height,
8495
color: lightening_yellow,
@@ -95,19 +106,14 @@ class _CartAddRemoveButtonState extends State<CartAddRemoveButton> {
95106
onTap: () {
96107
onAddClicked();
97108
},
98-
child: Container(
99-
alignment: Alignment.topCenter,
100-
color: white,
101-
height: MediaQuery.of(context).size.height,
102-
child: Center(
103-
child: IconButton(
104-
alignment: Alignment.topCenter,
105-
icon: Icon(Icons.add),
106-
onPressed: () {
107-
onAddClicked();
108-
},
109-
),
109+
child: IconButton(
110+
icon: Icon(
111+
Icons.add,
112+
size: 24,
110113
),
114+
onPressed: () {
115+
onAddClicked();
116+
},
111117
),
112118
),
113119
)

lib/custom_widgets/chip_widget.dart

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import 'package:contraflutterkit/utils/colors.dart';
2+
import 'package:flutter/cupertino.dart';
3+
import 'package:flutter/material.dart';
4+
import 'package:flutter_svg/flutter_svg.dart';
5+
6+
class ChipWidget extends StatelessWidget {
7+
final String text;
8+
final bool selected;
9+
final VoidCallback onTap;
10+
11+
const ChipWidget({this.text, this.selected, this.onTap});
12+
13+
@override
14+
Widget build(BuildContext context) {
15+
return GestureDetector(
16+
onTap: onTap,
17+
child: Container(
18+
height: 48,
19+
padding: EdgeInsets.all(12),
20+
child: Row(
21+
mainAxisSize: MainAxisSize.min,
22+
children: <Widget>[
23+
Text(
24+
text,
25+
style:
26+
TextStyle(color: wood_smoke, fontWeight: FontWeight.bold),
27+
),
28+
selected ? SvgPicture.asset("assets/icons/close.svg") : SizedBox()
29+
],
30+
),
31+
decoration: ShapeDecoration(
32+
color: selected ? pastel_pink : white,
33+
shape: RoundedRectangleBorder(
34+
borderRadius: BorderRadius.all(Radius.circular(44)),
35+
side: BorderSide(color: wood_smoke, width: 2)))),
36+
);
37+
}
38+
}

lib/custom_widgets/chips_filter_widget.dart

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'package:contraflutterkit/custom_widgets/chip_widget.dart';
12
import 'package:contraflutterkit/utils/colors.dart';
23
import 'package:flutter/cupertino.dart';
34
import 'package:flutter/material.dart';
@@ -28,10 +29,22 @@ class _ChipsFilterWidgetState extends State<ChipsFilterWidget> {
2829
padding: const EdgeInsets.only(right: 16.0, top: 16.0),
2930
child: Wrap(
3031
spacing: 12,
32+
runSpacing: 12,
3133
children: List<Widget>.generate(
3234
options.length,
3335
(int index) {
34-
return ChoiceChip(
36+
return ChipWidget(
37+
selected: selectedChoices.contains(index),
38+
text: options[index],
39+
onTap: () {
40+
setState(() {
41+
selectedChoices.contains(index)
42+
? selectedChoices.remove(index)
43+
: selectedChoices.add(index);
44+
});
45+
},
46+
);
47+
ChoiceChip(
3548
disabledColor: white,
3649
selectedColor: pastel_pink,
3750
padding: EdgeInsets.all(12),

lib/custom_widgets/color_widget.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import 'package:contraflutterkit/utils/colors.dart';
21
import 'package:flutter/cupertino.dart';
32

43
class ColorWidget extends StatelessWidget {
54
final Color borderColor;
65
final Color shadowColor;
6+
final Color bgColor;
77
final bool selected;
88
final VoidCallback onTap;
99

1010
const ColorWidget(
11-
{this.borderColor, this.shadowColor, this.selected, this.onTap});
11+
{this.borderColor,this.bgColor, this.shadowColor, this.selected, this.onTap});
1212

1313
@override
1414
Widget build(BuildContext context) {
@@ -27,7 +27,7 @@ class ColorWidget extends StatelessWidget {
2727
),
2828
)
2929
],
30-
color: selected ? lightening_yellow : white,
30+
color: bgColor,
3131
shape:
3232
CircleBorder(side: BorderSide(color: borderColor, width: 2))),
3333
),

lib/custom_widgets/colors_select_widget.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,14 @@ class _ColorsSelectWidgetState extends State<ColorsSelectWidget> {
2727
@override
2828
Widget build(BuildContext context) {
2929
return Padding(
30-
padding: const EdgeInsets.only( right: 16.0, top: 16.0),
30+
padding: const EdgeInsets.only(right: 16.0, top: 16.0),
3131
child: Wrap(
3232
spacing: 12,
3333
children: List<Widget>.generate(
3434
options.length,
3535
(int index) {
3636
return ColorWidget(
37+
bgColor: options[index],
3738
borderColor: wood_smoke,
3839
shadowColor: wood_smoke,
3940
selected: selectedChoices.contains(index),

lib/main.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:contraflutterkit/onboarding/type3/pager.dart';
1010
import 'package:contraflutterkit/onboarding/welcome_screen.dart';
1111
import 'package:contraflutterkit/shopping/shopping_detail_page_one.dart';
1212
import 'package:contraflutterkit/shopping/shopping_detail_page_two.dart';
13+
import 'package:contraflutterkit/shopping/shopping_home_page.dart';
1314
import 'package:contraflutterkit/shopping/shopping_home_page_one.dart';
1415
import 'package:contraflutterkit/shopping/shopping_home_page_two.dart';
1516
import 'package:contraflutterkit/shopping/shopping_list_page_type_one.dart';
@@ -63,10 +64,11 @@ class MyApp extends StatelessWidget {
6364
'/shopping_main_page': (context) => ShoppingMainPage(),
6465
'/shopping_list_page_one': (context) => ShoppingListPageOne(),
6566
'/shopping_list_page_two': (context) => ShoppingListPageTwo(),
67+
'/shopping_home_page': (context) => ShoppingHomePage(),
6668
'/shopping_home_page_one': (context) => ShoppingHomePageOne(),
6769
'/shopping_home_page_two': (context) => ShoppingHomePageTwo(),
68-
'/shopping_home_main_one': (context) => ShoppingDetailPageOne(),
69-
'/shopping_home_main_two': (context) => ShoppingDetailPageTwo(),
70+
'/shopping_detail_page_one': (context) => ShoppingDetailPageOne(),
71+
'/shopping_detail_page_two': (context) => ShoppingDetailPageTwo(),
7072
},
7173
);
7274
}

0 commit comments

Comments
 (0)