From a921bcbcb4be11a91a49610d299cb273cf41b3ca Mon Sep 17 00:00:00 2001 From: franzap <_@franzap.com> Date: Tue, 28 May 2024 12:44:47 -0300 Subject: [PATCH] Show no results label --- lib/screens/search_screen.dart | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/screens/search_screen.dart b/lib/screens/search_screen.dart index a239a3c..fc6dc80 100644 --- a/lib/screens/search_screen.dart +++ b/lib/screens/search_screen.dart @@ -90,7 +90,16 @@ class SearchScreen extends HookConsumerWidget { crossAxisAlignment: CrossAxisAlignment.start, key: UniqueKey(), children: [ - if (state.hasValue && state.value!.isNotEmpty) + if ((state.value?.isEmpty ?? false) && !state.isLoading) + Padding( + padding: const EdgeInsets.only(top: 16), + child: Center( + child: Text( + 'No results for ${ref.read(searchQueryProvider)}', + style: TextStyle(fontSize: 16), + )), + ), + if (state.value?.isNotEmpty ?? false) for (final app in state.value!) AppCard(app: app), Gap(20), CategoriesContainer(), @@ -239,17 +248,17 @@ class LatestReleasesContainer extends HookConsumerWidget { final searchQueryProvider = StateProvider((ref) => null); final searchResultProvider = - AsyncNotifierProvider>( + AsyncNotifierProvider?>( SearchResultNotifier.new); -class SearchResultNotifier extends AsyncNotifier> { +class SearchResultNotifier extends AsyncNotifier?> { @override - Future> build() async { + Future?> build() async { final query = ref.watch(searchQueryProvider); if (query != null) { return await ref.apps.findAll(params: {'search': query}); } - return []; + return null; } }