@@ -7,6 +7,7 @@ import 'package:flutter_news_app_web_dashboard_full_source_code/content_manageme
77import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/content_management_bloc.dart' ;
88import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/app_localizations.dart' ;
99import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart' ;
10+ import 'package:flutter_news_app_web_dashboard_full_source_code/shared/extensions/extensions.dart' ;
1011import 'package:intl/intl.dart' ;
1112import 'package:ui_kit/ui_kit.dart' ;
1213
@@ -38,15 +39,35 @@ class _ArchivedHeadlinesView extends StatelessWidget {
3839 padding: const EdgeInsets .all (AppSpacing .lg),
3940 child: BlocListener <ArchivedHeadlinesBloc , ArchivedHeadlinesState >(
4041 listenWhen: (previous, current) =>
41- previous.status != current.status ||
42+ previous.lastDeletedHeadline != current.lastDeletedHeadline ||
4243 previous.restoredHeadline != current.restoredHeadline,
4344 listener: (context, state) {
44- if (state.status == ArchivedHeadlinesStatus .success &&
45- state.restoredHeadline != null ) {
45+ if (state.restoredHeadline != null ) {
4646 context.read <ContentManagementBloc >().add (
4747 const LoadHeadlinesRequested (limit: kDefaultRowsPerPage),
4848 );
4949 }
50+ if (state.lastDeletedHeadline != null ) {
51+ final truncatedTitle =
52+ state.lastDeletedHeadline! .title.truncate (30 );
53+ ScaffoldMessenger .of (context)
54+ ..hideCurrentSnackBar ()
55+ ..showSnackBar (
56+ SnackBar (
57+ content: Text (
58+ l10n.headlineDeleted (truncatedTitle),
59+ ),
60+ action: SnackBarAction (
61+ label: l10n.undo,
62+ onPressed: () {
63+ context
64+ .read <ArchivedHeadlinesBloc >()
65+ .add (const UndoDeleteHeadlineRequested ());
66+ },
67+ ),
68+ ),
69+ );
70+ }
5071 },
5172 child: BlocBuilder <ArchivedHeadlinesBloc , ArchivedHeadlinesState >(
5273 builder: (context, state) {
0 commit comments