GetRouterOutlet.pickPages constructor

GetRouterOutlet.pickPages({
  1. Widget emptyWidget(
    1. FlowerDelegate delegate
    )?,
  2. FlowerPage emptyPage(
    1. FlowerDelegate delegate
    )?,
  3. required Iterable<FlowerPage> pickPages(
    1. RouteDecoder currentNavStack
    ),
  4. bool onPopPage(
    1. Route,
    2. dynamic
    )?,
  5. GlobalKey<NavigatorState>? key,
  6. FlowerDelegate? delegate,
})

Implementation

GetRouterOutlet.pickPages({
  Widget Function(FlowerDelegate delegate)? emptyWidget,
  FlowerPage Function(FlowerDelegate delegate)? emptyPage,
  required Iterable<FlowerPage> Function(RouteDecoder currentNavStack)
      pickPages,
  bool Function(Route<dynamic>, dynamic)? onPopPage,
  GlobalKey<NavigatorState>? key,
  FlowerDelegate? delegate,
}) : super(
        pageBuilder: (context, rDelegate, pages) {
          final pageRes = <FlowerPage?>[
            ...?pages,
            if (pages == null || pages.isEmpty) emptyPage?.call(rDelegate),
          ].whereType<FlowerPage>();

          if (pageRes.isNotEmpty) {
            return FlowerNavigator(
              onPopPage: onPopPage ??
                  (route, result) {
                    final didPop = route.didPop(result);
                    if (!didPop) {
                      return false;
                    }
                    return true;
                  },
              pages: pageRes.toList(),
              key: key,
            );
          }
          return (emptyWidget?.call(rDelegate) ?? SizedBox.shrink());
        },
        pickPages: pickPages,
        delegate: delegate ?? Flower.rootController.rootDelegate,
      );