Skip to content

Commit e176f68

Browse files
authored
Merge pull request #457 from Nanow/fix/example-datail-page
Fix/example datail page
2 parents 2d6184e + 771c184 commit e176f68

File tree

4 files changed

+42
-46
lines changed

4 files changed

+42
-46
lines changed
Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
import 'package:flutter/material.dart';
2-
31
import 'package:example/app/search/domain/entities/result.dart';
2+
import 'package:flutter/material.dart';
43
import 'package:flutter_modular/flutter_modular.dart';
54

65
class DetailsPage extends StatefulWidget {
7-
final Result result;
6+
final Result? result;
87
const DetailsPage({
98
Key? key,
10-
required this.result,
9+
this.result,
1110
}) : super(key: key);
1211
@override
1312
_DetailsPageState createState() => _DetailsPageState();
@@ -19,22 +18,30 @@ class _DetailsPageState extends State<DetailsPage> {
1918
print(Modular.args?.queryParams['id']);
2019
return Scaffold(
2120
appBar: AppBar(
22-
title: Text(widget.result.nickname),
21+
title: Text(
22+
widget.result != null ? widget.result!.nickname : 'Make a search'),
2323
),
24-
body: Center(
25-
child: Column(
26-
mainAxisAlignment: MainAxisAlignment.center,
27-
children: [
28-
Hero(
29-
tag: widget.result.image,
30-
child: CircleAvatar(
31-
backgroundImage: NetworkImage(widget.result.image),
24+
body: widget.result != null
25+
? Center(
26+
child: Column(
27+
mainAxisAlignment: MainAxisAlignment.center,
28+
children: [
29+
Hero(
30+
tag: widget.result!.image,
31+
child: CircleAvatar(
32+
backgroundImage: NetworkImage(widget.result!.image),
33+
),
34+
),
35+
Text(widget.result!.nickname),
36+
],
37+
),
38+
)
39+
: Center(
40+
child: ElevatedButton(
41+
onPressed: () => Modular.to.pushReplacementNamed('/'),
42+
child: Text('Make a search'),
3243
),
3344
),
34-
Text(widget.result.nickname),
35-
],
36-
),
37-
),
3845
);
3946
}
4047
}

flutter_modular/example/lib/app/search/presenter/pages/guardt.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import 'package:flutter_modular/flutter_modular.dart';
22

33
class GuardT extends RouteGuard {
4+
45
String? guardedRoute;
56
GuardT({this.guardedRoute}) : super(guardedRoute);
6-
7+
78
@override
89
Future<bool> canActivate(String path, ModularRoute router) async {
910
print(Modular.args);

flutter_modular/example/pubspec.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ vars:
6060
scripts:
6161
mobx_build: $clean & $get & $runner build --delete-conflicting-outputs
6262
mobx_watch: $clean & $get & $runner watch --delete-conflicting-outputs
63+
64+
# dependency_overrides:
65+
# flutter_modular:
66+
# path: ../../../modular/flutter_modular
6367
# To add assets to your application, add an assets section, like this:
6468
# assets:
6569
# - images/a_dot_burr.jpeg

flutter_modular/lib/src/presenters/navigation/modular_router_delegate.dart

Lines changed: 12 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -103,36 +103,20 @@ class ModularRouterDelegate extends RouterDelegate<ModularRoute>
103103
if (fromModular && (routeIsInModule && !isDuplicatedPage)) {
104104
_pages.add(page);
105105
} else {
106-
if (fromModular) {
107-
for (var p in _pages) {
108-
p.completePop(null);
109-
removeInject(p.router.path!);
110-
for (var r in p.router.routerOutlet) {
111-
removeInject(r.path!);
112-
}
113-
}
114-
if (replaceAll) {
115-
_pages = [page];
116-
} else if (_pages.last.router.path != router.path) {
117-
_pages.last = page;
118-
} else {
119-
_pages.last.router.routerOutlet.clear();
120-
_pages.last.router.routerOutlet.add(router.routerOutlet.last);
121-
}
122-
} else {
123-
///
124-
/// The `fromModular` flag prevents all pages in `_pages` from being replaced
125-
/// when navigating with the browser's back button
126-
///
127-
128-
_lastPageModule.completePop(null);
129-
removeInject(_lastPageModule.router.path!);
130-
for (var r in _lastPageModule.router.routerOutlet) {
106+
for (var p in _pages) {
107+
p.completePop(null);
108+
removeInject(p.router.path!);
109+
for (var r in p.router.routerOutlet) {
131110
removeInject(r.path!);
132111
}
133-
134-
_pages.remove(_lastPageModule);
135-
_pages.add(page);
112+
}
113+
if (replaceAll) {
114+
_pages = [page];
115+
} else if (_pages.last.router.path != router.path) {
116+
_pages.last = page;
117+
} else {
118+
_pages.last.router.routerOutlet.clear();
119+
_pages.last.router.routerOutlet.add(router.routerOutlet.last);
136120
}
137121
}
138122
}

0 commit comments

Comments
 (0)