From 3649b67869bf14f7cbbf25385c2343e42fc4f92d Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Sun, 12 Jan 2025 14:22:54 +0600 Subject: [PATCH] refactor: use undraw for not_found component --- lib/components/fallbacks/not_found.dart | 39 ++++++++++++------------- lib/modules/player/player_queue.dart | 2 +- lib/pages/library/local_folder.dart | 18 ++++++++++-- pubspec.yaml | 1 + 4 files changed, 35 insertions(+), 25 deletions(-) diff --git a/lib/components/fallbacks/not_found.dart b/lib/components/fallbacks/not_found.dart index d35a4b50..9a994446 100644 --- a/lib/components/fallbacks/not_found.dart +++ b/lib/components/fallbacks/not_found.dart @@ -1,30 +1,27 @@ +import 'package:flutter_undraw/flutter_undraw.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart'; -import 'package:spotube/collections/assets.gen.dart'; +import 'package:shadcn_flutter/shadcn_flutter_extension.dart'; import 'package:spotube/extensions/context.dart'; class NotFound extends StatelessWidget { - final bool vertical; - const NotFound({super.key, this.vertical = false}); + const NotFound({super.key}); @override Widget build(BuildContext context) { - final widgets = [ - SizedBox( - height: 150, - width: 150, - child: Assets.emptyBox.image(), - ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text(context.l10n.nothing_found).large().semiBold(), - Text( - context.l10n.the_box_is_empty, - ).semiBold(), - ], - ), - ]; - return vertical ? Column(children: widgets) : Row(children: widgets); + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + Undraw( + illustration: UndrawIllustration.empty, + height: 200 * context.theme.scaling, + color: context.theme.colorScheme.primary, + ), + const Gap(10), + Text( + context.l10n.nothing_found, + textAlign: TextAlign.center, + ).muted().small() + ], + ); } } diff --git a/lib/modules/player/player_queue.dart b/lib/modules/player/player_queue.dart index a91c883d..fb19f880 100644 --- a/lib/modules/player/player_queue.dart +++ b/lib/modules/player/player_queue.dart @@ -81,7 +81,7 @@ class PlayerQueue extends HookConsumerWidget { ); if (tracks.isEmpty) { - return const NotFound(vertical: true); + return const NotFound(); } return Stack( diff --git a/lib/pages/library/local_folder.dart b/lib/pages/library/local_folder.dart index 23326c68..84873b84 100644 --- a/lib/pages/library/local_folder.dart +++ b/lib/pages/library/local_folder.dart @@ -4,6 +4,7 @@ import 'dart:math'; import 'package:collection/collection.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:flutter_undraw/flutter_undraw.dart'; import 'package:fuzzywuzzy/fuzzywuzzy.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart'; @@ -320,10 +321,21 @@ class LocalLibraryPage extends HookConsumerWidget { if (!trackSnapshot.isLoading && filteredTracks.isEmpty) { - return const Expanded( - child: Row( + return Expanded( + child: Column( mainAxisAlignment: MainAxisAlignment.center, - children: [NotFound()], + children: [ + Undraw( + illustration: UndrawIllustration.empty, + height: 200 * scale, + color: context.theme.colorScheme.primary, + ), + const Gap(10), + Text( + context.l10n.nothing_found, + textAlign: TextAlign.center, + ).muted().small() + ], ), ); } diff --git a/pubspec.yaml b/pubspec.yaml index 657de0c0..3aaa3395 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -184,6 +184,7 @@ flutter: - packages/flutter_undraw/assets/undraw/happy_music.svg - packages/flutter_undraw/assets/undraw/follow_me_drone.svg - packages/flutter_undraw/assets/undraw/taken.svg + - packages/flutter_undraw/assets/undraw/empty.svg fonts: - family: GeistSans fonts: