Activity search message/loading edits (#3768)

* Use ErrorIndicator for activity search messages

* Maintain loading cards for at least 5 seconds

* Fix message not showing for partial activity return
This commit is contained in:
Kelrap 2025-08-18 16:52:16 -04:00 committed by GitHub
parent d8a9b6acd0
commit b4cb8f6edc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 9 deletions

View file

@ -39,7 +39,7 @@ extension ActivitySearchExtension on ActivitySearchEnum {
String message(L10n l10n) {
switch (this) {
case ActivitySearchEnum.waiting:
l10n.activitySuggestionTimeoutMessage;
return l10n.activitySuggestionTimeoutMessage;
case ActivitySearchEnum.timeout:
return l10n.generatingNewActivities;
case ActivitySearchEnum.error:
@ -47,6 +47,5 @@ extension ActivitySearchExtension on ActivitySearchEnum {
default:
return '';
}
return '';
}
}

View file

@ -135,7 +135,9 @@ class ActivitySuggestionsAreaState extends State<ActivitySuggestionsArea> {
_status = _status.fromCode(resp.statusCode);
if (_status != ActivitySearchEnum.error) {
if (_activityItems.isEmpty) {
if (mounted) setState(() => _status = ActivitySearchEnum.timeout);
if (mounted && retries != 0) {
setState(() => _status = ActivitySearchEnum.timeout);
}
Future.delayed(const Duration(seconds: 5), () {
if (mounted) _setActivityItems(retries: retries + 1);
@ -229,12 +231,8 @@ class ActivitySuggestionsAreaState extends State<ActivitySuggestionsArea> {
spacing: 16.0,
mainAxisSize: MainAxisSize.min,
children: [
ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 300),
child: Text(
_status.message(L10n.of(context)),
textAlign: TextAlign.center,
),
ErrorIndicator(
message: _status.message(L10n.of(context)),
),
if (_loading && _status == ActivitySearchEnum.timeout)
const CircularProgressIndicator(),