mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-18 01:35:17 +00:00
Compare commits
7 Commits
1705028915
...
10d6714383
Author | SHA1 | Date | |
---|---|---|---|
![]() |
10d6714383 | ||
![]() |
ccbac85171 | ||
![]() |
50123b235c | ||
![]() |
42e954428b | ||
![]() |
8c1337d1fc | ||
![]() |
94e704087f | ||
![]() |
8e287ab1e5 |
@ -90,11 +90,25 @@ class TrackOptions extends HookConsumerWidget {
|
||||
BuildContext context,
|
||||
Track track,
|
||||
) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (context) => PlaylistAddTrackDialog(
|
||||
tracks: [track],
|
||||
openFromPlaylist: playlistId,
|
||||
/// showDialog doesn't work for some reason. So we have to
|
||||
/// manually push a Dialog Route in the Navigator to get it working
|
||||
Navigator.push(
|
||||
context,
|
||||
DialogRoute(
|
||||
alignment: Alignment.bottomCenter,
|
||||
transitionBuilder: (context, animation, secondaryAnimation, child) {
|
||||
return FadeTransition(opacity: animation, child: child);
|
||||
},
|
||||
context: context,
|
||||
barrierColor: Colors.black.withValues(alpha: 0.5),
|
||||
builder: (context) {
|
||||
return Center(
|
||||
child: PlaylistAddTrackDialog(
|
||||
tracks: [track],
|
||||
openFromPlaylist: playlistId,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import 'package:spotube/provider/history/recent.dart';
|
||||
|
||||
class HomeRecentlyPlayedSection extends HookConsumerWidget {
|
||||
const HomeRecentlyPlayedSection({super.key});
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, ref) {
|
||||
final history = ref.watch(recentlyPlayedItems);
|
||||
@ -20,17 +20,20 @@ class HomeRecentlyPlayedSection extends HookConsumerWidget {
|
||||
return const SizedBox();
|
||||
}
|
||||
|
||||
final uniqueItems = <dynamic>{};
|
||||
final filteredItems = [
|
||||
for (final item in historyData)
|
||||
if (item.playlist != null && item.playlist?.id != null && uniqueItems.add(item.playlist!.id!))
|
||||
item.playlist
|
||||
else if (item.album != null && item.album?.id != null && uniqueItems.add(item.album?.id))
|
||||
item.album
|
||||
];
|
||||
|
||||
return Skeletonizer(
|
||||
enabled: history.isLoading,
|
||||
child: HorizontalPlaybuttonCardView(
|
||||
title: Text(context.l10n.recently_played),
|
||||
items: [
|
||||
for (final item in historyData)
|
||||
if (item.playlist != null)
|
||||
item.playlist
|
||||
else if (item.album != null)
|
||||
item.album
|
||||
],
|
||||
items: filteredItems,
|
||||
hasNextPage: false,
|
||||
isLoadingNextPage: false,
|
||||
onFetchMore: () {},
|
||||
|
40
pubspec.yaml
40
pubspec.yaml
@ -193,46 +193,6 @@ flutter:
|
||||
- packages/flutter_undraw/assets/undraw/empty.svg
|
||||
- packages/flutter_undraw/assets/undraw/no_data.svg
|
||||
fonts:
|
||||
- family: GeistSans
|
||||
fonts:
|
||||
- asset: packages/shadcn_flutter/fonts/Geist-Black.otf
|
||||
weight: 800
|
||||
- asset: packages/shadcn_flutter/fonts/Geist-Bold.otf
|
||||
weight: 700
|
||||
- asset: packages/shadcn_flutter/fonts/Geist-Light.otf
|
||||
weight: 300
|
||||
- asset: packages/shadcn_flutter/fonts/Geist-Medium.otf
|
||||
weight: 500
|
||||
- asset: packages/shadcn_flutter/fonts/Geist-SemiBold.otf
|
||||
weight: 600
|
||||
- asset: packages/shadcn_flutter/fonts/Geist-Thin.otf
|
||||
weight: 100
|
||||
- asset: packages/shadcn_flutter/fonts/Geist-UltraBlack.otf
|
||||
weight: 900
|
||||
- asset: packages/shadcn_flutter/fonts/Geist-UltraLight.otf
|
||||
weight: 200
|
||||
- asset: packages/shadcn_flutter/fonts/Geist-Regular.otf
|
||||
weight: 400
|
||||
- family: GeistMono
|
||||
fonts:
|
||||
- asset: packages/shadcn_flutter/fonts/GeistMono-Black.otf
|
||||
weight: 800
|
||||
- asset: packages/shadcn_flutter/fonts/GeistMono-Bold.otf
|
||||
weight: 700
|
||||
- asset: packages/shadcn_flutter/fonts/GeistMono-Light.otf
|
||||
weight: 300
|
||||
- asset: packages/shadcn_flutter/fonts/GeistMono-Medium.otf
|
||||
weight: 500
|
||||
- asset: packages/shadcn_flutter/fonts/GeistMono-Regular.otf
|
||||
weight: 400
|
||||
- asset: packages/shadcn_flutter/fonts/GeistMono-SemiBold.otf
|
||||
weight: 600
|
||||
- asset: packages/shadcn_flutter/fonts/GeistMono-Thin.otf
|
||||
weight: 100
|
||||
- asset: packages/shadcn_flutter/fonts/GeistMono-UltraBlack.otf
|
||||
weight: 900
|
||||
- asset: packages/shadcn_flutter/fonts/GeistMono-UltraLight.otf
|
||||
weight: 200
|
||||
- family: RadixIcons
|
||||
fonts:
|
||||
- asset: packages/shadcn_flutter/icons/RadixIcons.otf
|
||||
|
Loading…
Reference in New Issue
Block a user