fix: console spam about useless Expanded

Signed-off-by: Blake Leonard <me@blakes.dev>
This commit is contained in:
Blake Leonard 2024-05-06 16:53:24 -04:00
parent 92bf2dd3a5
commit 628b5715ba
No known key found for this signature in database
GPG Key ID: 3B1965C22D07D9F6

View File

@ -285,108 +285,106 @@ class UserLocalTracks extends HookConsumerWidget {
onRefresh: () async { onRefresh: () async {
ref.invalidate(localTracksProvider); ref.invalidate(localTracksProvider);
}, },
child: Expanded( child: InterScrollbar(
child: InterScrollbar( controller: controller,
child: CustomScrollView(
controller: controller, controller: controller,
child: CustomScrollView( physics: const AlwaysScrollableScrollPhysics(),
controller: controller, slivers: [
physics: const AlwaysScrollableScrollPhysics(), for (var MapEntry(key: location, value: tracks) in groups.entries) ...[
slivers: [ SliverPadding(
for (var MapEntry(key: location, value: tracks) in groups.entries) ...[ padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
SliverPadding( sliver: SliverToBoxAdapter(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), child: Row(
sliver: SliverToBoxAdapter( children: [
child: Row( Text(preferences.downloadLocation == location ? context.l10n.downloads : location,
children: [ style: Theme.of(context).textTheme.titleLarge
Text(preferences.downloadLocation == location ? context.l10n.downloads : location, ),
style: Theme.of(context).textTheme.titleLarge const Expanded(child: SizedBox()),
if (preferences.downloadLocation != location) Tooltip(
message: context.l10n.remove_library_location,
child: IconButton(
icon: Icon(SpotubeIcons.folderRemove, color: Colors.red[400]),
onPressed: () => removeLocalLibraryLocation(location),
), ),
const Expanded(child: SizedBox()), ),
if (preferences.downloadLocation != location) Tooltip( ],
message: context.l10n.remove_library_location,
child: IconButton(
icon: Icon(SpotubeIcons.folderRemove, color: Colors.red[400]),
onPressed: () => removeLocalLibraryLocation(location),
),
),
],
),
), ),
), ),
HookBuilder( ),
key: ValueKey("LocalTracks\$$location"), HookBuilder(
builder: (context) { key: ValueKey("LocalTracks\$$location"),
final sortedTracks = useMemoized(() { builder: (context) {
return ServiceUtils.sortTracks(tracks, sortBy.value); final sortedTracks = useMemoized(() {
}, [sortBy.value, tracks]); return ServiceUtils.sortTracks(tracks, sortBy.value);
}, [sortBy.value, tracks]);
final filteredTracks = useMemoized(() {
if (searchController.text.isEmpty) { final filteredTracks = useMemoized(() {
return sortedTracks; if (searchController.text.isEmpty) {
} return sortedTracks;
return sortedTracks
.map((e) => (
weightedRatio(
"${e.name} - ${e.artists?.asString() ?? ""}",
searchController.text,
),
e,
))
.toList()
.sorted(
(a, b) => b.$1.compareTo(a.$1),
)
.where((e) => e.$1 > 50)
.map((e) => e.$2)
.toList()
.toList();
}, [searchController.text, sortedTracks]);
if (!trackSnapshot.isLoading && filteredTracks.isEmpty) {
return const SliverFillRemaining(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [NotFound()],
),
);
} }
return SliverSkeletonizer( return sortedTracks
enabled: trackSnapshot.isLoading, .map((e) => (
child: SliverList.builder( weightedRatio(
itemCount: "${e.name} - ${e.artists?.asString() ?? ""}",
trackSnapshot.isLoading ? 5 : filteredTracks.length, searchController.text,
itemBuilder: (context, index) { ),
if (trackSnapshot.isLoading) { e,
return TrackTile( ))
playlist: playlist, .toList()
track: FakeData.track, .sorted(
index: index, (a, b) => b.$1.compareTo(a.$1),
); )
} .where((e) => e.$1 > 50)
.map((e) => e.$2)
final track = filteredTracks[index]; .toList()
return TrackTile( .toList();
index: index, }, [searchController.text, sortedTracks]);
playlist: playlist,
track: track, if (!trackSnapshot.isLoading && filteredTracks.isEmpty) {
userPlaylist: false, return const SliverFillRemaining(
onTap: () async { child: Row(
await playLocalTracks( mainAxisAlignment: MainAxisAlignment.center,
ref, children: [NotFound()],
sortedTracks,
currentTrack: track,
);
},
);
},
), ),
); );
} }
) return SliverSkeletonizer(
] enabled: trackSnapshot.isLoading,
child: SliverList.builder(
itemCount:
trackSnapshot.isLoading ? 5 : filteredTracks.length,
itemBuilder: (context, index) {
if (trackSnapshot.isLoading) {
return TrackTile(
playlist: playlist,
track: FakeData.track,
index: index,
);
}
final track = filteredTracks[index];
return TrackTile(
index: index,
playlist: playlist,
track: track,
userPlaylist: false,
onTap: () async {
await playLocalTracks(
ref,
sortedTracks,
currentTrack: track,
);
},
);
},
),
);
}
)
] ]
) ]
), )
), ),
), ),
), ),