From d338d24a837a6691020777c640453a5f05327b43 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Fri, 19 Sep 2025 14:06:15 -0400 Subject: [PATCH] fix: fix needed participants copy (#4058) --- .../activity_session_start_page.dart | 7 +++++-- .../activity_sessions_start_view.dart | 9 ++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/pangea/activity_sessions/activity_session_start/activity_session_start_page.dart b/lib/pangea/activity_sessions/activity_session_start/activity_session_start_page.dart index a685e5a0e..a24167a28 100644 --- a/lib/pangea/activity_sessions/activity_session_start/activity_session_start_page.dart +++ b/lib/pangea/activity_sessions/activity_session_start/activity_session_start_page.dart @@ -199,7 +199,7 @@ class ActivitySessionStartController extends State if (mounted) setState(() => _selectedRoleId = id); } - Future courseHasEnoughParticipants() async { + Future neededCourseParticipants() async { final courseParticipants = await courseParent?.requestParticipants( [Membership.join, Membership.invite, Membership.knock], false, @@ -214,7 +214,10 @@ class ActivitySessionStartController extends State final addBotToAvailableUsers = !botInCourse && !isBotRoomMember; final availableParticipants = courseParticipants.length + (addBotToAvailableUsers ? 1 : 0); - return availableParticipants >= (activity?.req.numberOfParticipants ?? 0); + if (availableParticipants >= (activity?.req.numberOfParticipants ?? 0)) { + return 0; + } + return (activity?.req.numberOfParticipants ?? 0) - availableParticipants; } Future _loadActivity() async { diff --git a/lib/pangea/activity_sessions/activity_session_start/activity_sessions_start_view.dart b/lib/pangea/activity_sessions/activity_session_start/activity_sessions_start_view.dart index 50b98a86e..e07189307 100644 --- a/lib/pangea/activity_sessions/activity_session_start/activity_sessions_start_view.dart +++ b/lib/pangea/activity_sessions/activity_session_start/activity_sessions_start_view.dart @@ -258,21 +258,20 @@ class _ActivityStartButtons extends StatelessWidget { Widget build(BuildContext context) { final hasActiveSession = controller.canJoinExistingSession; return FutureBuilder( - future: controller.courseHasEnoughParticipants(), + future: controller.neededCourseParticipants(), builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { return const LinearProgressIndicator(); } - final bool hasEnoughParticipants = snapshot.data ?? true; + final int neededParticipants = snapshot.data ?? 0; + final bool hasEnoughParticipants = neededParticipants <= 0; return Column( spacing: 16.0, children: [ if (!hasEnoughParticipants) ...[ Text( - L10n.of(context).activityNeedsMembers( - (controller.activity?.req.numberOfParticipants ?? 2) - 1, - ), + L10n.of(context).activityNeedsMembers(neededParticipants), textAlign: TextAlign.center, ), if (controller.courseParent?.canInvite ?? false)