@@ -8,6 +8,7 @@ class GameSettingsMobile extends StatelessWidget {
88 @override
99 Widget build (BuildContext context) {
1010 final scheme = Theme .of (context).colorScheme;
11+ final gameSettingsProvider = context.read <GameSettingsProvider >();
1112 return DefaultTabController (
1213 length: 2 ,
1314 child: Scaffold (
@@ -25,43 +26,52 @@ class GameSettingsMobile extends StatelessWidget {
2526 child: Padding (
2627 padding:
2728 const EdgeInsets .only (left: 24 , right: 24 , top: 24 ),
28- child: Consumer <GameSettingsProvider >(
29- builder: (_, settingsProvider, __) => Column (
30- crossAxisAlignment: CrossAxisAlignment .center,
31- children: [
32- AppBarSettings (
33- label: GameSettingConsts .appBarLabel),
34- CustomTabBar (
35- initialIndex:
36- settingsProvider.withoutTime ? 0 : 1 ,
37- header: GameSettingConsts .timeText,
38- subTitles: [
39- GameSettingConsts .gameWithoutTimeText,
40- GameSettingConsts .gameWithTimeText,
41- ],
42- isSettingsPage: true ,
43- onTap: (dynamic index) => settingsProvider
44- .setIsTime (index as int ),
45- ),
46- if (! settingsProvider.withoutTime) ...[
47- SetTimeSection (
48- minutesStartValue:
49- settingsProvider.durationOfGame,
50- minutesOnChanged: (dynamic value) =>
51- settingsProvider
52- .setMinutes (value as int ),
53- secondsStartValue:
54- settingsProvider.addingOfMove == 0
55- ? GameSettingConsts .longDashSymbol
56- : settingsProvider.addingOfMove,
57- secondsOnChanged: (dynamic value) =>
58- settingsProvider.setSeconds (value),
59- )
60- ],
61- const SettingsRowsSection (),
62- const SizedBox (height: 100 ),
63- ],
64- )),
29+ child: Selector <
30+ GameSettingsProvider ,
31+ ({
32+ bool withoutTime,
33+ int durationOfGame,
34+ int addingOfMove
35+ })>(
36+ selector: (_, provider) => (
37+ withoutTime: provider.withoutTime,
38+ durationOfGame: provider.durationOfGame,
39+ addingOfMove: provider.addingOfMove
40+ ),
41+ builder: (_, values, __) => Column (
42+ crossAxisAlignment: CrossAxisAlignment .center,
43+ children: [
44+ AppBarSettings (
45+ label: GameSettingConsts .appBarLabel),
46+ CustomTabBar (
47+ initialIndex: values.withoutTime ? 0 : 1 ,
48+ header: GameSettingConsts .timeText,
49+ subTitles: [
50+ GameSettingConsts .gameWithoutTimeText,
51+ GameSettingConsts .gameWithTimeText,
52+ ],
53+ isSettingsPage: true ,
54+ onTap: (dynamic index) =>
55+ gameSettingsProvider.setIsTime (index as int ),
56+ ),
57+ if (! values.withoutTime) ...[
58+ SetTimeSection (
59+ minutesStartValue: values.durationOfGame,
60+ minutesOnChanged: (dynamic value) =>
61+ gameSettingsProvider
62+ .setMinutes (value as int ),
63+ secondsStartValue: values.addingOfMove == 0
64+ ? GameSettingConsts .longDashSymbol
65+ : values.addingOfMove,
66+ secondsOnChanged: (dynamic value) =>
67+ gameSettingsProvider.setSeconds (value),
68+ )
69+ ],
70+ const SettingsRowsSection (),
71+ const SizedBox (height: 100 ),
72+ ],
73+ ),
74+ ),
6575 ),
6676 ),
6777 ),
@@ -82,9 +92,8 @@ class GameSettingsMobile extends StatelessWidget {
8292 textColor: ColorsConst .primaryColor0,
8393 buttonColor: scheme.secondaryContainer,
8494 isClickable: true ,
85- onTap: () => context
86- .read <GameSettingsProvider >()
87- .handleStartGame (context),
95+ onTap: () =>
96+ gameSettingsProvider.handleStartGame (context),
8897 ),
8998 ),
9099 ),
0 commit comments