@@ -8,17 +8,14 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
88import 'package:flutter_screenutil/flutter_screenutil.dart' ;
99part '../widgets/searcher_grid.dart' ;
1010
11- final gridNotifierProvider =
12- StateNotifierProvider <GridNotifierCubit , GridNotifierState >(
11+ final gridNotifierProvider = StateNotifierProvider <GridNotifierCubit , GridNotifierState >(
1312 (ref) => GridNotifierCubit (),
1413);
1514
16- Border _allBorder () =>
17- Border .all (color: ColorManager .dividerBlue, width: 0.5 .r);
15+ Border _allBorder () => Border .all (color: ColorManager .dividerBlue, width: 0.5 .r);
1816
1917Border _thineVerticalBorder () {
20- return Border .symmetric (
21- vertical: BorderSide (color: ColorManager .white, width: 0.5 .r));
18+ return Border .symmetric (vertical: BorderSide (color: ColorManager .white, width: 0.5 .r));
2219}
2320
2421class GridPage extends StatelessWidget {
@@ -28,8 +25,17 @@ class GridPage extends StatelessWidget {
2825 Widget build (BuildContext context) {
2926 return Scaffold (
3027 appBar: AppBar (
31- title: const Text ('Grid Page' ),
3228 actions: [
29+ Consumer (
30+ builder: (context, ref, _) {
31+ return TextButton (
32+ onPressed: () {
33+ ref.read (gridNotifierProvider.notifier).generateMaze ();
34+ },
35+ child: const RegularText (StringsManager .generateMaze),
36+ );
37+ },
38+ ),
3339 Consumer (
3440 builder: (context, ref, _) {
3541 return TextButton (
@@ -39,13 +45,13 @@ class GridPage extends StatelessWidget {
3945 child: const RegularText (StringsManager .clear),
4046 );
4147 },
42- )
48+ ),
4349 ],
4450 ),
4551 body: SafeArea (
4652 child: LayoutBuilder (
4753 builder: (BuildContext context, BoxConstraints constraints) {
48- return _BuildLayout (constraints);
54+ return _BuildLayout (constraints.biggest );
4955 },
5056 ),
5157 ),
@@ -54,8 +60,8 @@ class GridPage extends StatelessWidget {
5460}
5561
5662class _BuildLayout extends ConsumerStatefulWidget {
57- const _BuildLayout (this .constraints );
58- final BoxConstraints constraints ;
63+ const _BuildLayout (this .size );
64+ final Size size ;
5965
6066 @override
6167 ConsumerState <_BuildLayout > createState () => _BuildLayoutState ();
@@ -70,16 +76,14 @@ class _BuildLayoutState extends ConsumerState<_BuildLayout> {
7076
7177 @override
7278 void didUpdateWidget (covariant _BuildLayout oldWidget) {
73- if (oldWidget.constraints != widget.constraints ) {
79+ if (oldWidget.size != widget.size ) {
7480 Future .microtask (() => _updateLayout ());
7581 }
7682 super .didUpdateWidget (oldWidget);
7783 }
7884
7985 void _updateLayout () {
80- ref
81- .read (gridNotifierProvider.notifier)
82- .updateGridLayout (widget.constraints);
86+ ref.read (gridNotifierProvider.notifier).updateGridLayout (widget.size);
8387 }
8488
8589 @override
@@ -93,14 +97,11 @@ class _BuildGridItems extends ConsumerWidget {
9397
9498 @override
9599 Widget build (BuildContext context, ref) {
96- final gridCount =
97- ref.watch (gridNotifierProvider.select ((it) => it.gridCount));
98- final watchColumnCrossAxisCount =
99- ref.watch (gridNotifierProvider.select ((it) => it.columnCrossAxisCount));
100+ final gridCount = ref.watch (gridNotifierProvider.select ((it) => it.gridCount));
101+ final watchColumnCrossAxisCount = ref.watch (gridNotifierProvider.select ((it) => it.columnCrossAxisCount));
100102
101103 if (gridCount == 0 ) {
102- return const Center (
103- child: MediumText (StringsManager .notInitializeGridYet));
104+ return const Center (child: MediumText (StringsManager .notInitializeGridYet));
104105 }
105106
106107 final read = ref.read (gridNotifierProvider.notifier);
@@ -135,8 +136,7 @@ class _Square extends ConsumerStatefulWidget {
135136class _SquareState extends ConsumerState <_Square > {
136137 @override
137138 Widget build (BuildContext context) {
138- final isSelected = ref
139- .watch (gridNotifierProvider.select ((it) => it.gridData[widget.index]));
139+ final isSelected = ref.watch (gridNotifierProvider.select ((it) => it.gridData[widget.index]));
140140
141141 final isColored = isSelected != GridStatus .empty;
142142
@@ -146,7 +146,7 @@ class _SquareState extends ConsumerState<_Square> {
146146 ),
147147 child: AnimatedScale (
148148 scale: isColored ? 1.0 : 0.1 ,
149- duration: const Duration (milliseconds : 700 ) ,
149+ duration: GridNotifierCubit .scaleAppearDurationForWall ,
150150 curve: Curves .elasticOut,
151151 child: Builder (
152152 builder: (context) {
@@ -176,8 +176,7 @@ class _WallGrid extends StatelessWidget {
176176 Widget build (BuildContext context) {
177177 return Consumer (
178178 builder: (context, ref, _) {
179- final size =
180- ref.watch (gridNotifierProvider.select ((it) => it.gridSize));
179+ final size = ref.watch (gridNotifierProvider.select ((it) => it.gridSize));
181180
182181 return Container (
183182 width: size,
@@ -196,14 +195,13 @@ class _StartPointGrid extends StatelessWidget {
196195 Widget build (BuildContext context) {
197196 return Consumer (
198197 builder: (context, ref, _) {
199- final size =
200- ref.watch (gridNotifierProvider.select ((it) => it.gridSize));
198+ final size = ref.watch (gridNotifierProvider.select ((it) => it.gridSize));
201199
202200 return Container (
203201 width: size,
204202 height: size,
205203 decoration: const BoxDecoration (shape: BoxShape .circle),
206- child: const FittedBox (
204+ child: const FittedBox (
207205 child: CustomIcon (
208206 Icons .arrow_forward_ios_rounded,
209207 size: 50 ,
@@ -223,8 +221,7 @@ class _TargetPointGrid extends StatelessWidget {
223221 Widget build (BuildContext context) {
224222 return Consumer (
225223 builder: (context, ref, _) {
226- final size =
227- ref.watch (gridNotifierProvider.select ((it) => it.gridSize));
224+ final size = ref.watch (gridNotifierProvider.select ((it) => it.gridSize));
228225
229226 return Container (
230227 width: size,
@@ -273,8 +270,7 @@ class _DefaultGrid extends StatelessWidget {
273270 Widget build (BuildContext context) {
274271 return Consumer (
275272 builder: (context, ref, _) {
276- final size =
277- ref.watch (gridNotifierProvider.select ((it) => it.gridSize));
273+ final size = ref.watch (gridNotifierProvider.select ((it) => it.gridSize));
278274
279275 return Container (
280276 width: size,
0 commit comments