mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55:18 +00:00
feat: loading indicator for genre and personalized pages
This commit is contained in:
parent
5c5dbf69ec
commit
ffe8d9ca6d
@ -1,7 +1,6 @@
|
||||
import 'package:catcher/catcher.dart';
|
||||
import 'package:device_preview/device_preview.dart';
|
||||
import 'package:fl_query/fl_query.dart';
|
||||
import 'package:fl_query_devtools/fl_query_devtools.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
@ -73,6 +73,9 @@ class GenrePage extends HookConsumerWidget {
|
||||
searchController: searchController,
|
||||
searchFocus: searchFocus,
|
||||
),
|
||||
if (!categoriesQuery.hasPageData)
|
||||
const ShimmerCategories()
|
||||
else
|
||||
Expanded(
|
||||
child: ListView.builder(
|
||||
controller: scrollController,
|
||||
|
@ -6,6 +6,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:spotify/spotify.dart';
|
||||
import 'package:spotube/components/album/album_card.dart';
|
||||
import 'package:spotube/components/playlist/playlist_card.dart';
|
||||
import 'package:spotube/components/shared/shimmers/shimmer_categories.dart';
|
||||
import 'package:spotube/components/shared/shimmers/shimmer_playbutton_card.dart';
|
||||
import 'package:spotube/components/shared/waypoint.dart';
|
||||
import 'package:spotube/extensions/context.dart';
|
||||
@ -107,12 +108,9 @@ class PersonalizedPage extends HookConsumerWidget {
|
||||
final madeForUser = useQueries.views.get(ref, "made-for-x-hub");
|
||||
|
||||
final newReleases = useQueries.album.newReleases(ref);
|
||||
final userArtists = useQueries.artist
|
||||
.followedByMeAll(ref)
|
||||
.data
|
||||
?.map((s) => s.id!)
|
||||
.toList() ??
|
||||
const [];
|
||||
final userArtistsQuery = useQueries.artist.followedByMeAll(ref);
|
||||
final userArtists =
|
||||
userArtistsQuery.data?.map((s) => s.id!).toList() ?? const [];
|
||||
|
||||
final albums = useMemoized(
|
||||
() => newReleases.pages
|
||||
@ -128,13 +126,16 @@ class PersonalizedPage extends HookConsumerWidget {
|
||||
|
||||
return ListView(
|
||||
children: [
|
||||
if (!featuredPlaylistsQuery.hasPageData)
|
||||
const ShimmerCategories()
|
||||
else
|
||||
PersonalizedItemCard(
|
||||
playlists: playlists,
|
||||
title: context.l10n.featured,
|
||||
hasNextPage: featuredPlaylistsQuery.hasNextPage,
|
||||
onFetchMore: featuredPlaylistsQuery.fetchNext,
|
||||
),
|
||||
if (auth != null)
|
||||
if (auth != null && newReleases.hasPageData && userArtistsQuery.hasData)
|
||||
PersonalizedItemCard(
|
||||
albums: albums,
|
||||
title: context.l10n.new_releases,
|
||||
|
Loading…
Reference in New Issue
Block a user