bug 2344: Bottom Overflow in Browse & Local Library on Desktop

- Wrapped `Wrap` in `Flexible` to prevent overflow issues inside `Stack`
- Now the folder path text adapts better to different screen sizes
- Improved overall UI consistency and responsiveness

Tested visually only on **Linux Desktop**

Fixes #2344
https://github.com/KRTirtho/spotube/issues/2344
This commit is contained in:
Gustavo Moreno 2025-02-26 16:14:55 +01:00
parent 227909787d
commit 9163f1abe0

View File

@ -99,22 +99,26 @@ class LocalFolderItem extends HookConsumerWidget {
itemCount: tracks.length, itemCount: tracks.length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
final track = tracks[index]; final track = tracks[index];
return UniversalImage( return Expanded(
child: UniversalImage(
path: (track.album?.images).asUrlString( path: (track.album?.images).asUrlString(
placeholder: ImagePlaceholder.albumArt, placeholder: ImagePlaceholder.albumArt,
), ),
fit: BoxFit.cover, fit: BoxFit.cover,
),
); );
}, },
), ),
), ),
const Gap(8), const Gap(8),
Stack( Expanded(
child: Stack(
children: [ children: [
Column( Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
Center( Center(
child: Flexible(
child: Text( child: Text(
isDownloadFolder isDownloadFolder
? context.l10n.downloads ? context.l10n.downloads
@ -127,7 +131,9 @@ class LocalFolderItem extends HookConsumerWidget {
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
), ),
), ),
Wrap( ),
Flexible(
child: Wrap(
spacing: 2, spacing: 2,
runSpacing: 2, runSpacing: 2,
children: [ children: [
@ -137,13 +143,14 @@ class LocalFolderItem extends HookConsumerWidget {
TextSpan( TextSpan(
children: [ children: [
if (index != 0) const TextSpan(text: "/ "), if (index != 0) const TextSpan(text: "/ "),
TextSpan(text: segment), TextSpan(text: segment)
], ],
), ),
maxLines: 2, maxLines: 2,
).xSmall().muted(), ).xSmall().muted(),
], ],
), ),
),
], ],
), ),
if (!isDownloadFolder && !isCacheFolder) if (!isDownloadFolder && !isCacheFolder)
@ -161,8 +168,8 @@ class LocalFolderItem extends HookConsumerWidget {
MenuButton( MenuButton(
leading: Icon(SpotubeIcons.folderRemove, leading: Icon(SpotubeIcons.folderRemove,
color: colorScheme.destructive), color: colorScheme.destructive),
child: child: Text(
Text(context.l10n.remove_library_location), context.l10n.remove_library_location),
onPressed: (context) { onPressed: (context) {
final libraryLocations = ref final libraryLocations = ref
.read(userPreferencesProvider) .read(userPreferencesProvider)
@ -185,6 +192,7 @@ class LocalFolderItem extends HookConsumerWidget {
), ),
], ],
), ),
),
const Spacer(), const Spacer(),
], ],
), ),