@@ -7,6 +7,7 @@ import 'package:flutter_news_app_web_dashboard_full_source_code/content_manageme
7
7
import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/content_management_bloc.dart' ;
8
8
import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/app_localizations.dart' ;
9
9
import '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' ;
10
11
import 'package:intl/intl.dart' ;
11
12
import 'package:ui_kit/ui_kit.dart' ;
12
13
@@ -38,15 +39,35 @@ class _ArchivedHeadlinesView extends StatelessWidget {
38
39
padding: const EdgeInsets .all (AppSpacing .lg),
39
40
child: BlocListener <ArchivedHeadlinesBloc , ArchivedHeadlinesState >(
40
41
listenWhen: (previous, current) =>
41
- previous.status != current.status ||
42
+ previous.lastDeletedHeadline != current.lastDeletedHeadline ||
42
43
previous.restoredHeadline != current.restoredHeadline,
43
44
listener: (context, state) {
44
- if (state.status == ArchivedHeadlinesStatus .success &&
45
- state.restoredHeadline != null ) {
45
+ if (state.restoredHeadline != null ) {
46
46
context.read <ContentManagementBloc >().add (
47
47
const LoadHeadlinesRequested (limit: kDefaultRowsPerPage),
48
48
);
49
49
}
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
+ }
50
71
},
51
72
child: BlocBuilder <ArchivedHeadlinesBloc , ArchivedHeadlinesState >(
52
73
builder: (context, state) {
0 commit comments