diff options
| -rw-r--r-- | player-android/lib/screens/admin_trash_screen.dart | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/player-android/lib/screens/admin_trash_screen.dart b/player-android/lib/screens/admin_trash_screen.dart index db0354a..768bb11 100644 --- a/player-android/lib/screens/admin_trash_screen.dart +++ b/player-android/lib/screens/admin_trash_screen.dart @@ -86,7 +86,7 @@ class _AdminTrashScreenState extends ConsumerState<AdminTrashScreen> { /// On error the item is re-appended to the list and a SnackBar reports the /// problem. Re-appending (rather than re-inserting at the original index) /// avoids position jitter from concurrent mutations. - Future<void> _restore(Media item, int index) async { + Future<void> _restore(Media item) async { // Identity-based removal (by id) avoids position drift from concurrent // operations that could shift list indices between tap and setState. setState(() => _items!.removeWhere((e) => e.id == item.id)); @@ -119,7 +119,7 @@ class _AdminTrashScreenState extends ConsumerState<AdminTrashScreen> { /// permanent removal. The server's GC worker completes the physical file /// removal. The item is removed from the local list optimistically and /// reverted on error. - Future<void> _hardDelete(Media item, int index) async { + Future<void> _hardDelete(Media item) async { final confirmed = await _confirmHardDelete(item.fileName); if (!confirmed || !mounted) return; @@ -260,8 +260,8 @@ class _TrashList extends StatelessWidget { }); final List<Media> items; - final Future<void> Function(Media item, int index) onRestore; - final Future<void> Function(Media item, int index) onHardDelete; + final Future<void> Function(Media item) onRestore; + final Future<void> Function(Media item) onHardDelete; @override Widget build(BuildContext context) { @@ -271,7 +271,6 @@ class _TrashList extends StatelessWidget { separatorBuilder: (_, __) => const Divider(height: 1), itemBuilder: (_, index) => _TrashTile( item: items[index], - index: index, onRestore: onRestore, onHardDelete: onHardDelete, ), @@ -283,15 +282,13 @@ class _TrashList extends StatelessWidget { class _TrashTile extends StatelessWidget { const _TrashTile({ required this.item, - required this.index, required this.onRestore, required this.onHardDelete, }); final Media item; - final int index; - final Future<void> Function(Media item, int index) onRestore; - final Future<void> Function(Media item, int index) onHardDelete; + final Future<void> Function(Media item) onRestore; + final Future<void> Function(Media item) onHardDelete; @override Widget build(BuildContext context) { @@ -313,14 +310,14 @@ class _TrashTile extends StatelessWidget { key: Key('admin_trash_restore_${item.id}'), icon: const Icon(Icons.restore_outlined), tooltip: 'Restore', - onPressed: () => onRestore(item, index), + onPressed: () => onRestore(item), ), IconButton( key: Key('admin_trash_delete_${item.id}'), icon: const Icon(Icons.delete_forever_outlined), tooltip: 'Delete permanently', color: Theme.of(context).colorScheme.error, - onPressed: () => onHardDelete(item, index), + onPressed: () => onHardDelete(item), ), ], ), |
