Skip to content

Commit 9812a57

Browse files
committed
refactor(navigation): remove all routes for HeadlineDetailsPage
Removes all `GoRoute` definitions and `BlocProvider` setups related to the `HeadlineDetailsPage`, `HeadlineDetailsBloc`, and `SimilarHeadlinesBloc` from the main router configuration. This is a key step in deprecating the feature and pivoting to an external browser-based article viewing experience.
1 parent c336138 commit 9812a57

File tree

1 file changed

+2
-112
lines changed

1 file changed

+2
-112
lines changed

lib/router/router.dart

Lines changed: 2 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@ import 'package:flutter_news_app_mobile_client_full_source_code/discover/view/so
3232
import 'package:flutter_news_app_mobile_client_full_source_code/discover/view/source_list_page.dart';
3333
import 'package:flutter_news_app_mobile_client_full_source_code/entity_details/bloc/entity_details_bloc.dart';
3434
import 'package:flutter_news_app_mobile_client_full_source_code/entity_details/view/entity_details_page.dart';
35-
import 'package:flutter_news_app_mobile_client_full_source_code/feed_decorators/services/feed_decorator_service.dart';
36-
import 'package:flutter_news_app_mobile_client_full_source_code/headline-details/bloc/headline_details_bloc.dart';
37-
import 'package:flutter_news_app_mobile_client_full_source_code/headline-details/bloc/similar_headlines_bloc.dart';
38-
import 'package:flutter_news_app_mobile_client_full_source_code/headline-details/view/headline_details_page.dart';
3935
import 'package:flutter_news_app_mobile_client_full_source_code/headlines-feed/bloc/headlines_feed_bloc.dart';
4036
import 'package:flutter_news_app_mobile_client_full_source_code/headlines-feed/bloc/headlines_filter_bloc.dart';
4137
import 'package:flutter_news_app_mobile_client_full_source_code/headlines-feed/services/feed_cache_service.dart';
@@ -44,6 +40,7 @@ import 'package:flutter_news_app_mobile_client_full_source_code/headlines-feed/v
4440
import 'package:flutter_news_app_mobile_client_full_source_code/headlines-feed/view/headlines_filter_page.dart';
4541
import 'package:flutter_news_app_mobile_client_full_source_code/headlines-feed/view/saved_headlines_filters_page.dart';
4642
import 'package:flutter_news_app_mobile_client_full_source_code/headlines-feed/view/source_filter_page.dart';
43+
import 'package:flutter_news_app_mobile_client_full_source_code/feed_decorators/services/feed_decorator_service.dart';
4744
import 'package:flutter_news_app_mobile_client_full_source_code/headlines-feed/view/source_list_filter_page.dart'
4845
as feed_filter;
4946
import 'package:flutter_news_app_mobile_client_full_source_code/headlines-feed/view/topic_filter_page.dart';
@@ -260,7 +257,7 @@ GoRouter createRouter({
260257
return BlocProvider<SettingsBloc>(
261258
create: (context) {
262259
final settingsBloc = SettingsBloc(
263-
userAppSettingsRepository: context
260+
appSettingsRepository: context
264261
.read<DataRepository<AppSettings>>(),
265262
inlineAdCacheService: context.read<InlineAdCacheService>(),
266263
);
@@ -367,41 +364,6 @@ GoRouter createRouter({
367364
path: Routes.accountSavedHeadlines,
368365
name: Routes.accountSavedHeadlinesName,
369366
builder: (context, state) => const SavedHeadlinesPage(),
370-
routes: [
371-
GoRoute(
372-
path: Routes.accountArticleDetails,
373-
name: Routes.accountArticleDetailsName,
374-
builder: (context, state) {
375-
final extra = state.extra;
376-
final headlineFromExtra = extra is Headline ? extra : null;
377-
final headlineIdFromPath = state.pathParameters['id'];
378-
final notificationId = extra is Map<String, dynamic>
379-
? extra['notificationId'] as String?
380-
: null;
381-
return MultiBlocProvider(
382-
providers: [
383-
BlocProvider(
384-
create: (context) => HeadlineDetailsBloc(
385-
headlinesRepository: context
386-
.read<DataRepository<Headline>>(),
387-
),
388-
),
389-
BlocProvider(
390-
create: (context) => SimilarHeadlinesBloc(
391-
headlinesRepository: context
392-
.read<DataRepository<Headline>>(),
393-
),
394-
),
395-
],
396-
child: HeadlineDetailsPage(
397-
initialHeadline: headlineFromExtra,
398-
headlineId: headlineFromExtra?.id ?? headlineIdFromPath,
399-
notificationId: notificationId,
400-
),
401-
);
402-
},
403-
),
404-
],
405367
),
406368
],
407369
),
@@ -460,40 +422,6 @@ GoRouter createRouter({
460422
);
461423
},
462424
),
463-
GoRoute(
464-
path: Routes.globalArticleDetails,
465-
name: Routes.globalArticleDetailsName,
466-
builder: (context, state) {
467-
// The 'extra' can be a Headline object (from feed navigation) or a Map
468-
// (from a push notification deep-link).
469-
final extra = state.extra;
470-
final headlineFromExtra = extra is Headline ? extra : null;
471-
final headlineIdFromPath = state.pathParameters['id'];
472-
final notificationId = extra is Map<String, dynamic>
473-
? extra['notificationId'] as String?
474-
: null;
475-
476-
return MultiBlocProvider(
477-
providers: [
478-
BlocProvider(
479-
create: (context) => HeadlineDetailsBloc(
480-
headlinesRepository: context.read<DataRepository<Headline>>(),
481-
),
482-
),
483-
BlocProvider(
484-
create: (context) => SimilarHeadlinesBloc(
485-
headlinesRepository: context.read<DataRepository<Headline>>(),
486-
),
487-
),
488-
],
489-
child: HeadlineDetailsPage(
490-
initialHeadline: headlineFromExtra,
491-
headlineId: headlineFromExtra?.id ?? headlineIdFromPath,
492-
notificationId: notificationId,
493-
),
494-
);
495-
},
496-
),
497425
GoRoute(
498426
path: '/multi-select-search',
499427
name: Routes.multiSelectSearchName,
@@ -559,44 +487,6 @@ GoRouter createRouter({
559487
name: Routes.feedName,
560488
builder: (context, state) => const HeadlinesFeedPage(),
561489
routes: [
562-
// Sub-route for article details within the feed context.
563-
GoRoute(
564-
path: 'article/:id',
565-
name: Routes.articleDetailsName,
566-
builder: (context, state) {
567-
final extra = state.extra;
568-
final headlineFromExtra = extra is Headline
569-
? extra
570-
: null;
571-
final headlineIdFromPath = state.pathParameters['id'];
572-
final notificationId = extra is Map<String, dynamic>
573-
? extra['notificationId'] as String?
574-
: null;
575-
576-
return MultiBlocProvider(
577-
providers: [
578-
BlocProvider(
579-
create: (context) => HeadlineDetailsBloc(
580-
headlinesRepository: context
581-
.read<DataRepository<Headline>>(),
582-
),
583-
),
584-
BlocProvider(
585-
create: (context) => SimilarHeadlinesBloc(
586-
headlinesRepository: context
587-
.read<DataRepository<Headline>>(),
588-
),
589-
),
590-
],
591-
child: HeadlineDetailsPage(
592-
initialHeadline: headlineFromExtra,
593-
headlineId:
594-
headlineFromExtra?.id ?? headlineIdFromPath,
595-
notificationId: notificationId,
596-
),
597-
);
598-
},
599-
),
600490
GoRoute(
601491
path: Routes.savedHeadlineFilters,
602492
name: Routes.savedHeadlineFiltersName,

0 commit comments

Comments
 (0)