diff --git a/Outpost/Features/Account/SettingsView.swift b/Outpost/Features/Account/SettingsView.swift index 433a4af..3c0e14b 100644 --- a/Outpost/Features/Account/SettingsView.swift +++ b/Outpost/Features/Account/SettingsView.swift @@ -82,6 +82,7 @@ struct SettingsView: View { case .profile: profileDetail case .preferences: preferencesDetail case .notifications: notificationsDetail + case .passkeys: passkeysDetail case .offlineSync: offlineSyncDetail case .advanced: advancedDetail 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 private var offlineSyncDetail: some View {