From 3d959c46d0421d66b600df3c4bff2cc8df570f0b Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 14 Dec 2025 19:13:36 +0000 Subject: [PATCH] fix(macos): hide skipped onboarding panes --- apps/macos/Sources/Clawdis/Onboarding.swift | 44 +++++++++++++++------ 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/apps/macos/Sources/Clawdis/Onboarding.swift b/apps/macos/Sources/Clawdis/Onboarding.swift index cca46ed18..ec8ada36e 100644 --- a/apps/macos/Sources/Clawdis/Onboarding.swift +++ b/apps/macos/Sources/Clawdis/Onboarding.swift @@ -115,18 +115,12 @@ struct OnboardingView: View { GeometryReader { _ in HStack(spacing: 0) { - self.welcomePage().frame(width: self.pageWidth) - self.connectionPage().frame(width: self.pageWidth) - self.anthropicAuthPage().frame(width: self.pageWidth) - self.identityPage().frame(width: self.pageWidth) - self.gatewayPage().frame(width: self.pageWidth) - self.permissionsPage().frame(width: self.pageWidth) - self.cliPage().frame(width: self.pageWidth) - self.workspacePage().frame(width: self.pageWidth) - self.whatsappPage().frame(width: self.pageWidth) - self.readyPage().frame(width: self.pageWidth) + ForEach(self.pageOrder, id: \.self) { pageIndex in + self.pageView(for: pageIndex) + .frame(width: self.pageWidth) + } } - .offset(x: CGFloat(-self.activePageIndex) * self.pageWidth) + .offset(x: CGFloat(-self.currentPage) * self.pageWidth) .animation( .interactiveSpring(response: 0.5, dampingFraction: 0.86, blendDuration: 0.25), value: self.currentPage) @@ -184,6 +178,34 @@ struct OnboardingView: View { withAnimation { self.currentPage = max(0, self.pageOrder.count - 1) } } + @ViewBuilder + private func pageView(for pageIndex: Int) -> some View { + switch pageIndex { + case 0: + self.welcomePage() + case 1: + self.connectionPage() + case 2: + self.anthropicAuthPage() + case 3: + self.identityPage() + case 4: + self.gatewayPage() + case 5: + self.permissionsPage() + case 6: + self.cliPage() + case 7: + self.workspacePage() + case 8: + self.whatsappPage() + case 9: + self.readyPage() + default: + EmptyView() + } + } + private func welcomePage() -> some View { self.onboardingPage { VStack(spacing: 22) {