From 62191a95846abed235ebc0eeef8de0f9bb6cdad9 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Thu, 4 Jan 2024 16:10:02 -0500 Subject: [PATCH] fix to ensure that new space class/exchange toggles always work --- lib/pages/new_space/new_space.dart | 40 ++++++------------- lib/pages/new_space/new_space_view.dart | 5 ++- .../widgets/class/add_space_toggles.dart | 20 +++++----- 3 files changed, 27 insertions(+), 38 deletions(-) diff --git a/lib/pages/new_space/new_space.dart b/lib/pages/new_space/new_space.dart index 2ff854e2c..112519238 100644 --- a/lib/pages/new_space/new_space.dart +++ b/lib/pages/new_space/new_space.dart @@ -1,14 +1,5 @@ import 'dart:developer'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; - -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:future_loading_dialog/future_loading_dialog.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart' as sdk; -import 'package:matrix/matrix.dart'; - import 'package:fluffychat/pages/new_space/new_space_view.dart'; import 'package:fluffychat/pangea/constants/class_default_values.dart'; import 'package:fluffychat/pangea/constants/pangea_event_types.dart'; @@ -22,6 +13,13 @@ import 'package:fluffychat/pangea/utils/firebase_analytics.dart'; import 'package:fluffychat/pangea/widgets/class/add_space_toggles.dart'; import 'package:fluffychat/pangea/widgets/space/class_settings.dart'; import 'package:fluffychat/widgets/matrix.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:future_loading_dialog/future_loading_dialog.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart' as sdk; +import 'package:matrix/matrix.dart'; class NewSpace extends StatefulWidget { const NewSpace({super.key}); @@ -46,18 +44,6 @@ class NewSpaceController extends State { // #Pangea bool newClassMode = true; - //in initState, set newClassMode to true if parameter "newClass" is true - //use Vrouter - @override - void initState() { - super.initState(); - Future.delayed(Duration.zero, () { - newClassMode = - GoRouterState.of(context).pathParameters['newexchange'] != 'exchange'; - setState(() {}); - }); - } - List get initialState { final events = []; @@ -225,13 +211,13 @@ class NewSpaceController extends State { // Pangea# } + @override // #Pangea - //toggle newClassMode - void toggleClassMode(bool newValue) { - setState(() => newClassMode = newValue); + // Widget build(BuildContext context) => NewSpaceView(this); + Widget build(BuildContext context) { + newClassMode = + GoRouterState.of(context).pathParameters['newexchange'] != 'exchange'; + return NewSpaceView(this); } // Pangea# - - @override - Widget build(BuildContext context) => NewSpaceView(this); } diff --git a/lib/pages/new_space/new_space_view.dart b/lib/pages/new_space/new_space_view.dart index 11cb9a542..fd9f861d1 100644 --- a/lib/pages/new_space/new_space_view.dart +++ b/lib/pages/new_space/new_space_view.dart @@ -10,6 +10,7 @@ import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; import 'new_space.dart'; @@ -40,14 +41,14 @@ class NewSpaceView extends StatelessWidget { selectedIcon: const Icon(Icons.class_), color: controller.newClassMode ? activeColor : null, isSelected: controller.newClassMode, - onPressed: () => controller.toggleClassMode(true), + onPressed: () => context.go('/rooms/newspace'), ), IconButton( icon: const Icon(Icons.connecting_airports), selectedIcon: const Icon(Icons.connecting_airports), color: !controller.newClassMode ? activeColor : null, isSelected: !controller.newClassMode, - onPressed: () => controller.toggleClassMode(false), + onPressed: () => context.go('/rooms/newspace/exchange'), ), ], // title: Text(L10n.of(context)!.createNewSpace), diff --git a/lib/pangea/widgets/class/add_space_toggles.dart b/lib/pangea/widgets/class/add_space_toggles.dart index 653fa339d..4ee19ffbb 100644 --- a/lib/pangea/widgets/class/add_space_toggles.dart +++ b/lib/pangea/widgets/class/add_space_toggles.dart @@ -1,13 +1,12 @@ -import 'package:flutter/material.dart'; - import 'package:collection/collection.dart'; +import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; +import 'package:fluffychat/pangea/utils/error_handler.dart'; +import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; -import 'package:fluffychat/config/app_config.dart'; -import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; -import 'package:fluffychat/pangea/utils/error_handler.dart'; import '../../../widgets/matrix.dart'; import '../../utils/firebase_analytics.dart'; import 'add_class_and_invite.dart'; @@ -198,10 +197,13 @@ class AddToSpaceState extends State { title: Row( children: [ const SizedBox(width: 32), - Text( - L10n.of(context)!.suggestTo(possibleParentName), - style: TextStyle( - color: Theme.of(context).colorScheme.secondary, + Expanded( + child: Text( + L10n.of(context)!.suggestTo(possibleParentName), + style: TextStyle( + color: Theme.of(context).colorScheme.secondary, + ), + overflow: TextOverflow.ellipsis, ), ), ],