diff --git a/lib/pages/invitation_selection/invitation_selection.dart b/lib/pages/invitation_selection/invitation_selection.dart index a762d398c..52e128ddc 100644 --- a/lib/pages/invitation_selection/invitation_selection.dart +++ b/lib/pages/invitation_selection/invitation_selection.dart @@ -181,7 +181,9 @@ class InvitationSelectionController extends State { if (spaceChild.roomId == null) continue; final spaceChildRoom = Matrix.of(context).client.getRoomById(spaceChild.roomId!); - if (spaceChildRoom != null) { + if (spaceChildRoom != null && + !(await spaceChildRoom.isBotDM) && + !spaceChildRoom.isDirectChat) { await spaceChildRoom.invite(id); await spaceChildRoom.setPower( id, diff --git a/lib/pangea/utils/chat_list_handle_space_tap.dart b/lib/pangea/utils/chat_list_handle_space_tap.dart index b2c74ccbd..ef0865634 100644 --- a/lib/pangea/utils/chat_list_handle_space_tap.dart +++ b/lib/pangea/utils/chat_list_handle_space_tap.dart @@ -1,4 +1,5 @@ import 'package:adaptive_dialog/adaptive_dialog.dart'; +import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:fluffychat/widgets/matrix.dart'; @@ -18,7 +19,10 @@ void chatListHandleSpaceTap( ) { void setActiveSpaceAndCloseChat() { controller.setActiveSpace(space.id); - if (controller.activeChat != null && + + if (FluffyThemes.isColumnMode(context)) { + context.push('/spaces/${space.id}'); + } else if (controller.activeChat != null && !space.isFirstOrSecondChild(controller.activeChat!)) { context.go("/rooms"); } diff --git a/lib/pangea/utils/space_navigator.dart b/lib/pangea/utils/space_navigator.dart deleted file mode 100644 index af72a0b25..000000000 --- a/lib/pangea/utils/space_navigator.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'dart:async'; - -import 'package:flutter/material.dart'; - -/// this is a workaround to allow navigation of spaces out from any widget. -/// Reason is that we have no reliable way to listen on *query* changes of -/// VRouter. -/// -/// Time wasted: 3h -abstract class SpaceNavigator { - const SpaceNavigator._(); - - // TODO(TheOneWithTheBraid): adjust routing table in order to represent spaces - // ... in any present path - static final routeObserver = RouteObserver(); - - static final StreamController _controller = - StreamController.broadcast(); - - static Stream get stream => _controller.stream; - - static void navigateToSpace(String? spaceId) => _controller.add(spaceId); -}