@@ -587,7 +587,8 @@ struct WelcomeWindowView: View {
587587
588588 moveToGroupMenu ( for: selectedConnections)
589589
590- if selectedConnections. contains ( where: { $0. groupId != nil } ) {
590+ let validGroupIds = Set ( groups. map ( \. id) )
591+ if selectedConnections. contains ( where: { $0. groupId. map { validGroupIds. contains ( $0) } ?? false } ) {
591592 Button { removeFromGroup ( selectedConnections) } label: {
592593 Label ( String ( localized: " Remove from Group " ) , systemImage: " folder.badge.minus " )
593594 }
@@ -635,7 +636,7 @@ struct WelcomeWindowView: View {
635636
636637 moveToGroupMenu ( for: [ connection] )
637638
638- if connection. groupId != nil {
639+ if let groupId = connection. groupId, groups . contains ( where : { $0 . id == groupId } ) {
639640 Button { removeFromGroup ( [ connection] ) } label: {
640641 Label ( String ( localized: " Remove from Group " ) , systemImage: " folder.badge.minus " )
641642 }
@@ -654,6 +655,8 @@ struct WelcomeWindowView: View {
654655
655656 @ViewBuilder
656657 private func moveToGroupMenu( for targets: [ DatabaseConnection ] ) -> some View {
658+ let isSingle = targets. count == 1
659+ let currentGroupId = isSingle ? targets. first? . groupId : nil
657660 Menu ( String ( localized: " Move to Group " ) ) {
658661 ForEach ( groups) { group in
659662 Button {
@@ -666,8 +669,13 @@ struct WelcomeWindowView: View {
666669 . frame ( width: 8 , height: 8 )
667670 }
668671 Text ( group. name)
672+ if currentGroupId == group. id {
673+ Spacer ( )
674+ Image ( systemName: " checkmark " )
675+ }
669676 }
670677 }
678+ . disabled ( currentGroupId == group. id)
671679 }
672680
673681 if !groups. isEmpty {
0 commit comments