Skip to content

Commit 23901f2

Browse files
add generateMaze text
1 parent 5d5bf67 commit 23901f2

File tree

1 file changed

+29
-33
lines changed

1 file changed

+29
-33
lines changed

lib/features/grid/view/grid_page.dart

Lines changed: 29 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,14 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
88
import 'package:flutter_screenutil/flutter_screenutil.dart';
99
part '../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

1917
Border _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

2421
class 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

5662
class _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 {
135136
class _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

Comments
 (0)