From 7e6134cb12958fc2a7cb0e0e79b00f6dcd83fadd Mon Sep 17 00:00:00 2001 From: joshavant <830519+joshavant@users.noreply.github.com> Date: Fri, 5 Jun 2026 05:58:40 -0500 Subject: [PATCH] fix ios onboarding developer toggle hit target --- .../Onboarding/OnboardingWizardView.swift | 45 ++++++++++++++----- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/apps/ios/Sources/Onboarding/OnboardingWizardView.swift b/apps/ios/Sources/Onboarding/OnboardingWizardView.swift index 6cc71f1729a1..b4bd284c63d9 100644 --- a/apps/ios/Sources/Onboarding/OnboardingWizardView.swift +++ b/apps/ios/Sources/Onboarding/OnboardingWizardView.swift @@ -318,16 +318,7 @@ struct OnboardingWizardView: View { self.selectMode(.remoteDomain) } - Toggle( - "Developer mode", - isOn: Binding( - get: { self.developerModeEnabled }, - set: { newValue in - self.developerModeEnabled = newValue - if !newValue, self.selectedMode == .developerLocal { - self.selectedMode = nil - } - })) + self.developerModeToggleRow if self.developerModeEnabled { OnboardingModeRow( @@ -348,6 +339,40 @@ struct OnboardingWizardView: View { } } + private var developerModeToggleRow: some View { + // Onboarding Form switch rows need full-width taps; native Toggle only hits the switch edge on iOS 26. + Button { + let enabled = !self.developerModeEnabled + self.developerModeEnabled = enabled + if !enabled, self.selectedMode == .developerLocal { + self.selectedMode = nil + } + } label: { + HStack { + Text("Developer mode") + Spacer(minLength: 8) + self.onboardingSwitchIndicator(isOn: self.developerModeEnabled) + } + .contentShape(Rectangle()) + } + .buttonStyle(.plain) + .accessibilityLabel("Developer mode") + .accessibilityValue(self.developerModeEnabled ? "On" : "Off") + } + + private func onboardingSwitchIndicator(isOn: Bool) -> some View { + Capsule() + .fill(isOn ? Color.accentColor : Color.secondary.opacity(0.35)) + .frame(width: 52, height: 32) + .overlay(alignment: isOn ? .trailing : .leading) { + Circle() + .fill(Color.white) + .frame(width: 28, height: 28) + .padding(2) + .shadow(color: Color.black.opacity(0.14), radius: 1, x: 0, y: 1) + } + } + @ViewBuilder private var connectStep: some View { if let selectedMode {