From 0b20cb895ecb4bd6a3156afea7fd53e8b2e5e69a Mon Sep 17 00:00:00 2001 From: zarzet Date: Fri, 27 Mar 2026 04:35:22 +0700 Subject: [PATCH] fix: conditionally show cover header in artist skeleton and add showCoverHeader param to ArtistScreenSkeleton --- lib/screens/artist_screen.dart | 10 +++++++++- lib/widgets/animation_utils.dart | 14 +++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/screens/artist_screen.dart b/lib/screens/artist_screen.dart index 401a90a..c21825c 100644 --- a/lib/screens/artist_screen.dart +++ b/lib/screens/artist_screen.dart @@ -492,7 +492,15 @@ class _ArtistScreenState extends ConsumerState { hasDiscography: hasDiscography, ), if (_isLoadingDiscography) - const SliverToBoxAdapter(child: ArtistScreenSkeleton()), + SliverToBoxAdapter( + child: ArtistScreenSkeleton( + showCoverHeader: + (_headerImageUrl ?? + widget.headerImageUrl ?? + widget.coverUrl) == + null, + ), + ), if (_error != null) SliverToBoxAdapter( child: Padding( diff --git a/lib/widgets/animation_utils.dart b/lib/widgets/animation_utils.dart index cfecb73..c52c0b0 100644 --- a/lib/widgets/animation_utils.dart +++ b/lib/widgets/animation_utils.dart @@ -443,11 +443,13 @@ class GridSkeleton extends StatelessWidget { class ArtistScreenSkeleton extends StatelessWidget { final int popularCount; final int albumCount; + final bool showCoverHeader; const ArtistScreenSkeleton({ super.key, this.popularCount = 5, this.albumCount = 5, + this.showCoverHeader = true, }); @override @@ -459,11 +461,13 @@ class ArtistScreenSkeleton extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - SkeletonBox( - width: screenWidth, - height: screenWidth * 0.75, - borderRadius: 0, - ), + if (showCoverHeader) ...[ + SkeletonBox( + width: screenWidth, + height: screenWidth * 0.75, + borderRadius: 0, + ), + ], Padding( padding: const EdgeInsets.fromLTRB(16, 16, 16, 4), child: SkeletonBox(width: 180, height: 24, borderRadius: 4),