From cc9fa75c34c7807cd948e3b43ab95e66a2f627ec Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Mon, 21 Jul 2025 10:11:57 -0400 Subject: [PATCH] chore: display loading during image upload (#3503) --- .../activity_planner_builder.dart | 1 + .../activity_suggestion_dialog.dart | 49 +++++++++++++------ 2 files changed, 36 insertions(+), 14 deletions(-) diff --git a/lib/pangea/activity_planner/activity_planner_builder.dart b/lib/pangea/activity_planner/activity_planner_builder.dart index acebff482..acdeb25f3 100644 --- a/lib/pangea/activity_planner/activity_planner_builder.dart +++ b/lib/pangea/activity_planner/activity_planner_builder.dart @@ -172,6 +172,7 @@ class ActivityPlannerBuilderState extends State { if (mounted) { setState(() { avatar = bytes; + imageURL = null; filename = photo.singleOrNull?.name; }); } diff --git a/lib/pangea/activity_suggestions/activity_suggestion_dialog.dart b/lib/pangea/activity_suggestions/activity_suggestion_dialog.dart index 0b3ffc8a6..4aa09c17e 100644 --- a/lib/pangea/activity_suggestions/activity_suggestion_dialog.dart +++ b/lib/pangea/activity_suggestions/activity_suggestion_dialog.dart @@ -56,22 +56,43 @@ class ActivitySuggestionDialogState extends State { : MediaQuery.of(context).size.width; Future _launchActivity() async { - if (widget.onLaunch != null) { - await widget.controller.updateImageURL(); - widget.onLaunch!.call(); - Navigator.of(context).pop(); - } else if (widget.controller.room != null && - !widget.controller.room!.isSpace) { - final resp = await showFutureLoadingDialog( - context: context, - future: widget.controller.launchToRoom, - ); - if (!resp.isError) { - context.go("/rooms/${widget.controller.room!.id}"); + try { + setState(() { + _loading = true; + _error = null; + }); + + if (widget.onLaunch != null) { + widget.onLaunch!.call(); Navigator.of(context).pop(); + } else if (widget.controller.room != null && + !widget.controller.room!.isSpace) { + final resp = await showFutureLoadingDialog( + context: context, + future: widget.controller.launchToRoom, + ); + if (!resp.isError) { + context.go("/rooms/${widget.controller.room!.id}"); + Navigator.of(context).pop(); + } + } else { + _setPageMode(_PageMode.roomSelection); + } + } catch (e, s) { + _error = e; + ErrorHandler.logError( + e: e, + s: s, + data: { + "request": widget.controller.updatedRequest.toJson(), + }, + ); + } finally { + if (mounted) { + setState(() { + _loading = false; + }); } - } else { - _setPageMode(_PageMode.roomSelection); } }