diff --git a/lib/get_navigation/src/routes/get_router_delegate.dart b/lib/get_navigation/src/routes/get_router_delegate.dart index 754688a..b8798cc 100644 --- a/lib/get_navigation/src/routes/get_router_delegate.dart +++ b/lib/get_navigation/src/routes/get_router_delegate.dart @@ -612,9 +612,12 @@ class GetDelegate extends RouterDelegate<RouteDecoder> }) async { // remove history or page entries until you meet route var iterator = currentConfiguration; - while (_canPop(popMode) && - iterator != null && - iterator.pageSettings?.name != fullRoute) { + while (_canPop(popMode) && iterator != null) { + //the next line causes wasm compile error if included in the while loop + //https://github.com/flutter/flutter/issues/140110 + if (iterator.pageSettings?.name == fullRoute) { + break; + } await _pop(popMode, null); // replace iterator iterator = currentConfiguration; diff --git a/lib/get_navigation/src/routes/page_settings.dart b/lib/get_navigation/src/routes/page_settings.dart index 80a5ae4..b57beee 100644 --- a/lib/get_navigation/src/routes/page_settings.dart +++ b/lib/get_navigation/src/routes/page_settings.dart @@ -40,7 +40,7 @@ extension PageArgExt on BuildContext { String get location { final parser = router.routeInformationParser; final config = delegate.currentConfiguration; - return parser?.restoreRouteInformation(config)?.location ?? '/'; + return parser?.restoreRouteInformation(config)?.uri.toString() ?? '/'; } GetDelegate get delegate { diff --git a/lib/get_utils/src/platform/platform_web.dart b/lib/get_utils/src/platform/platform_web.dart index a643c20..c5bafe1 100644 --- a/lib/get_utils/src/platform/platform_web.dart +++ b/lib/get_utils/src/platform/platform_web.dart @@ -1,5 +1,5 @@ // ignore: avoid_web_libraries_in_flutter -import 'dart:html' as html; +import 'package:web/web.dart' as html; import '../../get_utils.dart'; @@ -25,7 +25,7 @@ class GeneralPlatform { static bool get isIOS { // maxTouchPoints is needed to separate iPad iOS13 vs new MacOS return GetUtils.hasMatch(_navigator.platform, r'/iPad|iPhone|iPod/') || - (_navigator.platform == 'MacIntel' && _navigator.maxTouchPoints! > 1); + (_navigator.platform == 'MacIntel' && _navigator.maxTouchPoints > 1); } static bool get isFuchsia => false; diff --git a/pubspec.yaml b/pubspec.yaml index 9b447c5..69a5209 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,6 +11,7 @@ dependencies: sdk: flutter flutter_web_plugins: sdk: flutter + web: any dev_dependencies: flutter_lints: ^2.0.3