From aba8d903f930756ac741f5723d31a4e1e75f737d Mon Sep 17 00:00:00 2001 From: ggurdin Date: Mon, 27 Nov 2023 17:09:34 -0500 Subject: [PATCH] show message under addtospacetoggles to users not currently in any classes or exchanges --- assets/l10n/intl_en.arb | 3 +- .../widgets/class/add_space_toggles.dart | 98 ++++++++----- needed-translations.txt | 138 ++++++++++++------ 3 files changed, 154 insertions(+), 85 deletions(-) diff --git a/assets/l10n/intl_en.arb b/assets/l10n/intl_en.arb index 6d31bf6f9..5dc8cd899 100644 --- a/assets/l10n/intl_en.arb +++ b/assets/l10n/intl_en.arb @@ -3937,5 +3937,6 @@ "searchChatsRooms": "Search for #chats, @users...", "groupName": "Group name", "createGroupAndInviteUsers": "Create a group and invite users", - "groupCanBeFoundViaSearch": "Group can be found via search" + "groupCanBeFoundViaSearch": "Group can be found via search", + "inNoSpaces": "You are not a member of any classes or exchanges" } diff --git a/lib/pangea/widgets/class/add_space_toggles.dart b/lib/pangea/widgets/class/add_space_toggles.dart index 2b72c7701..74be63910 100644 --- a/lib/pangea/widgets/class/add_space_toggles.dart +++ b/lib/pangea/widgets/class/add_space_toggles.dart @@ -20,13 +20,13 @@ class AddToSpaceToggles extends StatefulWidget { final String? activeSpaceId; final AddToClassMode mode; - const AddToSpaceToggles( - {Key? key, - this.roomId, - this.startOpen = false, - this.activeSpaceId, - required this.mode}) - : super(key: key); + const AddToSpaceToggles({ + super.key, + this.roomId, + this.startOpen = false, + this.activeSpaceId, + required this.mode, + }); @override AddToSpaceState createState() => AddToSpaceState(); @@ -50,16 +50,20 @@ class AddToSpaceState extends State { possibleParents = Matrix.of(context) .client .rooms - .where(widget.mode == AddToClassMode.exchange - ? (Room r) => r.isPangeaClass && widget.roomId != r.id - : (Room r) => - (r.isPangeaClass || r.isExchange) && widget.roomId != r.id) + .where( + widget.mode == AddToClassMode.exchange + ? (Room r) => r.isPangeaClass && widget.roomId != r.id + : (Room r) => + (r.isPangeaClass || r.isExchange) && widget.roomId != r.id, + ) .toList(); parents = widget.roomId != null ? possibleParents - .where((r) => - r.spaceChildren.any((room) => room.roomId == widget.roomId)) + .where( + (r) => + r.spaceChildren.any((room) => room.roomId == widget.roomId), + ) .map((r) => SuggestionStatus(false, r)) .cast() .toList() @@ -110,8 +114,10 @@ class AddToSpaceState extends State { Future _addSingleSpace(String roomToAddId, Room newParent) { GoogleAnalytics.addParent(roomToAddId, newParent.classCode); - return newParent.setSpaceChild(roomToAddId, - suggested: isSuggestedInSpace(newParent)); + return newParent.setSpaceChild( + roomToAddId, + suggested: isSuggestedInSpace(newParent), + ); } Future addSpaces(String roomToAddId) async { @@ -136,8 +142,10 @@ class AddToSpaceState extends State { setState( () => add ? parents.add(SuggestionStatus(false, possibleParent)) - : parents.removeWhere((suggestionStatus) => - suggestionStatus.room.id == possibleParent.id), + : parents.removeWhere( + (suggestionStatus) => + suggestionStatus.room.id == possibleParent.id, + ), ); } @@ -241,29 +249,43 @@ class AddToSpaceState extends State { setState(() => isOpen = !isOpen); }, ), - if (isOpen) - Scrollbar( - controller: scrollController, - thumbVisibility: true, - child: SingleChildScrollView( - controller: scrollController, - child: Column( - children: [ - const Divider(height: 1), - SizedBox( - height: min(possibleParents.length * 55, 500), - child: ListView.builder( - shrinkWrap: true, - itemCount: possibleParents.length, - itemBuilder: (BuildContext context, int i) { - return getAddToSpaceToggleItem(i); - }, + if (isOpen) ...[ + const Divider(height: 1), + possibleParents.isNotEmpty + ? Scrollbar( + controller: scrollController, + thumbVisibility: true, + child: SingleChildScrollView( + controller: scrollController, + child: Column( + children: [ + const Divider(height: 1), + SizedBox( + height: min(possibleParents.length * 55, 500), + child: ListView.builder( + shrinkWrap: true, + itemCount: possibleParents.length, + itemBuilder: (BuildContext context, int i) { + return getAddToSpaceToggleItem(i); + }, + ), + ), + ], ), ), - ], - ), - ), - ), + ) + : Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + L10n.of(context)!.inNoSpaces, + style: TextStyle( + color: Theme.of(context).colorScheme.secondary, + ), + ), + ), + ), + ], ], ); } diff --git a/needed-translations.txt b/needed-translations.txt index 0aa15d865..22219e8b3 100644 --- a/needed-translations.txt +++ b/needed-translations.txt @@ -755,7 +755,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "bn": [ @@ -1519,7 +1520,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "bo": [ @@ -2283,7 +2285,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "ca": [ @@ -3042,7 +3045,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "cs": [ @@ -3801,7 +3805,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "de": [ @@ -4560,7 +4565,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "el": [ @@ -5324,7 +5330,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "eo": [ @@ -6083,7 +6090,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "es": [ @@ -6106,7 +6114,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "et": [ @@ -6865,7 +6874,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "eu": [ @@ -7624,7 +7634,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "fa": [ @@ -8383,7 +8394,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "fi": [ @@ -9142,7 +9154,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "fr": [ @@ -9901,7 +9914,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "ga": [ @@ -10660,7 +10674,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "gl": [ @@ -11419,7 +11434,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "he": [ @@ -12178,7 +12194,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "hi": [ @@ -12942,7 +12959,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "hr": [ @@ -13701,7 +13719,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "hu": [ @@ -14460,7 +14479,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "id": [ @@ -15219,7 +15239,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "ie": [ @@ -15980,7 +16001,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "it": [ @@ -16739,7 +16761,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "ja": [ @@ -17498,7 +17521,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "ko": [ @@ -18257,7 +18281,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "lt": [ @@ -19016,7 +19041,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "lv": [ @@ -19780,7 +19806,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "nb": [ @@ -20539,7 +20566,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "nl": [ @@ -21298,7 +21326,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "pl": [ @@ -22057,7 +22086,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "pt": [ @@ -22821,7 +22851,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "pt_BR": [ @@ -23580,7 +23611,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "pt_PT": [ @@ -24339,7 +24371,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "ro": [ @@ -25098,7 +25131,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "ru": [ @@ -25857,7 +25891,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "sk": [ @@ -26617,7 +26652,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "sl": [ @@ -27379,7 +27415,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "sr": [ @@ -28138,7 +28175,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "sv": [ @@ -28897,7 +28935,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "ta": [ @@ -29661,7 +29700,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "th": [ @@ -30425,7 +30465,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "tr": [ @@ -31184,7 +31225,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "uk": [ @@ -31943,7 +31985,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "vi": [ @@ -32705,7 +32748,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "zh": [ @@ -33464,7 +33508,8 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ], "zh_Hant": [ @@ -34223,6 +34268,7 @@ "searchChatsRooms", "groupName", "createGroupAndInviteUsers", - "groupCanBeFoundViaSearch" + "groupCanBeFoundViaSearch", + "inNoSpaces" ] }