diff --git a/lib/pages/chat_list/space_view.dart b/lib/pages/chat_list/space_view.dart index db9d2a4e4..db8439374 100644 --- a/lib/pages/chat_list/space_view.dart +++ b/lib/pages/chat_list/space_view.dart @@ -14,11 +14,11 @@ import 'package:fluffychat/pages/chat_list/chat_list_item.dart'; import 'package:fluffychat/pages/chat_list/search_title.dart'; import 'package:fluffychat/pangea/chat_settings/constants/pangea_room_types.dart'; import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; +import 'package:fluffychat/pangea/spaces/widgets/add_room_dialog.dart'; import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/stream_extension.dart'; import 'package:fluffychat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; -import 'package:fluffychat/widgets/adaptive_dialogs/show_text_input_dialog.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/future_loading_dialog.dart'; import 'package:fluffychat/widgets/matrix.dart'; @@ -26,7 +26,9 @@ import 'package:fluffychat/widgets/public_room_bottom_sheet.dart'; enum AddRoomType { chat, - subspace, + // #Pangea + // subspace, + // Pangea# } class SpaceView extends StatefulWidget { @@ -338,34 +340,39 @@ class _SpaceViewState extends State { // ], // ); // if (roomType == null) return; - const roomType = AddRoomType.chat; // Pangea# - final names = await showTextInputDialog( + // #Pangea + final RoomResponse? response = await showDialog( context: context, - // #Pangea - // title: roomType == AddRoomType.subspace - // ? L10n.of(context).createNewSpace - // : L10n.of(context).createGroup, - // hintText: roomType == AddRoomType.subspace - // ? L10n.of(context).spaceName - // : L10n.of(context).groupName, - title: L10n.of(context).createChat, - hintText: L10n.of(context).chatName, - // Pangea# - minLines: 1, - maxLines: 1, - maxLength: 64, - validator: (text) { - if (text.isEmpty) { - return L10n.of(context).pleaseChoose; - } - return null; + builder: (context) { + return const AddRoomDialog(); }, - okLabel: L10n.of(context).create, - cancelLabel: L10n.of(context).cancel, ); - if (names == null) return; + if (response == null) return; + + // final names = await showTextInputDialog( + // context: context, + // title: roomType == AddRoomType.subspace + // ? L10n.of(context).createNewSpace + // : L10n.of(context).createGroup, + // hintText: roomType == AddRoomType.subspace + // ? L10n.of(context).spaceName + // : L10n.of(context).groupName, + // minLines: 1, + // maxLines: 1, + // maxLength: 64, + // validator: (text) { + // if (text.isEmpty) { + // return L10n.of(context).pleaseChoose; + // } + // return null; + // }, + // okLabel: L10n.of(context).create, + // cancelLabel: L10n.of(context).cancel, + // ); + // if (names == null) return; + // Pangea# final client = Matrix.of(context).client; final result = await showFutureLoadingDialog( context: context, @@ -374,24 +381,42 @@ class _SpaceViewState extends State { final activeSpace = client.getRoomById(widget.spaceId)!; await activeSpace.postLoad(); - if (roomType == AddRoomType.subspace) { - roomId = await client.createSpace( - name: names, - visibility: activeSpace.joinRules == JoinRules.public - ? sdk.Visibility.public - : sdk.Visibility.private, - ); - } else { - roomId = await client.createGroupChat( - groupName: names, - preset: activeSpace.joinRules == JoinRules.public - ? CreateRoomPreset.publicChat - : CreateRoomPreset.privateChat, - visibility: activeSpace.joinRules == JoinRules.public - ? sdk.Visibility.public - : sdk.Visibility.private, - ); - } + // #Pangea + // if (roomType == AddRoomType.subspace) { + // roomId = await client.createSpace( + // name: names, + // visibility: activeSpace.joinRules == JoinRules.public + // ? sdk.Visibility.public + // : sdk.Visibility.private, + // ); + // } else { + // Pangea# + roomId = await client.createGroupChat( + // #Pangea + // groupName: names, + // preset: activeSpace.joinRules == JoinRules.public + // ? CreateRoomPreset.publicChat + // : CreateRoomPreset.privateChat, + // visibility: activeSpace.joinRules == JoinRules.public + // ? sdk.Visibility.public + // : sdk.Visibility.private, + groupName: response.roomName, + preset: response.joinRules == sdk.JoinRules.public + ? CreateRoomPreset.publicChat + : CreateRoomPreset.privateChat, + visibility: response.visibility, + initialState: response.roomDescription.isNotEmpty + ? [ + StateEvent( + type: EventTypes.RoomTopic, + content: {'topic': response.roomDescription}, + ), + ] + : null, + enableEncryption: false, + // Pangea# + ); + // } await activeSpace.setSpaceChild(roomId); }, );