Files
Project_Velocity/iOS/velocity-ipad/velocity/App/ConfigurationGateView.swift
sayan 7ee51543d9
Some checks failed
Production Readiness / backend-contracts (push) Failing after 1m47s
Production Readiness / webos-typecheck (push) Successful in 1m57s
Production Readiness / ipad-parse (push) Successful in 1m32s
Merge Conflicts (#41)
Co-authored-by: Sayan Datta <sayan@Sayans-MacBook-Air.local>
Reviewed-on: #41
2026-04-28 11:32:56 +05:30

43 lines
1.7 KiB
Swift

import SwiftUI
struct ConfigurationGateView: View {
var body: some View {
ZStack {
VelocityTheme.background.ignoresSafeArea()
VStack(spacing: 24) {
VStack(spacing: 10) {
Text("Configure Velocity")
.font(.system(size: 34, weight: .bold))
.foregroundStyle(VelocityTheme.foreground)
Text("This iPad now expects a real runtime session. Add the production endpoint and operator credentials before live data can load.")
.font(.system(size: 14))
.foregroundStyle(VelocityTheme.mutedFg)
.multilineTextAlignment(.center)
.frame(maxWidth: 700)
}
SessionConfigurationPanel(
title: "Secure Session Setup",
subtitle: "Runtime credentials replace the old build-time-only configuration path. Velocity saves secrets in Keychain and immediately tries a live refresh after saving.",
primaryActionTitle: "Save and continue",
allowsClearingStoredConfiguration: false
)
.frame(maxWidth: 760)
Text("Production note: this setup flow does not bypass backend TLS failures. If the configured endpoint is unhealthy, Velocity will save the session and report the live refresh error truthfully.")
.font(.system(size: 11))
.foregroundStyle(VelocityTheme.mutedFg)
.multilineTextAlignment(.center)
.frame(maxWidth: 760)
}
.padding(28)
}
}
}
#Preview {
ConfigurationGateView()
}