FeatureRoute constructor

FeatureRoute({
  1. required String description,
  2. required String path,
  3. required Widget builder(
    1. BuildContext,
    2. GoRouterState
    ),
  4. bool includeChat = false,
  5. String? name,
  6. GoRouterPageBuilder? pageBuilder,
  7. GoRouterRedirect? redirect,
  8. List<RouteBase> routes = const <RouteBase>[],
})

Implementation

FeatureRoute({
  required this.description,
  required super.path,
  required Widget Function(BuildContext, GoRouterState) builder,
  this.includeChat = false,
  super.name,
  super.pageBuilder,
  super.redirect,
  super.routes = const <RouteBase>[],
}) : super(
        builder: (context, state) {
          final child = builder(context, state);
          final settings = FeatureSettings();

          if (includeChat && settings.useAI) {
            return Scaffold(
              body: child,
              floatingActionButton: FloatingActionButton(
                onPressed: () {
                  Navigator.push(
                    context,
                    MaterialPageRoute(
                      builder: (context) => const ChatPage(),
                    ),
                  );
                },
                child: const Icon(Icons.chat),
              ),
            );
          }
          return child;
        },
      ) {
  _allRoutes.add(this);
}