import 'package:eatvio_app/core/routing/route_constants.dart'; import 'package:eatvio_app/features/blog_post/presentation/pages/blog_post_screen.dart'; import 'package:eatvio_app/features/blog_post_create/presentation/pages/blog_post_create_screen.dart'; import 'package:eatvio_app/features/diets/presentation/pages/about_diet_screen.dart'; import 'package:eatvio_app/features/feed/models/feed_blog_post_model.dart'; import 'package:eatvio_app/features/plans/presentation/pages/about_plan_screen.dart'; import 'package:eatvio_app/features/recipe/presentation/pages/about_recipe_screen.dart'; import 'package:go_router/go_router.dart'; /// Маршруты для контента class ContentRoutes { /// Создание маршрутов контента static List createRoutes() { return [ GoRoute( path: RouteConstants.aboutPlanScreen, name: 'aboutPlanScreen', builder: (context, state) { final slug = state.uri.queryParameters['slug']; if (slug != null) { return AboutPlanScreen(slug: slug, navigateToComments: false, index: null); } final data = state.extra as Map; return AboutPlanScreen(slug: data['slug'] as String, index: data['index'] as int?, navigateToComments: data['navigateToComments'] as bool); }, ), GoRoute( path: RouteConstants.aboutRecipesScreen, name: 'aboutRecipesScreen', builder: (context, state) { final slug = state.uri.queryParameters['slug']; if (slug != null) { return AboutRecipeScreen(recipeSlug: slug, navigateToComments: false, index: null); } final data = state.extra as Map; return AboutRecipeScreen(recipeSlug: data['recipe'] as String, index: data['index'] as int?, navigateToComments: data['navigateToComments'] as bool); }, ), GoRoute( path: RouteConstants.aboutDietScreen, name: 'aboutDietScreen', builder: (context, state) { final slug = state.uri.queryParameters['slug']; if (slug != null) { return AboutDietScreen(slug: slug, index: null, navigateToComments: false); } final data = state.extra as Map; return AboutDietScreen(slug: data['slug'] as String, index: data['index'] as int?, navigateToComments: data['navigateToComments'] as bool); }, ), GoRoute( path: RouteConstants.blogPostCreateScreen, name: 'blogPostCreateScreen', builder: (context, state) => BlogPostCreateScreen(feedBlogPostModel: state.extra != null ? state.extra as FeedBlogPostModel : null), ), GoRoute( path: RouteConstants.blogPostScreen, name: 'blogPostScreen', builder: (context, state) { final id = state.uri.queryParameters['id']; final parsedId = int.tryParse(id ?? ''); if (parsedId != null) { return BlogPostScreen(id: parsedId); } return BlogPostScreen(id: state.extra as int); }, ), ]; } }