feat(settings): Passkeys section
Informational only, per Outline itself — passkey/WebAuthn registration needs a browser context, so this stays web-only rather than a placeholder for missing native functionality.
This commit is contained in:
@@ -82,6 +82,7 @@ struct SettingsView: View {
|
|||||||
case .profile: profileDetail
|
case .profile: profileDetail
|
||||||
case .preferences: preferencesDetail
|
case .preferences: preferencesDetail
|
||||||
case .notifications: notificationsDetail
|
case .notifications: notificationsDetail
|
||||||
|
case .passkeys: passkeysDetail
|
||||||
case .offlineSync: offlineSyncDetail
|
case .offlineSync: offlineSyncDetail
|
||||||
case .advanced: advancedDetail
|
case .advanced: advancedDetail
|
||||||
case .about: aboutDetail
|
case .about: aboutDetail
|
||||||
@@ -715,6 +716,29 @@ struct SettingsView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - Passkeys
|
||||||
|
|
||||||
|
/// Read-only on purpose — Outline only exposes passkey management from
|
||||||
|
/// its own web app (WebAuthn registration needs a browser context this
|
||||||
|
/// native app doesn't have), so this page is informational, not a
|
||||||
|
/// placeholder for missing functionality.
|
||||||
|
private var passkeysDetail: some View {
|
||||||
|
VStack(alignment: .leading, spacing: 16) {
|
||||||
|
sectionHeader
|
||||||
|
Text("Passkeys allow you to sign in safely without a password using your device's biometric authentication (Face ID, Touch ID, Windows Hello) or security key.")
|
||||||
|
.font(.subheadline)
|
||||||
|
.foregroundStyle(.secondary)
|
||||||
|
.frame(maxWidth: 480, alignment: .leading)
|
||||||
|
|
||||||
|
Label("This setting can only be changed from the web version of Outline.", systemImage: "lock.fill")
|
||||||
|
.font(.callout)
|
||||||
|
.foregroundStyle(.secondary)
|
||||||
|
.padding(12)
|
||||||
|
.frame(maxWidth: 480, alignment: .leading)
|
||||||
|
.background(.quaternary.opacity(0.5), in: RoundedRectangle(cornerRadius: 8, style: .continuous))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// MARK: - Offline & Sync
|
// MARK: - Offline & Sync
|
||||||
|
|
||||||
private var offlineSyncDetail: some View {
|
private var offlineSyncDetail: some View {
|
||||||
|
|||||||
Reference in New Issue
Block a user