chore: enable sliding transition for queue, alternative source and lyrics page for small screen

This commit is contained in:
Kingkor Roy Tirtho 2025-03-06 23:04:04 +06:00
parent 677f95f266
commit a9586a64f2
5 changed files with 21 additions and 20 deletions

View File

@ -190,15 +190,24 @@ class AppRouter extends RootStackRouter {
),
],
),
AutoRoute(
CustomRoute(
transitionsBuilder: TransitionsBuilders.slideBottom,
durationInMilliseconds: 200,
reverseDurationInMilliseconds: 200,
path: "/player/queue",
page: PlayerQueueRoute.page,
),
AutoRoute(
CustomRoute(
transitionsBuilder: TransitionsBuilders.slideBottom,
durationInMilliseconds: 200,
reverseDurationInMilliseconds: 200,
path: "/player/sources",
page: PlayerTrackSourcesRoute.page,
),
AutoRoute(
CustomRoute(
transitionsBuilder: TransitionsBuilders.slideBottom,
durationInMilliseconds: 200,
reverseDurationInMilliseconds: 200,
path: "/player/lyrics",
page: PlayerLyricsRoute.page,
),

View File

@ -9,6 +9,7 @@ import 'package:scroll_to_index/scroll_to_index.dart';
import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:spotify/spotify.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/button/back_button.dart';
import 'package:spotube/components/fallbacks/not_found.dart';
import 'package:spotube/components/inter_scrollbar/inter_scrollbar.dart';
import 'package:spotube/components/track_tile/track_tile.dart';
@ -50,7 +51,7 @@ class PlayerQueue extends HookConsumerWidget {
@override
Widget build(BuildContext context, ref) {
final mediaQuery = MediaQuery.of(context);
final mediaQuery = MediaQuery.sizeOf(context);
final controller = useAutoScrollController();
final searchText = useState('');
@ -91,8 +92,7 @@ class PlayerQueue extends HookConsumerWidget {
final searchBar = ConstrainedBox(
constraints: BoxConstraints(
maxHeight: 40,
maxWidth:
mediaQuery.smAndDown ? mediaQuery.size.width - 40 : 300,
maxWidth: mediaQuery.smAndDown ? mediaQuery.width - 40 : 300,
),
child: TextField(
onChanged: (value) {
@ -157,7 +157,7 @@ class PlayerQueue extends HookConsumerWidget {
isSearching.value = !isSearching.value;
},
),
if (mediaQuery.mdAndUp || !isSearching.value) ...[
if (!isSearching.value) ...[
const SizedBox(width: 10),
Tooltip(
tooltip: TooltipContainer(
@ -170,6 +170,9 @@ class PlayerQueue extends HookConsumerWidget {
},
),
),
const Gap(5),
if (mediaQuery.smAndDown)
const BackButton(icon: SpotubeIcons.angleDown),
],
],
),

View File

@ -252,7 +252,7 @@ class SiblingTracksSheet extends HookConsumerWidget {
isSearching.value = true;
},
),
if (!floating) const BackButton(icon: SpotubeIcons.close)
if (!floating) const BackButton(icon: SpotubeIcons.angleDown)
] else ...[
if (preferences.audioSource == AudioSource.piped)
IconButton.outline(

View File

@ -48,7 +48,7 @@ class PlayerLyricsPage extends HookConsumerWidget {
AppBar(
leading: [tabbar],
trailing: const [
BackButton(icon: SpotubeIcons.close),
BackButton(icon: SpotubeIcons.angleDown),
],
),
],

View File

@ -1,9 +1,6 @@
import 'package:auto_route/annotations.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:spotube/collections/spotube_icons.dart';
import 'package:spotube/components/button/back_button.dart';
import 'package:spotube/extensions/context.dart';
import 'package:spotube/modules/player/player_queue.dart';
import 'package:spotube/provider/audio_player/audio_player.dart';
@ -18,14 +15,6 @@ class PlayerQueuePage extends HookConsumerWidget {
);
final playlistNotifier = ref.read(audioPlayerProvider.notifier);
return Scaffold(
headers: [
AppBar(
title: Text(context.l10n.queue),
trailing: const [
BackButton(icon: SpotubeIcons.close),
],
),
],
child: PlayerQueue.fromAudioPlayerNotifier(
floating: false,
playlist: playlist,