Skip to content

Commit cfb14c8

Browse files
committed
refactor(router): Pass headline directly to details
- Removed HeadlineDetailsBloc - Passed headline as extra - Simplified article details pages - Added error handling for missing data
1 parent 475e860 commit cfb14c8

File tree

1 file changed

+29
-31
lines changed

1 file changed

+29
-31
lines changed

lib/router/router.dart

Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import 'package:ht_main/authentication/bloc/authentication_bloc.dart';
1919
import 'package:ht_main/authentication/view/authentication_page.dart';
2020
import 'package:ht_main/authentication/view/email_code_verification_page.dart';
2121
import 'package:ht_main/authentication/view/request_code_page.dart';
22-
import 'package:ht_main/headline-details/bloc/headline_details_bloc.dart';
22+
// import 'package:ht_main/headline-details/bloc/headline_details_bloc.dart'; // Removed
2323
import 'package:ht_main/headline-details/view/headline_details_page.dart';
2424
import 'package:ht_main/headlines-feed/bloc/categories_filter_bloc.dart'; // Import new BLoC
2525
// import 'package:ht_main/headlines-feed/bloc/countries_filter_bloc.dart'; // Import new BLoC - REMOVED
@@ -341,15 +341,18 @@ GoRouter createRouter({
341341
path: 'article/:id', // Relative path
342342
name: Routes.articleDetailsName,
343343
builder: (context, state) {
344-
final id = state.pathParameters['id']!;
345-
return BlocProvider(
346-
create:
347-
(context) => HeadlineDetailsBloc(
348-
headlinesRepository:
349-
context.read<HtDataRepository<Headline>>(),
350-
)..add(HeadlineDetailsRequested(headlineId: id)),
351-
child: HeadlineDetailsPage(headlineId: id),
352-
);
344+
// final id = state.pathParameters['id']!; // No longer needed
345+
final headline = state.extra as Headline?;
346+
if (headline == null) {
347+
// Handle missing headline data, perhaps redirect or show error
348+
// For now, returning a placeholder, but a robust app
349+
// might redirect to an error page or back.
350+
return const Scaffold(
351+
body: Center(child: Text('Error: Headline data missing')),
352+
);
353+
}
354+
// No longer need BlocProvider for HeadlineDetailsBloc
355+
return HeadlineDetailsPage(headline: headline);
353356
},
354357
),
355358
// Sub-route for notifications (placeholder) - MOVED HERE
@@ -464,15 +467,14 @@ GoRouter createRouter({
464467
path: 'article/:id', // Relative path
465468
name: Routes.searchArticleDetailsName, // New route name
466469
builder: (context, state) {
467-
final id = state.pathParameters['id']!;
468-
return BlocProvider(
469-
create:
470-
(context) => HeadlineDetailsBloc(
471-
headlinesRepository:
472-
context.read<HtDataRepository<Headline>>(),
473-
)..add(HeadlineDetailsRequested(headlineId: id)),
474-
child: HeadlineDetailsPage(headlineId: id),
475-
);
470+
// final id = state.pathParameters['id']!; // No longer needed
471+
final headline = state.extra as Headline?;
472+
if (headline == null) {
473+
return const Scaffold(
474+
body: Center(child: Text('Error: Headline data missing')),
475+
);
476+
}
477+
return HeadlineDetailsPage(headline: headline);
476478
},
477479
),
478480
],
@@ -615,18 +617,14 @@ GoRouter createRouter({
615617
path: Routes.accountArticleDetails, // 'article/:id'
616618
name: Routes.accountArticleDetailsName,
617619
builder: (context, state) {
618-
final id = state.pathParameters['id']!;
619-
return BlocProvider(
620-
create:
621-
(context) => HeadlineDetailsBloc(
622-
headlinesRepository:
623-
context
624-
.read<HtDataRepository<Headline>>(),
625-
)..add(
626-
HeadlineDetailsRequested(headlineId: id),
627-
),
628-
child: HeadlineDetailsPage(headlineId: id),
629-
);
620+
// final id = state.pathParameters['id']!; // No longer needed
621+
final headline = state.extra as Headline?;
622+
if (headline == null) {
623+
return const Scaffold(
624+
body: Center(child: Text('Error: Headline data missing')),
625+
);
626+
}
627+
return HeadlineDetailsPage(headline: headline);
630628
},
631629
),
632630
],

0 commit comments

Comments
 (0)