From e9bfcbe88a0170a27a63f9b5f3326e7a01135c87 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Thu, 27 Feb 2025 11:09:09 -0500 Subject: [PATCH] chore: added timeout to room creation (#1971) --- lib/config/app_config.dart | 1 + lib/pages/new_group/new_group.dart | 26 ++++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/config/app_config.dart b/lib/config/app_config.dart index c714f759a..1b30187f3 100644 --- a/lib/config/app_config.dart +++ b/lib/config/app_config.dart @@ -61,6 +61,7 @@ abstract class AppConfig { static const Color goldLight = Color.fromARGB(255, 254, 223, 73); static const Color error = Colors.red; static const int overlayAnimationDuration = 250; + static const int roomCreationTimeoutSeconds = 15; // static String _privacyUrl = // 'https://gitlab.com/famedly/fluffychat/-/blob/main/PRIVACY.md'; static String _privacyUrl = "https://www.pangeachat.com/privacy"; diff --git a/lib/pages/new_group/new_group.dart b/lib/pages/new_group/new_group.dart index 35ab68df0..b22ebda8f 100644 --- a/lib/pages/new_group/new_group.dart +++ b/lib/pages/new_group/new_group.dart @@ -6,6 +6,7 @@ import 'package:go_router/go_router.dart'; import 'package:matrix/matrix.dart' as sdk; import 'package:matrix/matrix.dart'; +import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/new_group/new_group_view.dart'; import 'package:fluffychat/pangea/bot/utils/bot_name.dart'; import 'package:fluffychat/pangea/common/constants/model_keys.dart'; @@ -101,6 +102,10 @@ class NewGroupController extends State { // Pangea# ); if (!mounted) return; + // #Pangea + // if a timeout happened, don't redirect to the chat + if (error != null) return; + // Pangea# context.go('/rooms/$roomId/invite'); } @@ -155,6 +160,9 @@ class NewGroupController extends State { data: {"spaceId": spaceId, "error": err}, ); } + + // if a timeout happened, don't redirect to the space + if (error != null) return; MatrixState.pangeaController.classController .setActiveSpaceIdInChatListController(spaceId); // Pangea# @@ -206,9 +214,23 @@ class NewGroupController extends State { switch (createGroupType) { case CreateGroupType.group: - await _createGroup(); + // #Pangea + // await _createGroup(); + await _createGroup().timeout( + const Duration( + seconds: AppConfig.roomCreationTimeoutSeconds, + ), + ); + // Pangea# case CreateGroupType.space: - await _createSpace(); + // #Pangea + // await _createSpace(); + await _createSpace().timeout( + const Duration( + seconds: AppConfig.roomCreationTimeoutSeconds, + ), + ); + // Pangea# } } catch (e, s) { sdk.Logs().d('Unable to create group', e, s);