diff --git a/SportsTime/Features/Trip/Views/TripCreationView.swift b/SportsTime/Features/Trip/Views/TripCreationView.swift index e1260f4..b6d957a 100644 --- a/SportsTime/Features/Trip/Views/TripCreationView.swift +++ b/SportsTime/Features/Trip/Views/TripCreationView.swift @@ -1252,10 +1252,15 @@ struct TeamSection: View { game: game, isSelected: selectedIds.contains(game.id), onTap: { - if selectedIds.contains(game.id) { - selectedIds.remove(game.id) - } else { - selectedIds.insert(game.id) + // Disable implicit animation to prevent weird morphing effect + var transaction = Transaction() + transaction.disablesAnimations = true + withTransaction(transaction) { + if selectedIds.contains(game.id) { + selectedIds.remove(game.id) + } else { + selectedIds.insert(game.id) + } } } ) @@ -1286,6 +1291,7 @@ struct GameCalendarRow: View { Image(systemName: isSelected ? "checkmark.circle.fill" : "circle") .font(.title3) .foregroundStyle(isSelected ? Theme.warmOrange : Theme.textMuted(colorScheme)) + .animation(nil, value: isSelected) VStack(alignment: .leading, spacing: 2) { Text("vs \(game.awayTeam.name)") @@ -1312,6 +1318,7 @@ struct GameCalendarRow: View { .padding(.vertical, Theme.Spacing.sm) .padding(.horizontal, Theme.Spacing.md) .background(isSelected ? Theme.warmOrange.opacity(0.1) : Color.clear) + .animation(nil, value: isSelected) } .buttonStyle(.plain) }