mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 13:33:32 +00:00
Fix search results screen erratic initial behavior (clearing text field and not showing status)
This commit is contained in:
parent
dece212ded
commit
cb1bcad34d
1 changed files with 26 additions and 22 deletions
|
@ -37,7 +37,6 @@ class _SearchScreenState extends State<SearchScreen> {
|
|||
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<SearchScreen> {
|
|||
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<SearchScreen> {
|
|||
onError: (error) =>
|
||||
buildSnackbar(context, 'Error getting search result: $error'),
|
||||
);
|
||||
setState(() {
|
||||
searching = false;
|
||||
});
|
||||
|
||||
print('Ending update');
|
||||
}
|
||||
|
||||
|
@ -95,7 +89,6 @@ class _SearchScreenState extends State<SearchScreen> {
|
|||
setState(() {
|
||||
searchResult = SearchResults.empty();
|
||||
searchTextController.text = '';
|
||||
searching = false;
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -111,21 +104,25 @@ class _SearchScreenState extends State<SearchScreen> {
|
|||
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<SearchScreen> {
|
|||
.toList()),
|
||||
],
|
||||
),
|
||||
if (searching) const LinearProgressIndicator(),
|
||||
ValueListenableBuilder(
|
||||
valueListenable: nss.searchLoadingStatus,
|
||||
builder: (context, searching, _) {
|
||||
if (searching) {
|
||||
return const LinearProgressIndicator();
|
||||
}
|
||||
return const SizedBox();
|
||||
}),
|
||||
Expanded(child: body),
|
||||
],
|
||||
),
|
||||
|
|
Loading…
Reference in a new issue