refactor: use undraw for not_found component

This commit is contained in:
Kingkor Roy Tirtho 2025-01-12 14:22:54 +06:00
parent b8ffb9b75f
commit 3649b67869
4 changed files with 35 additions and 25 deletions

View File

@ -1,30 +1,27 @@
import 'package:flutter_undraw/flutter_undraw.dart';
import 'package:shadcn_flutter/shadcn_flutter.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'; import 'package:spotube/extensions/context.dart';
class NotFound extends StatelessWidget { class NotFound extends StatelessWidget {
final bool vertical; const NotFound({super.key});
const NotFound({super.key, this.vertical = false});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final widgets = [ return Column(
SizedBox( mainAxisSize: MainAxisSize.min,
height: 150, children: [
width: 150, Undraw(
child: Assets.emptyBox.image(), illustration: UndrawIllustration.empty,
), height: 200 * context.theme.scaling,
Column( color: context.theme.colorScheme.primary,
crossAxisAlignment: CrossAxisAlignment.start, ),
mainAxisAlignment: MainAxisAlignment.center, const Gap(10),
children: [ Text(
Text(context.l10n.nothing_found).large().semiBold(), context.l10n.nothing_found,
Text( textAlign: TextAlign.center,
context.l10n.the_box_is_empty, ).muted().small()
).semiBold(), ],
], );
),
];
return vertical ? Column(children: widgets) : Row(children: widgets);
} }
} }

View File

@ -81,7 +81,7 @@ class PlayerQueue extends HookConsumerWidget {
); );
if (tracks.isEmpty) { if (tracks.isEmpty) {
return const NotFound(vertical: true); return const NotFound();
} }
return Stack( return Stack(

View File

@ -4,6 +4,7 @@ import 'dart:math';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:file_picker/file_picker.dart'; import 'package:file_picker/file_picker.dart';
import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_undraw/flutter_undraw.dart';
import 'package:fuzzywuzzy/fuzzywuzzy.dart'; import 'package:fuzzywuzzy/fuzzywuzzy.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shadcn_flutter/shadcn_flutter.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart';
@ -320,10 +321,21 @@ class LocalLibraryPage extends HookConsumerWidget {
if (!trackSnapshot.isLoading && if (!trackSnapshot.isLoading &&
filteredTracks.isEmpty) { filteredTracks.isEmpty) {
return const Expanded( return Expanded(
child: Row( child: Column(
mainAxisAlignment: MainAxisAlignment.center, 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()
],
), ),
); );
} }

View File

@ -184,6 +184,7 @@ flutter:
- packages/flutter_undraw/assets/undraw/happy_music.svg - packages/flutter_undraw/assets/undraw/happy_music.svg
- packages/flutter_undraw/assets/undraw/follow_me_drone.svg - packages/flutter_undraw/assets/undraw/follow_me_drone.svg
- packages/flutter_undraw/assets/undraw/taken.svg - packages/flutter_undraw/assets/undraw/taken.svg
- packages/flutter_undraw/assets/undraw/empty.svg
fonts: fonts:
- family: GeistSans - family: GeistSans
fonts: fonts: