Committed by
GitHub
Merge pull request #2697 from jonataslaw/inherit-bindings
Inherit bindings
Showing
9 changed files
with
47 additions
and
78 deletions
1 | // This is a generated file; do not edit or check into version control. | 1 | // This is a generated file; do not edit or check into version control. |
2 | FLUTTER_ROOT=/Users/jonatasborges/flutter | 2 | FLUTTER_ROOT=/Users/jonatasborges/flutter |
3 | -FLUTTER_APPLICATION_PATH=/Users/jonatasborges/consertar/getx/example_nav2 | 3 | +FLUTTER_APPLICATION_PATH=/Users/jonatasborges/getx-parse/getx/example_nav2 |
4 | COCOAPODS_PARALLEL_CODE_SIGN=true | 4 | COCOAPODS_PARALLEL_CODE_SIGN=true |
5 | -FLUTTER_TARGET=/Users/jonatasborges/consertar/getx/example_nav2/lib/main.dart | 5 | +FLUTTER_TARGET=lib/main.dart |
6 | FLUTTER_BUILD_DIR=build | 6 | FLUTTER_BUILD_DIR=build |
7 | FLUTTER_BUILD_NAME=1.0.0 | 7 | FLUTTER_BUILD_NAME=1.0.0 |
8 | FLUTTER_BUILD_NUMBER=1 | 8 | FLUTTER_BUILD_NUMBER=1 |
9 | EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386 | 9 | EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386 |
10 | EXCLUDED_ARCHS[sdk=iphoneos*]=armv7 | 10 | EXCLUDED_ARCHS[sdk=iphoneos*]=armv7 |
11 | -DART_DEFINES=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ== | ||
12 | DART_OBFUSCATION=false | 11 | DART_OBFUSCATION=false |
13 | TRACK_WIDGET_CREATION=true | 12 | TRACK_WIDGET_CREATION=true |
14 | TREE_SHAKE_ICONS=false | 13 | TREE_SHAKE_ICONS=false |
15 | -PACKAGE_CONFIG=/Users/jonatasborges/consertar/getx/example_nav2/.dart_tool/package_config.json | 14 | +PACKAGE_CONFIG=.dart_tool/package_config.json |
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | # This is a generated file; do not edit or check into version control. | 2 | # This is a generated file; do not edit or check into version control. |
3 | export "FLUTTER_ROOT=/Users/jonatasborges/flutter" | 3 | export "FLUTTER_ROOT=/Users/jonatasborges/flutter" |
4 | -export "FLUTTER_APPLICATION_PATH=/Users/jonatasborges/consertar/getx/example_nav2" | 4 | +export "FLUTTER_APPLICATION_PATH=/Users/jonatasborges/getx-parse/getx/example_nav2" |
5 | export "COCOAPODS_PARALLEL_CODE_SIGN=true" | 5 | export "COCOAPODS_PARALLEL_CODE_SIGN=true" |
6 | -export "FLUTTER_TARGET=/Users/jonatasborges/consertar/getx/example_nav2/lib/main.dart" | 6 | +export "FLUTTER_TARGET=lib/main.dart" |
7 | export "FLUTTER_BUILD_DIR=build" | 7 | export "FLUTTER_BUILD_DIR=build" |
8 | export "FLUTTER_BUILD_NAME=1.0.0" | 8 | export "FLUTTER_BUILD_NAME=1.0.0" |
9 | export "FLUTTER_BUILD_NUMBER=1" | 9 | export "FLUTTER_BUILD_NUMBER=1" |
10 | -export "DART_DEFINES=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==" | ||
11 | export "DART_OBFUSCATION=false" | 10 | export "DART_OBFUSCATION=false" |
12 | export "TRACK_WIDGET_CREATION=true" | 11 | export "TRACK_WIDGET_CREATION=true" |
13 | export "TREE_SHAKE_ICONS=false" | 12 | export "TREE_SHAKE_ICONS=false" |
14 | -export "PACKAGE_CONFIG=/Users/jonatasborges/consertar/getx/example_nav2/.dart_tool/package_config.json" | 13 | +export "PACKAGE_CONFIG=.dart_tool/package_config.json" |
@@ -10,11 +10,6 @@ class RootController extends GetxController { | @@ -10,11 +10,6 @@ class RootController extends GetxController { | ||
10 | } | 10 | } |
11 | 11 | ||
12 | @override | 12 | @override |
13 | - void onReady() { | ||
14 | - super.onReady(); | ||
15 | - } | ||
16 | - | ||
17 | - @override | ||
18 | void onClose() {} | 13 | void onClose() {} |
19 | void increment() => count.value++; | 14 | void increment() => count.value++; |
20 | } | 15 | } |
@@ -10,11 +10,6 @@ class SettingsController extends GetxController { | @@ -10,11 +10,6 @@ class SettingsController extends GetxController { | ||
10 | } | 10 | } |
11 | 11 | ||
12 | @override | 12 | @override |
13 | - void onReady() { | ||
14 | - super.onReady(); | ||
15 | - } | ||
16 | - | ||
17 | - @override | ||
18 | void onClose() {} | 13 | void onClose() {} |
19 | void increment() => count.value++; | 14 | void increment() => count.value++; |
20 | } | 15 | } |
@@ -5,7 +5,6 @@ export 'src/extension_navigation.dart'; | @@ -5,7 +5,6 @@ export 'src/extension_navigation.dart'; | ||
5 | export 'src/root/get_cupertino_app.dart'; | 5 | export 'src/root/get_cupertino_app.dart'; |
6 | export 'src/root/get_material_app.dart'; | 6 | export 'src/root/get_material_app.dart'; |
7 | export 'src/root/internacionalization.dart'; | 7 | export 'src/root/internacionalization.dart'; |
8 | -export 'src/root/root_controller.dart'; | ||
9 | export 'src/routes/custom_transition.dart'; | 8 | export 'src/routes/custom_transition.dart'; |
10 | export 'src/routes/default_route.dart'; | 9 | export 'src/routes/default_route.dart'; |
11 | export 'src/routes/get_route.dart'; | 10 | export 'src/routes/get_route.dart'; |
1 | -import 'package:flutter/foundation.dart'; | ||
2 | -import 'package:flutter/material.dart'; | ||
3 | - | ||
4 | -import '../../../get.dart'; | ||
5 | - | ||
6 | - | ||
7 | - | ||
8 | -// class GetMaterialController extends FullLifeCycleController { | ||
9 | -// GetMaterialController(this.config); | ||
10 | - | ||
11 | -// // late final RouterDelegate<Object> routerDelegate; | ||
12 | -// // late final RouteInformationParser<Object> routeInformationParser; | ||
13 | -// final ConfigData config; | ||
14 | -// // bool testMode = false; | ||
15 | -// // Key? unikey; | ||
16 | -// // ThemeData? theme; | ||
17 | -// // ThemeData? darkTheme; | ||
18 | -// // ThemeMode? themeMode; | ||
19 | - | ||
20 | -// // final scaffoldMessengerKey = GlobalKey<ScaffoldMessengerState>(); | ||
21 | - | ||
22 | -// // bool defaultPopGesture = GetPlatform.isIOS; | ||
23 | -// // bool defaultOpaqueRoute = true; | ||
24 | -// // Transition? defaultTransition; | ||
25 | -// // Duration defaultTransitionDuration = Duration(milliseconds: 300); | ||
26 | -// // Curve defaultTransitionCurve = Curves.easeOutQuad; | ||
27 | -// // Curve defaultDialogTransitionCurve = Curves.easeOutQuad; | ||
28 | -// // Duration defaultDialogTransitionDuration = Duration(milliseconds: 300); | ||
29 | - | ||
30 | -// // final routing = Routing(); | ||
31 | - | ||
32 | -// // Map<String, String?> parameters = {}; | ||
33 | -// // CustomTransition? customTransition; | ||
34 | - | ||
35 | -// // Map<dynamic, GetDelegate> keys = {}; | ||
36 | - | ||
37 | -// // GetDelegate? nestedKey(String? key) { | ||
38 | -// // if (key == null) { | ||
39 | -// // return routerDelegate as GetDelegate; | ||
40 | -// // } | ||
41 | -// // keys.putIfAbsent( | ||
42 | -// // key, | ||
43 | -// // () => GetDelegate( | ||
44 | -// // showHashOnUrl: true, | ||
45 | -// // //debugLabel: 'Getx nested key: ${key.toString()}', | ||
46 | -// // pages: RouteDecoder.fromRoute(key).currentChildrens ?? [], | ||
47 | -// // ), | ||
48 | -// // ); | ||
49 | -// // return keys[key]; | ||
50 | -// // } | ||
51 | -// } |
@@ -133,11 +133,11 @@ class GetDelegate extends RouterDelegate<RouteDecoder> | @@ -133,11 +133,11 @@ class GetDelegate extends RouterDelegate<RouteDecoder> | ||
133 | _activePages.add(res); | 133 | _activePages.add(res); |
134 | } | 134 | } |
135 | 135 | ||
136 | - Future<T?> _unsafeHistoryRemove<T>(RouteDecoder config, T result) async { | ||
137 | - var index = _activePages.indexOf(config); | ||
138 | - if (index >= 0) return _unsafeHistoryRemoveAt(index, result); | ||
139 | - return null; | ||
140 | - } | 136 | + // Future<T?> _unsafeHistoryRemove<T>(RouteDecoder config, T result) async { |
137 | + // var index = _activePages.indexOf(config); | ||
138 | + // if (index >= 0) return _unsafeHistoryRemoveAt(index, result); | ||
139 | + // return null; | ||
140 | + // } | ||
141 | 141 | ||
142 | Future<T?> _unsafeHistoryRemoveAt<T>(int index, T result) async { | 142 | Future<T?> _unsafeHistoryRemoveAt<T>(int index, T result) async { |
143 | if (index == _activePages.length - 1 && _activePages.length > 1) { | 143 | if (index == _activePages.length - 1 && _activePages.length > 1) { |
@@ -185,6 +185,7 @@ class GetObserver extends NavigatorObserver { | @@ -185,6 +185,7 @@ class GetObserver extends NavigatorObserver { | ||
185 | } | 185 | } |
186 | } | 186 | } |
187 | 187 | ||
188 | +//TODO: Use copyWith, and remove mutate variables | ||
188 | class Routing { | 189 | class Routing { |
189 | String current; | 190 | String current; |
190 | String previous; | 191 | String previous; |
1 | import 'package:flutter/foundation.dart'; | 1 | import 'package:flutter/foundation.dart'; |
2 | 2 | ||
3 | -import '../../../route_manager.dart'; | 3 | +import '../../../get.dart'; |
4 | 4 | ||
5 | @immutable | 5 | @immutable |
6 | class RouteDecoder { | 6 | class RouteDecoder { |
@@ -187,11 +187,25 @@ class ParseRouteTree { | @@ -187,11 +187,25 @@ class ParseRouteTree { | ||
187 | if (page.middlewares.isNotEmpty) ...page.middlewares, | 187 | if (page.middlewares.isNotEmpty) ...page.middlewares, |
188 | if (route.middlewares.isNotEmpty) ...route.middlewares | 188 | if (route.middlewares.isNotEmpty) ...route.middlewares |
189 | ]; | 189 | ]; |
190 | + | ||
191 | + final parentBindings = [ | ||
192 | + if (page.binding != null) page.binding!, | ||
193 | + if (page.bindings.isNotEmpty) ...page.bindings, | ||
194 | + if (route.bindings.isNotEmpty) ...route.bindings | ||
195 | + ]; | ||
196 | + | ||
197 | + final parentBinds = [ | ||
198 | + if (page.binds.isNotEmpty) ...page.binds, | ||
199 | + if (route.binds.isNotEmpty) ...route.binds | ||
200 | + ]; | ||
201 | + | ||
190 | result.add( | 202 | result.add( |
191 | _addChild( | 203 | _addChild( |
192 | page, | 204 | page, |
193 | parentPath, | 205 | parentPath, |
194 | parentMiddlewares, | 206 | parentMiddlewares, |
207 | + parentBindings, | ||
208 | + parentBinds, | ||
195 | ), | 209 | ), |
196 | ); | 210 | ); |
197 | 211 | ||
@@ -204,6 +218,15 @@ class ParseRouteTree { | @@ -204,6 +218,15 @@ class ParseRouteTree { | ||
204 | ...parentMiddlewares, | 218 | ...parentMiddlewares, |
205 | if (child.middlewares.isNotEmpty) ...child.middlewares, | 219 | if (child.middlewares.isNotEmpty) ...child.middlewares, |
206 | ], | 220 | ], |
221 | + [ | ||
222 | + ...parentBindings, | ||
223 | + if (child.binding != null) child.binding!, | ||
224 | + if (child.bindings.isNotEmpty) ...child.bindings, | ||
225 | + ], | ||
226 | + [ | ||
227 | + ...parentBinds, | ||
228 | + if (child.binds.isNotEmpty) ...child.binds, | ||
229 | + ], | ||
207 | )); | 230 | )); |
208 | } | 231 | } |
209 | } | 232 | } |
@@ -212,10 +235,19 @@ class ParseRouteTree { | @@ -212,10 +235,19 @@ class ParseRouteTree { | ||
212 | 235 | ||
213 | /// Change the Path for a [GetPage] | 236 | /// Change the Path for a [GetPage] |
214 | GetPage _addChild( | 237 | GetPage _addChild( |
215 | - GetPage origin, String parentPath, List<GetMiddleware> middlewares) { | 238 | + GetPage origin, |
239 | + String parentPath, | ||
240 | + List<GetMiddleware> middlewares, | ||
241 | + List<BindingsInterface> bindings, | ||
242 | + List<Bind> binds, | ||
243 | + ) { | ||
216 | return origin.copyWith( | 244 | return origin.copyWith( |
217 | middlewares: middlewares, | 245 | middlewares: middlewares, |
218 | - name: (parentPath + origin.name).replaceAll(r'//', '/'), | 246 | + name: origin.inheritParentPath |
247 | + ? (parentPath + origin.name).replaceAll(r'//', '/') | ||
248 | + : origin.name, | ||
249 | + bindings: bindings, | ||
250 | + binds: binds, | ||
219 | // key: | 251 | // key: |
220 | ); | 252 | ); |
221 | } | 253 | } |
-
Please register or login to post a comment