commit 2d120b23e4004995ba48a81dca90fde1d66f8a76
parent ef2fb7e6f3f70be6530edfbe4d172f404914dc66
Author: triesap <tyson@radroots.org>
Date: Sat, 13 Jun 2026 15:21:56 -0700
ui: align identity setup copy
- rename stored-identity setup affordances around on-device unlock behavior
- make settings status rows describe saved versus runtime identity state
- replace sign-out copy with lock semantics while preserving the stable action id
- rename destructive reset copy to identity deletion without exposing raw secrets
Diffstat:
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/Radroots/Views/SettingsView.swift b/Radroots/Views/SettingsView.swift
@@ -16,8 +16,8 @@ struct SettingsView: View {
Text("No local Nostr identity is selected.")
.foregroundStyle(.secondary)
}
- LabeledContent("Stored identities", value: app.storedIdentityAvailable ? "1" : "0")
- LabeledContent("Runtime identity", value: app.runtimeIdentityReady ? "Ready" : "Locked")
+ LabeledContent("Saved identity", value: app.storedIdentityAvailable ? "Available" : "Missing")
+ LabeledContent("Runtime identity", value: app.runtimeIdentityReady ? "Unlocked" : "Locked")
NavigationLink {
ProfileView()
@@ -58,14 +58,14 @@ struct SettingsView: View {
Button {
app.signOut()
} label: {
- Label("Sign Out", systemImage: "lock.fill")
+ Label("Lock Identity", systemImage: "lock.fill")
}
.accessibilityIdentifier("field_ios.settings.sign_out")
Button(role: .destructive) {
showResetConfirmation = true
} label: {
- Label("Reset Local Identity", systemImage: "trash")
+ Label("Delete Identity", systemImage: "trash")
}
.accessibilityIdentifier("field_ios.settings.reset_identity")
} footer: {
@@ -78,16 +78,16 @@ struct SettingsView: View {
.listStyle(.insetGrouped)
.inlineNavigationTitle("Settings")
.confirmationDialog(
- "Reset local Nostr identity?",
+ "Delete saved Nostr identity?",
isPresented: $showResetConfirmation,
titleVisibility: .visible
) {
- Button("Reset Identity", role: .destructive) {
+ Button("Delete Identity", role: .destructive) {
resetIdentity()
}
Button("Cancel", role: .cancel) {}
} message: {
- Text("This removes the local identity from this app. Sign out keeps it.")
+ Text("This removes the identity saved on this iPhone. Lock keeps it available.")
}
.accessibilityIdentifier("field_ios.settings")
}
diff --git a/Radroots/Views/SetupView.swift b/Radroots/Views/SetupView.swift
@@ -22,7 +22,7 @@ struct SetupView: View {
.frame(width: 112, height: 112)
VStack(spacing: 8) {
- Text(app.hasKey ? "Local identity ready" : "Create a Nostr identity")
+ Text(app.hasKey ? "Identity saved on this iPhone" : "Create a Nostr identity")
.font(.title.weight(.semibold))
.multilineTextAlignment(.center)
@@ -33,7 +33,7 @@ struct SetupView: View {
.multilineTextAlignment(.center)
.textSelection(.enabled)
} else {
- Text("Radroots uses your local Nostr identity to publish and read field events.")
+ Text("Radroots uses a local Nostr identity to publish and read field events.")
.font(.subheadline)
.foregroundStyle(.secondary)
.multilineTextAlignment(.center)
@@ -51,7 +51,7 @@ struct SetupView: View {
Button {
continueWithIdentity()
} label: {
- Label("Continue", systemImage: "arrow.right.circle.fill")
+ Label("Unlock Identity", systemImage: "lock.open.fill")
.frame(maxWidth: .infinity)
}
.buttonStyle(.borderedProminent)
@@ -98,7 +98,7 @@ struct SetupView: View {
Button {
importIdentity()
} label: {
- Label("Use Secret Key", systemImage: "checkmark.circle.fill")
+ Label("Import Identity", systemImage: "checkmark.circle.fill")
.frame(maxWidth: .infinity)
}
.buttonStyle(.borderedProminent)