refactor: extract shared mixins and helpers to dedupe

This commit is contained in:
edde746
2026-04-20 21:25:50 +02:00
parent 3b7b532a8d
commit 5937e5c721
28 changed files with 536 additions and 777 deletions
+7 -22
View File
@@ -8,7 +8,6 @@ import '../i18n/strings.g.dart';
import 'base_media_list_detail_screen.dart';
import 'focusable_detail_screen_mixin.dart';
import '../mixins/grid_focus_node_mixin.dart';
import '../focus/key_event_utils.dart';
import '../focus/focusable_action_bar.dart';
/// Screen to browse all media featuring a specific actor
@@ -130,27 +129,13 @@ class _ActorMediaScreenState extends BaseMediaListDetailScreen<ActorMediaScreen>
@override
Widget build(BuildContext context) {
return PopScope(
canPop: false,
onPopInvokedWithResult: (didPop, result) {
if (BackKeyCoordinator.consumeIfHandled()) return;
if (didPop) return;
final shouldPop = handleBackNavigation();
if (shouldPop && mounted) {
Navigator.pop(context);
}
},
child: Scaffold(
body: CustomScrollView(
controller: scrollController,
slivers: [
CustomAppBar(title: Text(widget.actorName), pinned: true, actions: buildFocusableAppBarActions()),
_buildActorHeader(),
...buildStateSlivers(),
if (items.isNotEmpty) buildFocusableGrid(items: items, onRefresh: updateItem),
],
),
),
return buildDetailScaffold(
slivers: [
CustomAppBar(title: Text(widget.actorName), pinned: true, actions: buildFocusableAppBarActions()),
_buildActorHeader(),
...buildStateSlivers(),
if (items.isNotEmpty) buildFocusableGrid(items: items, onRefresh: updateItem),
],
);
}
}