mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-12-08 16:27:31 +00:00
fix: console spam about useless Expanded
Signed-off-by: Blake Leonard <me@blakes.dev>
This commit is contained in:
parent
92bf2dd3a5
commit
628b5715ba
@ -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(() {
|
final filteredTracks = useMemoized(() {
|
||||||
if (searchController.text.isEmpty) {
|
if (searchController.text.isEmpty) {
|
||||||
return sortedTracks;
|
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)
|
||||||
|
.toList()
|
||||||
|
.toList();
|
||||||
|
}, [searchController.text, sortedTracks]);
|
||||||
|
|
||||||
final track = filteredTracks[index];
|
if (!trackSnapshot.isLoading && filteredTracks.isEmpty) {
|
||||||
return TrackTile(
|
return const SliverFillRemaining(
|
||||||
index: index,
|
child: Row(
|
||||||
playlist: playlist,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
track: track,
|
children: [NotFound()],
|
||||||
userPlaylist: false,
|
|
||||||
onTap: () async {
|
|
||||||
await playLocalTracks(
|
|
||||||
ref,
|
|
||||||
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,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
)
|
||||||
]
|
]
|
||||||
)
|
]
|
||||||
),
|
)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user