buildWidgets static method

List<Widget> buildWidgets({
  1. required BuildContext context,
  2. required List<Object> routeDataList,
  3. required List<NavigationData> routes,
  4. String? group,
})

Implementation

static List<Widget> buildWidgets(
    {required BuildContext context,
    required List<Object> routeDataList,
    required List<NavigationData> routes,
    String? group}) {
  List<Widget> widgets = [];

  for (Object route in routeDataList) {
    if (route is DefaultRoute) {
      NavigationData? navigationData =
          NavigationUtils.getNavigationDataFromRoute(
              routes: routes, route: route);

      if (navigationData != null &&
          (group == null || navigationData.group == group)) {
        Map<String, String> pathParameters = {};
        pathParameters.addAll(route.pathParameters);
        if (navigationData.path.contains(':')) {
          pathParameters.addAll(
              NavigationUtils.extractPathParametersWithPattern(
                  route.path, navigationData.path));
        }

        Widget child = navigationData.builder(
            context, route.copyWith(pathParameters: pathParameters), {});
        widgets.add(child);
      }
    }
  }

  return widgets;
}