diff --git a/lib/content_management/bloc/archived_headlines/archived_headlines_bloc.dart b/lib/content_management/bloc/archived_headlines/archived_headlines_bloc.dart index d2dccfa..ac4d22f 100644 --- a/lib/content_management/bloc/archived_headlines/archived_headlines_bloc.dart +++ b/lib/content_management/bloc/archived_headlines/archived_headlines_bloc.dart @@ -75,10 +75,11 @@ class ArchivedHeadlinesBloc emit(state.copyWith(headlines: updatedHeadlines)); try { - await _headlinesRepository.update( + final restoredHeadline = await _headlinesRepository.update( id: event.id, item: headlineToRestore.copyWith(status: ContentStatus.active), ); + emit(state.copyWith(restoredHeadline: restoredHeadline)); } on HttpException catch (e) { emit(state.copyWith(headlines: originalHeadlines, exception: e)); } catch (e) { diff --git a/lib/content_management/bloc/archived_headlines/archived_headlines_state.dart b/lib/content_management/bloc/archived_headlines/archived_headlines_state.dart index 1f90001..57fcec1 100644 --- a/lib/content_management/bloc/archived_headlines/archived_headlines_state.dart +++ b/lib/content_management/bloc/archived_headlines/archived_headlines_state.dart @@ -16,6 +16,7 @@ class ArchivedHeadlinesState extends Equatable { this.cursor, this.hasMore = false, this.exception, + this.restoredHeadline, }); final ArchivedHeadlinesStatus status; @@ -23,6 +24,7 @@ class ArchivedHeadlinesState extends Equatable { final String? cursor; final bool hasMore; final HttpException? exception; + final Headline? restoredHeadline; ArchivedHeadlinesState copyWith({ ArchivedHeadlinesStatus? status, @@ -30,6 +32,7 @@ class ArchivedHeadlinesState extends Equatable { String? cursor, bool? hasMore, HttpException? exception, + Headline? restoredHeadline, }) { return ArchivedHeadlinesState( status: status ?? this.status, @@ -37,6 +40,7 @@ class ArchivedHeadlinesState extends Equatable { cursor: cursor ?? this.cursor, hasMore: hasMore ?? this.hasMore, exception: exception ?? this.exception, + restoredHeadline: restoredHeadline, ); } @@ -47,5 +51,6 @@ class ArchivedHeadlinesState extends Equatable { cursor, hasMore, exception, + restoredHeadline, ]; } diff --git a/lib/content_management/bloc/archived_sources/archived_sources_bloc.dart b/lib/content_management/bloc/archived_sources/archived_sources_bloc.dart index 6ceaf53..45fa8ef 100644 --- a/lib/content_management/bloc/archived_sources/archived_sources_bloc.dart +++ b/lib/content_management/bloc/archived_sources/archived_sources_bloc.dart @@ -74,10 +74,11 @@ class ArchivedSourcesBloc emit(state.copyWith(sources: updatedSources)); try { - await _sourcesRepository.update( + final restoredSource = await _sourcesRepository.update( id: event.id, item: sourceToRestore.copyWith(status: ContentStatus.active), ); + emit(state.copyWith(restoredSource: restoredSource)); } on HttpException catch (e) { emit(state.copyWith(sources: originalSources, exception: e)); } catch (e) { diff --git a/lib/content_management/bloc/archived_sources/archived_sources_state.dart b/lib/content_management/bloc/archived_sources/archived_sources_state.dart index ded6188..4685a4d 100644 --- a/lib/content_management/bloc/archived_sources/archived_sources_state.dart +++ b/lib/content_management/bloc/archived_sources/archived_sources_state.dart @@ -16,6 +16,7 @@ class ArchivedSourcesState extends Equatable { this.cursor, this.hasMore = false, this.exception, + this.restoredSource, }); final ArchivedSourcesStatus status; @@ -23,6 +24,7 @@ class ArchivedSourcesState extends Equatable { final String? cursor; final bool hasMore; final HttpException? exception; + final Source? restoredSource; ArchivedSourcesState copyWith({ ArchivedSourcesStatus? status, @@ -30,6 +32,7 @@ class ArchivedSourcesState extends Equatable { String? cursor, bool? hasMore, HttpException? exception, + Source? restoredSource, }) { return ArchivedSourcesState( status: status ?? this.status, @@ -37,6 +40,7 @@ class ArchivedSourcesState extends Equatable { cursor: cursor ?? this.cursor, hasMore: hasMore ?? this.hasMore, exception: exception ?? this.exception, + restoredSource: restoredSource, ); } @@ -47,5 +51,6 @@ class ArchivedSourcesState extends Equatable { cursor, hasMore, exception, + restoredSource, ]; } diff --git a/lib/content_management/bloc/archived_topics/archived_topics_bloc.dart b/lib/content_management/bloc/archived_topics/archived_topics_bloc.dart index 6cb1f19..7e3a66c 100644 --- a/lib/content_management/bloc/archived_topics/archived_topics_bloc.dart +++ b/lib/content_management/bloc/archived_topics/archived_topics_bloc.dart @@ -74,10 +74,11 @@ class ArchivedTopicsBloc emit(state.copyWith(topics: updatedTopics)); try { - await _topicsRepository.update( + final restoredTopic = await _topicsRepository.update( id: event.id, item: topicToRestore.copyWith(status: ContentStatus.active), ); + emit(state.copyWith(restoredTopic: restoredTopic)); } on HttpException catch (e) { emit(state.copyWith(topics: originalTopics, exception: e)); } catch (e) { diff --git a/lib/content_management/bloc/archived_topics/archived_topics_state.dart b/lib/content_management/bloc/archived_topics/archived_topics_state.dart index 4ac2199..e13a785 100644 --- a/lib/content_management/bloc/archived_topics/archived_topics_state.dart +++ b/lib/content_management/bloc/archived_topics/archived_topics_state.dart @@ -16,6 +16,7 @@ class ArchivedTopicsState extends Equatable { this.cursor, this.hasMore = false, this.exception, + this.restoredTopic, }); final ArchivedTopicsStatus status; @@ -23,6 +24,7 @@ class ArchivedTopicsState extends Equatable { final String? cursor; final bool hasMore; final HttpException? exception; + final Topic? restoredTopic; ArchivedTopicsState copyWith({ ArchivedTopicsStatus? status, @@ -30,6 +32,7 @@ class ArchivedTopicsState extends Equatable { String? cursor, bool? hasMore, HttpException? exception, + Topic? restoredTopic, }) { return ArchivedTopicsState( status: status ?? this.status, @@ -37,6 +40,7 @@ class ArchivedTopicsState extends Equatable { cursor: cursor ?? this.cursor, hasMore: hasMore ?? this.hasMore, exception: exception ?? this.exception, + restoredTopic: restoredTopic, ); } @@ -47,5 +51,6 @@ class ArchivedTopicsState extends Equatable { cursor, hasMore, exception, + restoredTopic, ]; } diff --git a/lib/content_management/bloc/create_headline/create_headline_bloc.dart b/lib/content_management/bloc/create_headline/create_headline_bloc.dart index eb0e2ee..68655f5 100644 --- a/lib/content_management/bloc/create_headline/create_headline_bloc.dart +++ b/lib/content_management/bloc/create_headline/create_headline_bloc.dart @@ -54,9 +54,11 @@ class CreateHeadlineBloc final [sourcesResponse, topicsResponse] = await Future.wait([ _sourcesRepository.readAll( sort: [const SortOption('updatedAt', SortOrder.desc)], + filter: {'status': ContentStatus.active.name}, ), _topicsRepository.readAll( sort: [const SortOption('updatedAt', SortOrder.desc)], + filter: {'status': ContentStatus.active.name}, ), ]); diff --git a/lib/content_management/bloc/create_source/create_source_bloc.dart b/lib/content_management/bloc/create_source/create_source_bloc.dart index 38a68a9..7a6beee 100644 --- a/lib/content_management/bloc/create_source/create_source_bloc.dart +++ b/lib/content_management/bloc/create_source/create_source_bloc.dart @@ -54,9 +54,11 @@ class CreateSourceBloc extends Bloc { final responses = await Future.wait([ _countriesRepository.readAll( sort: [const SortOption('name', SortOrder.asc)], + filter: {'status': ContentStatus.active.name}, ), _languagesRepository.readAll( sort: [const SortOption('name', SortOrder.asc)], + filter: {'status': ContentStatus.active.name}, ), ]); final countriesPaginated = responses[0] as PaginatedResponse; diff --git a/lib/content_management/bloc/edit_headline/edit_headline_bloc.dart b/lib/content_management/bloc/edit_headline/edit_headline_bloc.dart index c562b64..788bba1 100644 --- a/lib/content_management/bloc/edit_headline/edit_headline_bloc.dart +++ b/lib/content_management/bloc/edit_headline/edit_headline_bloc.dart @@ -55,9 +55,11 @@ class EditHeadlineBloc extends Bloc { _headlinesRepository.read(id: _headlineId), _sourcesRepository.readAll( sort: [const SortOption('updatedAt', SortOrder.desc)], + filter: {'status': ContentStatus.active.name}, ), _topicsRepository.readAll( sort: [const SortOption('updatedAt', SortOrder.desc)], + filter: {'status': ContentStatus.active.name}, ), ]); diff --git a/lib/content_management/bloc/edit_source/edit_source_bloc.dart b/lib/content_management/bloc/edit_source/edit_source_bloc.dart index 7e1a113..c564457 100644 --- a/lib/content_management/bloc/edit_source/edit_source_bloc.dart +++ b/lib/content_management/bloc/edit_source/edit_source_bloc.dart @@ -56,9 +56,11 @@ class EditSourceBloc extends Bloc { _sourcesRepository.read(id: _sourceId), _countriesRepository.readAll( sort: [const SortOption('name', SortOrder.asc)], + filter: {'status': ContentStatus.active.name}, ), _languagesRepository.readAll( sort: [const SortOption('name', SortOrder.asc)], + filter: {'status': ContentStatus.active.name}, ), ]); diff --git a/lib/content_management/view/archived_headlines_page.dart b/lib/content_management/view/archived_headlines_page.dart index b0886e1..0898c4d 100644 --- a/lib/content_management/view/archived_headlines_page.dart +++ b/lib/content_management/view/archived_headlines_page.dart @@ -4,6 +4,7 @@ import 'package:data_table_2/data_table_2.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/archived_headlines/archived_headlines_bloc.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/content_management_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/app_localizations.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart'; import 'package:intl/intl.dart'; @@ -35,16 +36,28 @@ class _ArchivedHeadlinesView extends StatelessWidget { ), body: Padding( padding: const EdgeInsets.all(AppSpacing.lg), - child: BlocBuilder( - builder: (context, state) { - if (state.status == ArchivedHeadlinesStatus.loading && - state.headlines.isEmpty) { - return LoadingStateWidget( - icon: Icons.newspaper, - headline: l10n.loadingArchivedHeadlines, - subheadline: l10n.pleaseWait, - ); + child: BlocListener( + listenWhen: (previous, current) => + previous.status != current.status || + previous.restoredHeadline != current.restoredHeadline, + listener: (context, state) { + if (state.status == ArchivedHeadlinesStatus.success && + state.restoredHeadline != null) { + context.read().add( + const LoadHeadlinesRequested(limit: kDefaultRowsPerPage), + ); } + }, + child: BlocBuilder( + builder: (context, state) { + if (state.status == ArchivedHeadlinesStatus.loading && + state.headlines.isEmpty) { + return LoadingStateWidget( + icon: Icons.newspaper, + headline: l10n.loadingArchivedHeadlines, + subheadline: l10n.pleaseWait, + ); + } if (state.status == ArchivedHeadlinesStatus.failure) { return FailureStateWidget( @@ -120,7 +133,8 @@ class _ArchivedHeadlinesView extends StatelessWidget { ), ], ); - }, + }, + ), ), ), ); diff --git a/lib/content_management/view/archived_sources_page.dart b/lib/content_management/view/archived_sources_page.dart index 1a56338..32f66c1 100644 --- a/lib/content_management/view/archived_sources_page.dart +++ b/lib/content_management/view/archived_sources_page.dart @@ -4,6 +4,8 @@ import 'package:data_table_2/data_table_2.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/archived_sources/archived_sources_bloc.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/content_management_bloc.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/dashboard/bloc/dashboard_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/app_localizations.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart'; import 'package:intl/intl.dart'; @@ -35,10 +37,21 @@ class _ArchivedSourcesView extends StatelessWidget { ), body: Padding( padding: const EdgeInsets.all(AppSpacing.lg), - child: BlocBuilder( - builder: (context, state) { - if (state.status == ArchivedSourcesStatus.loading && - state.sources.isEmpty) { + child: BlocListener( + listenWhen: (previous, current) => + previous.restoredSource != current.restoredSource, + listener: (context, state) { + if (state.restoredSource != null) { + context.read().add( + const LoadSourcesRequested(limit: kDefaultRowsPerPage), + ); + context.read().add(DashboardSummaryLoaded()); + } + }, + child: BlocBuilder( + builder: (context, state) { + if (state.status == ArchivedSourcesStatus.loading && + state.sources.isEmpty) { return LoadingStateWidget( icon: Icons.source, headline: l10n.loadingArchivedSources, @@ -116,7 +129,8 @@ class _ArchivedSourcesView extends StatelessWidget { ), ], ); - }, + }, + ), ), ), ); diff --git a/lib/content_management/view/archived_topics_page.dart b/lib/content_management/view/archived_topics_page.dart index a86ff72..a2f9672 100644 --- a/lib/content_management/view/archived_topics_page.dart +++ b/lib/content_management/view/archived_topics_page.dart @@ -4,6 +4,8 @@ import 'package:data_table_2/data_table_2.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/archived_topics/archived_topics_bloc.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/content_management_bloc.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/dashboard/bloc/dashboard_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/app_localizations.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart'; import 'package:intl/intl.dart'; @@ -35,10 +37,21 @@ class _ArchivedTopicsView extends StatelessWidget { ), body: Padding( padding: const EdgeInsets.all(AppSpacing.lg), - child: BlocBuilder( - builder: (context, state) { - if (state.status == ArchivedTopicsStatus.loading && - state.topics.isEmpty) { + child: BlocListener( + listenWhen: (previous, current) => + previous.restoredTopic != current.restoredTopic, + listener: (context, state) { + if (state.restoredTopic != null) { + context + .read() + .add(const LoadTopicsRequested(limit: kDefaultRowsPerPage)); + context.read().add( DashboardSummaryLoaded()); + } + }, + child: BlocBuilder( + builder: (context, state) { + if (state.status == ArchivedTopicsStatus.loading && + state.topics.isEmpty) { return LoadingStateWidget( icon: Icons.topic, headline: l10n.loadingArchivedTopics, @@ -116,7 +129,8 @@ class _ArchivedTopicsView extends StatelessWidget { ), ], ); - }, + }, + ), ), ), ); diff --git a/lib/content_management/view/create_headline_page.dart b/lib/content_management/view/create_headline_page.dart index 9e454cc..eab8a59 100644 --- a/lib/content_management/view/create_headline_page.dart +++ b/lib/content_management/view/create_headline_page.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/content_management_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/create_headline/create_headline_bloc.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/dashboard/bloc/dashboard_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/shared/shared.dart'; import 'package:go_router/go_router.dart'; @@ -88,6 +89,7 @@ class _CreateHeadlineViewState extends State<_CreateHeadlineView> { // Refresh the list to show the new headline const LoadHeadlinesRequested(limit: kDefaultRowsPerPage), ); + context.read().add(DashboardSummaryLoaded()); context.pop(); } if (state.status == CreateHeadlineStatus.failure) { diff --git a/lib/content_management/view/create_source_page.dart b/lib/content_management/view/create_source_page.dart index a2f0249..59c96e4 100644 --- a/lib/content_management/view/create_source_page.dart +++ b/lib/content_management/view/create_source_page.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/content_management_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/create_source/create_source_bloc.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/dashboard/bloc/dashboard_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/shared/extensions/source_type_l10n.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/shared/shared.dart'; @@ -88,6 +89,7 @@ class _CreateSourceViewState extends State<_CreateSourceView> { // Refresh the list to show the new source const LoadSourcesRequested(limit: kDefaultRowsPerPage), ); + context.read().add(DashboardSummaryLoaded()); context.pop(); } if (state.status == CreateSourceStatus.failure) { diff --git a/lib/content_management/view/create_topic_page.dart b/lib/content_management/view/create_topic_page.dart index 575ca93..80822d2 100644 --- a/lib/content_management/view/create_topic_page.dart +++ b/lib/content_management/view/create_topic_page.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/content_management_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/create_topic/create_topic_bloc.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/dashboard/bloc/dashboard_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/shared/shared.dart'; import 'package:go_router/go_router.dart'; @@ -85,6 +86,7 @@ class _CreateTopicViewState extends State<_CreateTopicView> { // Refresh the list to show the new topic const LoadTopicsRequested(limit: kDefaultRowsPerPage), ); + context.read().add(DashboardSummaryLoaded()); context.pop(); } if (state.status == CreateTopicStatus.failure) { diff --git a/lib/content_management/view/edit_headline_page.dart b/lib/content_management/view/edit_headline_page.dart index 62e182d..eb2ada1 100644 --- a/lib/content_management/view/edit_headline_page.dart +++ b/lib/content_management/view/edit_headline_page.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/content_management_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/edit_headline/edit_headline_bloc.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/dashboard/bloc/dashboard_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/shared/shared.dart'; import 'package:go_router/go_router.dart'; @@ -116,6 +117,7 @@ class _EditHeadlineViewState extends State<_EditHeadlineView> { context.read().add( const LoadHeadlinesRequested(limit: kDefaultRowsPerPage), ); + context.read().add(DashboardSummaryLoaded()); context.pop(); } if (state.status == EditHeadlineStatus.failure) { diff --git a/lib/content_management/view/edit_source_page.dart b/lib/content_management/view/edit_source_page.dart index 21ca1dc..1637aa4 100644 --- a/lib/content_management/view/edit_source_page.dart +++ b/lib/content_management/view/edit_source_page.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/content_management_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/edit_source/edit_source_bloc.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/dashboard/bloc/dashboard_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/shared/extensions/source_type_l10n.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/shared/shared.dart'; @@ -113,6 +114,7 @@ class _EditSourceViewState extends State<_EditSourceView> { context.read().add( const LoadSourcesRequested(limit: kDefaultRowsPerPage), ); + context.read().add(DashboardSummaryLoaded()); context.pop(); } if (state.status == EditSourceStatus.failure) { diff --git a/lib/content_management/view/edit_topic_page.dart b/lib/content_management/view/edit_topic_page.dart index 92f2421..6cf8948 100644 --- a/lib/content_management/view/edit_topic_page.dart +++ b/lib/content_management/view/edit_topic_page.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/content_management_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/edit_topic/edit_topic_bloc.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/dashboard/bloc/dashboard_bloc.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/shared/shared.dart'; import 'package:go_router/go_router.dart'; @@ -110,6 +111,7 @@ class _EditTopicViewState extends State<_EditTopicView> { context.read().add( const LoadTopicsRequested(limit: kDefaultRowsPerPage), ); + context.read().add(DashboardSummaryLoaded()); context.pop(); } if (state.status == EditTopicStatus.failure) { diff --git a/lib/dashboard/bloc/dashboard_bloc.dart b/lib/dashboard/bloc/dashboard_bloc.dart index 2056cbe..6047199 100644 --- a/lib/dashboard/bloc/dashboard_bloc.dart +++ b/lib/dashboard/bloc/dashboard_bloc.dart @@ -33,6 +33,7 @@ class DashboardBloc extends Bloc { _headlinesRepository.readAll( pagination: const PaginationOptions(limit: 5), sort: const [SortOption('updatedAt', SortOrder.desc)], + filter: {'status': ContentStatus.active.name}, ), ]); diff --git a/lib/router/router.dart b/lib/router/router.dart index 151a075..0832377 100644 --- a/lib/router/router.dart +++ b/lib/router/router.dart @@ -10,6 +10,9 @@ import 'package:flutter_news_app_web_dashboard_full_source_code/authentication/b import 'package:flutter_news_app_web_dashboard_full_source_code/authentication/view/authentication_page.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/authentication/view/email_code_verification_page.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/authentication/view/request_code_page.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/view/archived_headlines_page.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/view/archived_sources_page.dart'; +import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/view/archived_topics_page.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/view/content_management_page.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/view/create_headline_page.dart'; import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/view/create_source_page.dart'; @@ -199,20 +202,17 @@ GoRouter createRouter({ GoRoute( path: Routes.archivedHeadlines, name: Routes.archivedHeadlinesName, - builder: (context, state) => - const Placeholder(), + builder: (context, state) => const ArchivedHeadlinesPage(), ), GoRoute( path: Routes.archivedTopics, name: Routes.archivedTopicsName, - builder: (context, state) => - const Placeholder(), + builder: (context, state) => const ArchivedTopicsPage(), ), GoRoute( path: Routes.archivedSources, name: Routes.archivedSourcesName, - builder: (context, state) => - const Placeholder(), + builder: (context, state) => const ArchivedSourcesPage(), ), ], ),