forked from eatvio/eatvio_app
79 lines
3.2 KiB
Dart
79 lines
3.2 KiB
Dart
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<RouteBase> 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<String, dynamic>;
|
|
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<String, dynamic>;
|
|
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(id: null, slug: slug, index: null, navigateToComments: false);
|
|
}
|
|
final data = state.extra as Map<String, dynamic>;
|
|
return AboutDietScreen(
|
|
id: data['id'] as int?,
|
|
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);
|
|
},
|
|
),
|
|
];
|
|
}
|
|
}
|