diff --git a/lib/screens/search_screen.dart b/lib/screens/search_screen.dart index 21f2dcd..b411ce5 100644 --- a/lib/screens/search_screen.dart +++ b/lib/screens/search_screen.dart @@ -37,7 +37,6 @@ class _SearchScreenState extends State { static final _logger = Logger('$SearchScreen'); var searchTextController = TextEditingController(); var searchType = SearchTypes.statusesText; - var searching = false; PagingData nextPage = PagingData(limit: limit); var searchResult = SearchResults.empty(); Profile? profileOfSearchRequest; @@ -68,9 +67,6 @@ class _SearchScreenState extends State { nextPage = PagingData(limit: limit); searchResult = SearchResults.empty(); } - setState(() { - searching = true; - }); print('Search $searchType on ${searchTextController.text}'); final result = await SearchClient(profile) @@ -84,9 +80,7 @@ class _SearchScreenState extends State { onError: (error) => buildSnackbar(context, 'Error getting search result: $error'), ); - setState(() { - searching = false; - }); + print('Ending update'); } @@ -95,7 +89,6 @@ class _SearchScreenState extends State { setState(() { searchResult = SearchResults.empty(); searchTextController.text = ''; - searching = false; }); } @@ -111,21 +104,25 @@ class _SearchScreenState extends State { clearSearchResults(); } - if (searchResult.isEmpty && searching) { - body = Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - 'Searching for ${searchType.toLabel()} on: ${searchTextController.text}', + body = ValueListenableBuilder( + valueListenable: nss.searchLoadingStatus, + builder: (BuildContext context, bool searching, Widget? _) { + if (searchResult.isEmpty && searching) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Searching for ${searchType.toLabel()} on: ${searchTextController.text}', + ), + ], ), - ], - ), - ); - } else { - body = ResponsiveMaxWidth(child: buildResultBody(profile)); - } + ); + } + return ResponsiveMaxWidth(child: buildResultBody(profile)); + }, + ); return Scaffold( drawer: const StandardAppDrawer(skipPopDismiss: false), body: SafeArea( @@ -192,7 +189,14 @@ class _SearchScreenState extends State { .toList()), ], ), - if (searching) const LinearProgressIndicator(), + ValueListenableBuilder( + valueListenable: nss.searchLoadingStatus, + builder: (context, searching, _) { + if (searching) { + return const LinearProgressIndicator(); + } + return const SizedBox(); + }), Expanded(child: body), ], ),