Skip to content

Commit c19da51

Browse files
committed
refactor(router): Re-add HeadlineDetailsBloc for article routes
- Re-added missing bloc import - Headline details now use BlocProvider - Added initialHeadline parameter - Pass id from extra or path
1 parent e999c90 commit c19da51

File tree

1 file changed

+39
-29
lines changed

1 file changed

+39
-29
lines changed

lib/router/router.dart

Lines changed: 39 additions & 29 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'; // Removed
22+
import 'package:ht_main/headline-details/bloc/headline_details_bloc.dart'; // Re-added
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,18 +341,20 @@ GoRouter createRouter({
341341
path: 'article/:id', // Relative path
342342
name: Routes.articleDetailsName,
343343
builder: (context, state) {
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);
344+
final headlineFromExtra = state.extra as Headline?;
345+
final headlineIdFromPath = state.pathParameters['id'];
346+
347+
return BlocProvider(
348+
create: (context) => HeadlineDetailsBloc(
349+
headlinesRepository:
350+
context.read<HtDataRepository<Headline>>(),
351+
),
352+
child: HeadlineDetailsPage(
353+
initialHeadline: headlineFromExtra,
354+
// Ensure headlineId is non-null if initialHeadline is null
355+
headlineId: headlineFromExtra?.id ?? headlineIdFromPath,
356+
),
357+
);
356358
},
357359
),
358360
// Sub-route for notifications (placeholder) - MOVED HERE
@@ -467,14 +469,18 @@ GoRouter createRouter({
467469
path: 'article/:id', // Relative path
468470
name: Routes.searchArticleDetailsName, // New route name
469471
builder: (context, state) {
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);
472+
final headlineFromExtra = state.extra as Headline?;
473+
final headlineIdFromPath = state.pathParameters['id'];
474+
return BlocProvider(
475+
create: (context) => HeadlineDetailsBloc(
476+
headlinesRepository:
477+
context.read<HtDataRepository<Headline>>(),
478+
),
479+
child: HeadlineDetailsPage(
480+
initialHeadline: headlineFromExtra,
481+
headlineId: headlineFromExtra?.id ?? headlineIdFromPath,
482+
),
483+
);
478484
},
479485
),
480486
],
@@ -617,14 +623,18 @@ GoRouter createRouter({
617623
path: Routes.accountArticleDetails, // 'article/:id'
618624
name: Routes.accountArticleDetailsName,
619625
builder: (context, state) {
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);
626+
final headlineFromExtra = state.extra as Headline?;
627+
final headlineIdFromPath = state.pathParameters['id'];
628+
return BlocProvider(
629+
create: (context) => HeadlineDetailsBloc(
630+
headlinesRepository:
631+
context.read<HtDataRepository<Headline>>(),
632+
),
633+
child: HeadlineDetailsPage(
634+
initialHeadline: headlineFromExtra,
635+
headlineId: headlineFromExtra?.id ?? headlineIdFromPath,
636+
),
637+
);
628638
},
629639
),
630640
],

0 commit comments

Comments
 (0)