@@ -4,6 +4,9 @@ import 'package:flood_mobile/Blocs/theme_bloc/theme_bloc.dart';
4
4
import 'package:flood_mobile/Model/torrent_model.dart' ;
5
5
import 'package:flood_mobile/Pages/widgets/flood_snackbar.dart' ;
6
6
import 'package:flood_mobile/l10n/l10n.dart' ;
7
+ import 'package:flutter_bloc/flutter_bloc.dart' ;
8
+
9
+ import '../../Blocs/home_screen_bloc/home_screen_bloc.dart' ;
7
10
8
11
class DeleteTorrentSheet extends StatefulWidget {
9
12
final int themeIndex;
@@ -118,6 +121,16 @@ class _DeleteTorrentSheetState extends State<DeleteTorrentSheet> {
118
121
),
119
122
child: ElevatedButton (
120
123
onPressed: () {
124
+ final homeScreenBloc = BlocProvider .of <HomeScreenBloc >(context);
125
+ List <TorrentModel > torrentList = homeScreenBloc.state.torrentList;
126
+
127
+ List <TorrentModel > remainingTorrents = torrentList.where ((torrent) =>
128
+ ! widget.torrents.any ((deletedTorrent) => deletedTorrent == torrent))
129
+ .toList ();
130
+
131
+ final SetTorrentListEvent setTorrentListEvent = SetTorrentListEvent (newTorrentList: remainingTorrents);
132
+ homeScreenBloc.add (setTorrentListEvent);
133
+
121
134
List <String > hashes = [];
122
135
widget.torrents.forEach ((element) {
123
136
hashes.add (element.hash);
@@ -132,7 +145,16 @@ class _DeleteTorrentSheetState extends State<DeleteTorrentSheet> {
132
145
final deleteTorrentSnackBar = addFloodSnackBar (
133
146
SnackbarType .caution,
134
147
context.l10n.torrent_delete_snackbar,
135
- context.l10n.button_dismiss);
148
+ context.l10n.button_dismiss,
149
+ undoText: context.l10n.button_undo,
150
+ undoFunction: (){
151
+ final SetTorrentListEvent setTorrentListEvent = SetTorrentListEvent (newTorrentList: torrentList);
152
+ homeScreenBloc.add (setTorrentListEvent);
153
+ TorrentApi .undoDelete (
154
+ id: widget.indexes
155
+ );
156
+ }
157
+ );
136
158
137
159
ScaffoldMessenger .of (context).clearSnackBars ();
138
160
ScaffoldMessenger .of (context)
0 commit comments