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