fix(libraries): restore top-row focus escape

close #1354
This commit is contained in:
edde746
2026-06-16 16:03:18 +02:00
parent 618251b8eb
commit d49bd20fa0
2 changed files with 18 additions and 2 deletions
@@ -140,7 +140,12 @@ class _LibraryCollectionsTabState extends BaseLibraryTabState<MediaItem, Library
padding: _effectivePadding,
sliver: SliverList.builder(
itemCount: totalSize,
itemBuilder: (context, index) => _buildMediaCardItem(index, isFirstColumn: true, disableScale: true),
itemBuilder: (context, index) => _buildMediaCardItem(
index,
isFirstRow: index == 0,
isFirstColumn: true,
disableScale: true,
),
),
);
}
@@ -161,6 +166,7 @@ class _LibraryCollectionsTabState extends BaseLibraryTabState<MediaItem, Library
itemCount: totalSize,
itemBuilder: (context, index) => _buildMediaCardItem(
index,
isFirstRow: GridSizeCalculator.isFirstRow(index, geometry.columnCount),
isFirstColumn: GridSizeCalculator.isFirstColumn(index, geometry.columnCount),
fullBleedImage: fullCardLayout,
),
@@ -172,6 +178,7 @@ class _LibraryCollectionsTabState extends BaseLibraryTabState<MediaItem, Library
Widget _buildMediaCardItem(
int index, {
required bool isFirstRow,
required bool isFirstColumn,
bool disableScale = false,
bool fullBleedImage = false,
@@ -189,6 +196,7 @@ class _LibraryCollectionsTabState extends BaseLibraryTabState<MediaItem, Library
disableScale: disableScale,
fullBleedImage: fullBleedImage,
onListRefresh: loadItems,
onNavigateUp: isFirstRow ? widget.onBack : null,
onBack: widget.onBack,
onNavigateLeft: isFirstColumn ? _navigateToSidebar : null,
);
@@ -142,7 +142,12 @@ class _LibraryPlaylistsTabState extends BaseLibraryTabState<MediaPlaylist, Libra
padding: _effectivePadding,
sliver: SliverList.builder(
itemCount: totalSize,
itemBuilder: (context, index) => _buildPlaylistCard(index, isFirstColumn: true, disableScale: true),
itemBuilder: (context, index) => _buildPlaylistCard(
index,
isFirstRow: index == 0,
isFirstColumn: true,
disableScale: true,
),
),
);
}
@@ -163,6 +168,7 @@ class _LibraryPlaylistsTabState extends BaseLibraryTabState<MediaPlaylist, Libra
itemCount: totalSize,
itemBuilder: (context, index) => _buildPlaylistCard(
index,
isFirstRow: GridSizeCalculator.isFirstRow(index, geometry.columnCount),
isFirstColumn: GridSizeCalculator.isFirstColumn(index, geometry.columnCount),
fullBleedImage: fullCardLayout,
),
@@ -174,6 +180,7 @@ class _LibraryPlaylistsTabState extends BaseLibraryTabState<MediaPlaylist, Libra
Widget _buildPlaylistCard(
int index, {
required bool isFirstRow,
required bool isFirstColumn,
bool disableScale = false,
bool fullBleedImage = false,
@@ -191,6 +198,7 @@ class _LibraryPlaylistsTabState extends BaseLibraryTabState<MediaPlaylist, Libra
disableScale: disableScale,
fullBleedImage: fullBleedImage,
onListRefresh: loadItems,
onNavigateUp: isFirstRow ? widget.onBack : null,
onBack: widget.onBack,
onNavigateLeft: isFirstColumn ? _navigateToSidebar : null,
);