feat(deeplinks): added backwards novigation for contant that was oppened via deeplinks, added routing to plans

This commit is contained in:
Username1548
2025-06-24 03:18:03 +07:00
parent 105c7cb462
commit aa78d385a2
6 changed files with 511 additions and 433 deletions

View File

@@ -42,7 +42,6 @@ import 'package:eatvio_app/features/finances_and_consultations_archive/presentat
import 'package:eatvio_app/features/my_finance/presentation/pages/user_finance_screen.dart';
import 'package:eatvio_app/features/my_plans/presentation/my_plans_screen.dart';
import 'package:eatvio_app/features/notifications/presentation/notifications_screen.dart';
import 'package:eatvio_app/features/feed/models/plan_pagination_model.dart';
import 'package:eatvio_app/features/plans/presentation/pages/about_plan_screen.dart';
import 'package:eatvio_app/features/profile/presentation/pages/profile_screen.dart';
import 'package:eatvio_app/features/profile/presentation/pages/subs_screen.dart';
@@ -88,9 +87,9 @@ class AppRouter {
case 'recipe':
return '/about-recipes-screen?slug=$contentIdentifier';
case 'blog_post':
return '/blog-post-screen?slug=$contentIdentifier';
return '/blog-post-screen?id=$contentIdentifier';
case 'plan':
return '/plan?slug=$contentIdentifier';
return '/about-plan-screen?slug=$contentIdentifier';
case 'diet':
return '/diet?slug=$contentIdentifier';
}
@@ -255,8 +254,17 @@ class AppRouter {
path: '/about-plan-screen',
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(plan: data['plan'] as PlanModel, index: data['index'] as int?, navigateToComments: data['navigateToComments'] as bool);
return AboutPlanScreen(slug: data['slug'] as String, index: data['index'] as int?, navigateToComments: data['navigateToComments'] as bool);
},
),
GoRoute(path: '/glossary-screen', name: 'glossaryScreen', builder: (context, state) => const GlossaryScreen()),
@@ -311,7 +319,7 @@ class AppRouter {
path: '/blog-post-screen',
name: 'blogPostScreen',
builder: (context, state) {
final id = state.uri.queryParameters['slug'];
final id = state.uri.queryParameters['id'];
final parsedId = int.tryParse(id ?? '');
if (parsedId != null) {
return BlogPostScreen(