From 005bb70b6a788d860bca74fcff53cc1db0b1ab87 Mon Sep 17 00:00:00 2001 From: Max Goedjen Date: Sun, 20 Sep 2020 00:47:57 -0700 Subject: [PATCH] Progress on onboaring view. --- Secretive/Views/SetupView.swift | 69 ++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 27 deletions(-) diff --git a/Secretive/Views/SetupView.swift b/Secretive/Views/SetupView.swift index 7162380..26d2a99 100644 --- a/Secretive/Views/SetupView.swift +++ b/Secretive/Views/SetupView.swift @@ -6,26 +6,29 @@ struct SetupView: View { @Binding var visible: Bool var body: some View { - VStack { - StepView(numberOfSteps: 3, currentStep: stepIndex) - GeometryReader { proxy in - HStack { - SecretAgentSetupView(buttonAction: advance) + GeometryReader { proxy in + VStack { + StepView(numberOfSteps: 3, currentStep: stepIndex, width: 500) + GeometryReader { proxy in + HStack { + SecretAgentSetupView(buttonAction: advance) + .frame(width: proxy.size.width) + SSHAgentSetupView(buttonAction: advance) + .frame(width: proxy.size.width) + UpdaterExplainerView { + visible = false + } .frame(width: proxy.size.width) - SSHAgentSetupView(buttonAction: advance) - .frame(width: proxy.size.width) - UpdaterExplainerView { - visible = false } - .frame(width: proxy.size.width) + .offset(x: -proxy.size.width * CGFloat(stepIndex), y: 0) + .animation(.spring()) } - .offset(x: -proxy.size.width * CGFloat(stepIndex), y: 0) - .animation(.spring()) } } .frame(idealWidth: 500, idealHeight: 500) } + func advance() { stepIndex += 1 } @@ -47,11 +50,18 @@ struct StepView: View { let numberOfSteps: Int let currentStep: Int + // Ideally we'd have a geometry reader inside this view doing this for us, but that crashes on 11.0b7 + let width: CGFloat + var body: some View { - ZStack { + ZStack(alignment: .leading) { Rectangle() .foregroundColor(.blue) .frame(height: 5) + Rectangle() + .foregroundColor(.green) + .frame(width: max(0, (width / CGFloat(numberOfSteps - 1)) * CGFloat(currentStep) - 15), height: 5) + .animation(.spring()) HStack { ForEach(0..