From 96037e606218f2be9288dd09022d95377b43cf55 Mon Sep 17 00:00:00 2001 From: Felix Kirchner Date: Fri, 22 May 2026 14:52:30 +0200 Subject: [PATCH] fix: placing user at header 2 --- .../create_teams/manage_members_view.dart | 25 ++++++++++++------- pubspec.yaml | 2 +- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/presentation/views/main_menu/match_view/create_match/create_teams/manage_members_view.dart b/lib/presentation/views/main_menu/match_view/create_match/create_teams/manage_members_view.dart index a952d5d..f24da72 100644 --- a/lib/presentation/views/main_menu/match_view/create_match/create_teams/manage_members_view.dart +++ b/lib/presentation/views/main_menu/match_view/create_match/create_teams/manage_members_view.dart @@ -201,13 +201,13 @@ class _ManageMembersViewState extends State { if (newIndex > oldIndex) targetIndex -= 1; targetIndex = targetIndex.clamp(0, allItemsCount - 1); - // Resolve target location based on the item currently at targetIndex - // before the move. + // Resolve target location based on the item currently + // at targetIndex before the move. int destTeamIndex; int insertPositionInTeam; if (targetIndex >= allItemsCount - 1 && newIndex >= allItemsCount) { - // Dropped at the very end, append to the last team. + // dropped at the very end, append to the last team. destTeamIndex = teams.length - 1; insertPositionInTeam = teams[destTeamIndex].members.length; } else { @@ -215,14 +215,21 @@ class _ManageMembersViewState extends State { final anchorMemberIndex = memberIndexForFlat(targetIndex, destTeamIndex); if (anchorMemberIndex == -1) { - // Dropped right before a header, append to the previous team. - destTeamIndex = destTeamIndex - 1; - if (destTeamIndex < 0) { - // Dropped above the very first header, stay in team 0 at top. - destTeamIndex = 0; + // dropped on a header, direction decides which team the player gets added + // if moving down, insert as first member of that team. + // if moving UP, append to the previous team. + final isMovingDown = newIndex > oldIndex; + if (isMovingDown) { insertPositionInTeam = 0; } else { - insertPositionInTeam = teams[destTeamIndex].members.length; + final previousTeamIndex = destTeamIndex - 1; + if (previousTeamIndex < 0) { + // above the very first header, stay at top of team 0. + insertPositionInTeam = 0; + } else { + destTeamIndex = previousTeamIndex; + insertPositionInTeam = teams[destTeamIndex].members.length; + } } } else { insertPositionInTeam = anchorMemberIndex; diff --git a/pubspec.yaml b/pubspec.yaml index 18cc5bc..54ce5a8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: tallee description: "Tracking App for Card Games" publish_to: 'none' -version: 0.0.30+333 +version: 0.0.30+334 environment: sdk: ^3.8.1