chore: include interscrollbar in left out pages

This commit is contained in:
Kingkor Roy Tirtho 2023-10-01 13:24:36 +06:00
parent a3250882df
commit 8ca1aa38a2
5 changed files with 641 additions and 619 deletions

View File

@ -7,6 +7,7 @@ import 'package:spotify/spotify.dart' hide Offset;
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/shared/image/universal_image.dart';
import 'package:spotube/components/shared/inter_scrollbar/inter_scrollbar.dart';
import 'package:spotube/extensions/constrains.dart';
import 'package:spotube/extensions/context.dart';
import 'package:spotube/extensions/duration.dart';
@ -17,7 +18,6 @@ import 'package:spotube/provider/proxy_playlist/proxy_playlist_provider.dart';
import 'package:spotube/provider/user_preferences_provider.dart';
import 'package:spotube/provider/youtube_provider.dart';
import 'package:spotube/services/youtube/youtube.dart';
import 'package:spotube/utils/primitive_utils.dart';
import 'package:spotube/utils/service_utils.dart';
import 'package:spotube/utils/type_conversion_utils.dart';
@ -202,6 +202,7 @@ class SiblingTracksSheet extends HookConsumerWidget {
duration: const Duration(milliseconds: 300),
transitionBuilder: (child, animation) =>
FadeTransition(opacity: animation, child: child),
child: InterScrollbar(
child: switch (isSearching.value) {
false => ListView.builder(
itemCount: siblings.length,
@ -220,10 +221,12 @@ class SiblingTracksSheet extends HookConsumerWidget {
child: CircularProgressIndicator());
}
return ListView.builder(
return InterScrollbar(
child: ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (context, index) =>
itemBuilder(snapshot.data![index]),
),
);
},
),
@ -234,6 +237,7 @@ class SiblingTracksSheet extends HookConsumerWidget {
),
),
),
),
);
}
}

View File

@ -7,6 +7,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:spotify/spotify.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/shared/inter_scrollbar/inter_scrollbar.dart';
import 'package:spotube/components/shared/shimmers/shimmer_artist_profile.dart';
import 'package:spotube/components/shared/page_window_title_bar.dart';
import 'package:spotube/components/shared/track_table/track_tile.dart';
@ -90,7 +91,9 @@ class ArtistPage extends HookConsumerWidget {
BlacklistedElement.artist(artistId, data.name!),
);
return SingleChildScrollView(
return InterScrollbar(
controller: parentScrollController,
child: SingleChildScrollView(
controller: parentScrollController,
child: SafeArea(
child: Column(
@ -213,14 +216,16 @@ class ArtistPage extends HookConsumerWidget {
return const SizedBox(
height: 20,
width: 20,
child: CircularProgressIndicator(),
child:
CircularProgressIndicator(),
);
}
if (isFollowingQuery.data!) {
return OutlinedButton(
onPressed: followUnfollow,
child: Text(context.l10n.following),
child:
Text(context.l10n.following),
);
}
@ -268,7 +273,8 @@ class ArtistPage extends HookConsumerWidget {
IconButton(
icon: const Icon(SpotubeIcons.share),
onPressed: () async {
if (data.externalUrls?.spotify != null) {
if (data.externalUrls?.spotify !=
null) {
await Clipboard.setData(
ClipboardData(
text: data.externalUrls!.spotify!,
@ -326,8 +332,8 @@ class ArtistPage extends HookConsumerWidget {
if (!isPlaylistPlaying) {
playlistNotifier.load(
tracks,
initialIndex: tracks
.indexWhere((s) => s.id == currentTrack?.id),
initialIndex: tracks.indexWhere(
(s) => s.id == currentTrack?.id),
autoPlay: true,
);
} else if (isPlaylistPlaying &&
@ -379,7 +385,8 @@ class ArtistPage extends HookConsumerWidget {
color: Colors.white,
),
style: IconButton.styleFrom(
backgroundColor: theme.colorScheme.primary,
backgroundColor:
theme.colorScheme.primary,
),
onPressed: () =>
playPlaylist(topTracks.toList()),
@ -451,6 +458,7 @@ class ArtistPage extends HookConsumerWidget {
],
),
),
),
);
},
),

View File

@ -9,6 +9,7 @@ import 'package:spotify/spotify.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/album/album_card.dart';
import 'package:spotube/components/shared/dialogs/prompt_dialog.dart';
import 'package:spotube/components/shared/inter_scrollbar/inter_scrollbar.dart';
import 'package:spotube/components/shared/shimmers/shimmer_playbutton_card.dart';
import 'package:spotube/components/shared/fallbacks/anonymous_fallback.dart';
import 'package:spotube/components/shared/page_window_title_bar.dart';
@ -103,7 +104,8 @@ class SearchPage extends HookConsumerWidget {
}
}
return SingleChildScrollView(
return InterScrollbar(
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 8),
child: SafeArea(
@ -313,7 +315,8 @@ class SearchPage extends HookConsumerWidget {
...albums.mapIndexed((i, album) {
if (i == albums.length - 1 &&
searchAlbum.hasNextPage) {
return const ShimmerPlaybuttonCard(count: 1);
return const ShimmerPlaybuttonCard(
count: 1);
}
return AlbumCard(
TypeConversionUtils.simpleAlbum_X_Album(
@ -340,6 +343,7 @@ class SearchPage extends HookConsumerWidget {
),
),
),
),
);
},
);

View File

@ -5,6 +5,7 @@ import 'package:fuzzywuzzy/fuzzywuzzy.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/shared/inter_scrollbar/inter_scrollbar.dart';
import 'package:spotube/components/shared/page_window_title_bar.dart';
import 'package:spotube/extensions/context.dart';
import 'package:spotube/provider/blacklist_provider.dart';
@ -56,7 +57,8 @@ class BlackListPage extends HookConsumerWidget {
),
),
),
ListView.builder(
InterScrollbar(
child: ListView.builder(
shrinkWrap: true,
itemCount: filteredBlacklist.length,
itemBuilder: (context, index) {
@ -76,6 +78,7 @@ class BlackListPage extends HookConsumerWidget {
);
},
),
),
],
),
);

View File

@ -5,6 +5,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/settings/section_card_with_heading.dart';
import 'package:spotube/components/shared/inter_scrollbar/inter_scrollbar.dart';
import 'package:spotube/components/shared/page_window_title_bar.dart';
import 'package:spotube/extensions/context.dart';
import 'package:spotube/models/logger.dart';
@ -91,6 +92,7 @@ class LogsPage extends HookWidget {
],
),
body: SafeArea(
child: InterScrollbar(
child: ListView.builder(
itemCount: logs.value.length,
itemBuilder: (context, index) {
@ -134,6 +136,7 @@ class LogsPage extends HookWidget {
},
),
),
),
);
}
}