import SwiftUI private enum QuickStep: Hashable { case viewfinder case confirm case batch } struct QuickCaptureFlow: View { var onClose: () -> Void @State private var step: QuickStep = .viewfinder @State private var snapCount = 0 var body: some View { ZStack { switch step { case .viewfinder: A1ViewfinderView( onShoot: { snapCount += 1 withAnimation(.easeInOut(duration: 0.25)) { step = .confirm } }, onClose: onClose ) .transition(.opacity) case .confirm: A2ConfirmView( onSave: { if snapCount >= 2 { withAnimation { step = .batch } } else { onClose() } }, onNext: { withAnimation { step = .viewfinder } }, onBack: { withAnimation { step = .viewfinder } } ) .transition(.opacity) case .batch: A3BatchView( onAddMore: { withAnimation { step = .viewfinder } }, onFinish: onClose, onBack: { withAnimation { step = .confirm } } ) .transition(.opacity) } } } }