LCOV - code coverage report
Current view: top level - src/ui/editor/widgets - nested_navigator.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 11 19 57.9 %
Date: 2020-12-04 18:41:24 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:flutter/material.dart';
       2             : import 'package:flutter/widgets.dart';
       3             : 
       4             : class NestedNavigator extends StatelessWidget {
       5             :   final GlobalKey<NavigatorState> navigationKey;
       6             :   final String initialRoute;
       7             :   final Map<String, WidgetBuilder> routes;
       8             :   final Function() onWillPop;
       9             : 
      10           1 :   NestedNavigator({
      11             :     @required this.navigationKey,
      12             :     @required this.initialRoute,
      13             :     @required this.routes,
      14             :     this.onWillPop,
      15             :   });
      16             : 
      17           1 :   @override
      18             :   Widget build(BuildContext context) {
      19           1 :     return WillPopScope(
      20           1 :       child: Navigator(
      21           1 :         key: navigationKey,
      22           1 :         initialRoute: initialRoute,
      23           1 :         onGenerateRoute: (RouteSettings routeSettings) {
      24           3 :           WidgetBuilder builder = routes[routeSettings.name];
      25           3 :           if (routeSettings.name == initialRoute) {
      26           1 :             return PageRouteBuilder(
      27           2 :               pageBuilder: (context, __, ___) => builder(context),
      28             :               settings: routeSettings,
      29             :             );
      30             :           } else {
      31           0 :             return MaterialPageRoute(
      32             :               builder: builder,
      33             :               settings: routeSettings,
      34             :             );
      35             :           }
      36             :         },
      37             :       ),
      38           0 :       onWillPop: () {
      39           0 :         if (this.onWillPop != null) {
      40           0 :           this.onWillPop();
      41             :         }
      42             :         
      43           0 :         if (navigationKey.currentState.canPop()) {
      44           0 :           navigationKey.currentState.pop();
      45           0 :           return Future<bool>.value(false);
      46             :         }
      47             :         
      48           0 :         return Future<bool>.value(true);
      49             :       },
      50             :     );
      51             :   }
      52             : }

Generated by: LCOV version 1.14