Skip to content

Commit 053971a

Browse files
committed
fix: context menu correctness for group operations
1 parent ebce43d commit 053971a

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

TablePro/Views/Connection/WelcomeWindowView.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)