mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-12 23:45:18 +00:00
chore: fix where loading images not working
This commit is contained in:
parent
4c3718467d
commit
5c6cb770a8
@ -34,25 +34,38 @@ class PresentationStateNotifier
|
||||
extends AutoDisposeFamilyNotifier<PresentationState, Object> {
|
||||
@override
|
||||
PresentationState build(collection) {
|
||||
final isPlaylist = arg is PlaylistSimple;
|
||||
|
||||
if ((isPlaylist && (arg as PlaylistSimple).id != "user-liked-tracks") ||
|
||||
arg is AlbumSimple) {
|
||||
ref.listen(
|
||||
isPlaylist
|
||||
? playlistTracksProvider((arg as PlaylistSimple).id!)
|
||||
: albumTracksProvider((arg as AlbumSimple)),
|
||||
(previous, next) {
|
||||
next.whenData((value) {
|
||||
state = state.copyWith(
|
||||
presentationTracks: ServiceUtils.sortTracks(
|
||||
value.items,
|
||||
state.sortBy,
|
||||
),
|
||||
);
|
||||
});
|
||||
},
|
||||
);
|
||||
if (arg case PlaylistSimple() || AlbumSimple()) {
|
||||
if (isSavedTrackPlaylist) {
|
||||
ref.listen(
|
||||
likedTracksProvider,
|
||||
(previous, next) {
|
||||
next.whenData((value) {
|
||||
state = state.copyWith(
|
||||
presentationTracks: ServiceUtils.sortTracks(
|
||||
value,
|
||||
state.sortBy,
|
||||
),
|
||||
);
|
||||
});
|
||||
},
|
||||
);
|
||||
} else {
|
||||
ref.listen(
|
||||
arg is PlaylistSimple
|
||||
? playlistTracksProvider((arg as PlaylistSimple).id!)
|
||||
: albumTracksProvider((arg as AlbumSimple)),
|
||||
(previous, next) {
|
||||
next.whenData((value) {
|
||||
state = state.copyWith(
|
||||
presentationTracks: ServiceUtils.sortTracks(
|
||||
value.items,
|
||||
state.sortBy,
|
||||
),
|
||||
);
|
||||
});
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return PresentationState(
|
||||
@ -62,6 +75,10 @@ class PresentationStateNotifier
|
||||
);
|
||||
}
|
||||
|
||||
bool get isSavedTrackPlaylist =>
|
||||
arg is PlaylistSimple &&
|
||||
(arg as PlaylistSimple).id == "user-liked-tracks";
|
||||
|
||||
List<Track> get tracks {
|
||||
assert(
|
||||
arg is PlaylistSimple || arg is AlbumSimple,
|
||||
@ -69,8 +86,7 @@ class PresentationStateNotifier
|
||||
);
|
||||
|
||||
final isPlaylist = arg is PlaylistSimple;
|
||||
final isSavedTrackPlaylist =
|
||||
isPlaylist && (arg as PlaylistSimple).id == "user-liked-tracks";
|
||||
|
||||
final tracks = switch ((isPlaylist, isSavedTrackPlaylist)) {
|
||||
(true, true) => ref.read(likedTracksProvider).asData?.value,
|
||||
(true, false) => ref
|
||||
|
@ -1,5 +1,3 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
@ -35,29 +33,6 @@ class HomeGenresSection extends HookConsumerWidget {
|
||||
[categoriesQuery.asData?.value],
|
||||
);
|
||||
final controller = useMemoized(() => CarouselController(), []);
|
||||
final interactedRef = useRef(false);
|
||||
|
||||
useEffect(() {
|
||||
int times = 0;
|
||||
final timer = Timer.periodic(
|
||||
const Duration(seconds: 5),
|
||||
(timer) {
|
||||
if (times > 5 || interactedRef.value) {
|
||||
timer.cancel();
|
||||
return;
|
||||
}
|
||||
controller.animateNext(
|
||||
const Duration(seconds: 2),
|
||||
);
|
||||
times++;
|
||||
},
|
||||
);
|
||||
|
||||
return () {
|
||||
timer.cancel();
|
||||
controller.dispose();
|
||||
};
|
||||
}, []);
|
||||
|
||||
return SliverList.list(
|
||||
children: [
|
||||
@ -123,7 +98,6 @@ class HomeGenresSection extends HookConsumerWidget {
|
||||
controller.animatePrevious(
|
||||
const Duration(seconds: 1),
|
||||
);
|
||||
interactedRef.value = true;
|
||||
},
|
||||
),
|
||||
),
|
||||
@ -144,7 +118,6 @@ class HomeGenresSection extends HookConsumerWidget {
|
||||
controller.animateNext(
|
||||
const Duration(seconds: 1),
|
||||
);
|
||||
interactedRef.value = true;
|
||||
},
|
||||
),
|
||||
),
|
||||
|
@ -82,7 +82,7 @@ class UserArtistsPage extends HookConsumerWidget {
|
||||
),
|
||||
),
|
||||
const SliverGap(10),
|
||||
if (filteredArtists.isNotEmpty)
|
||||
if (filteredArtists.isNotEmpty || artistQuery.isLoading)
|
||||
SliverLayoutBuilder(builder: (context, constrains) {
|
||||
return SliverGrid.builder(
|
||||
itemCount: filteredArtists.length + 1,
|
||||
|
@ -26,7 +26,7 @@ class LikedPlaylistPage extends HookConsumerWidget {
|
||||
image: "assets/liked-tracks.jpg",
|
||||
pagination: PaginationProps(
|
||||
hasNextPage: false,
|
||||
isLoading: false,
|
||||
isLoading: likedTracks.isLoading,
|
||||
onFetchMore: () {},
|
||||
onFetchAll: () async {
|
||||
return tracks.toList();
|
||||
|
Loading…
Reference in New Issue
Block a user