diff --git a/desktop/src/features/onboarding/ui/BackupStep.tsx b/desktop/src/features/onboarding/ui/BackupStep.tsx index 5995e9dec6..f34d332835 100644 --- a/desktop/src/features/onboarding/ui/BackupStep.tsx +++ b/desktop/src/features/onboarding/ui/BackupStep.tsx @@ -214,8 +214,14 @@ export function BackupStep({ {previewMode ? "Create a private identity key" : "Backup options"} {previewMode ? ( -
- +
+

+ This key will be how you log into Buzz. You can use it across + Buzz communities and other platforms. +

+
+ +
) : (

@@ -237,7 +243,12 @@ export function BackupStep({

- Keep it private and secure at all times. + + Protected on this device. + + + Buzz stores your key securely on this device. +

@@ -245,7 +256,10 @@ export function BackupStep({
@@ -253,7 +267,10 @@ export function BackupStep({
@@ -368,7 +385,7 @@ export function BackupStep({ onClick={onNext} type="button" > - I understand, generate key + Create my private key ) : null} @@ -404,7 +421,7 @@ export function BackupStep({ )} > {previewMode ? ( - "Keep this key private. Anyone who has it can access your account." + "Don’t share this key. Anyone who has it can access your account." ) : ( <> {introStorageDescription} You can continue now, or{" "} diff --git a/desktop/src/features/onboarding/ui/DownloadKeyStep.tsx b/desktop/src/features/onboarding/ui/DownloadKeyStep.tsx index 6e3ebcd3d2..c81927d43f 100644 --- a/desktop/src/features/onboarding/ui/DownloadKeyStep.tsx +++ b/desktop/src/features/onboarding/ui/DownloadKeyStep.tsx @@ -1,4 +1,3 @@ -import { Check } from "lucide-react"; import { motion, useReducedMotion } from "motion/react"; import * as React from "react"; @@ -24,10 +23,6 @@ type DownloadKeyStepProps = { onBack: () => void; /** Use in-memory backup operations inside the dev-only workshop preview. */ previewMode?: boolean; - /** Whether the workshop user explicitly chose to test their saved backup. */ - previewTestRequested?: boolean; - /** Opens the existing guided test from the preview's saved confirmation. */ - onPreviewTestRequest?: () => void; }; /** @@ -40,8 +35,6 @@ export function DownloadKeyStep({ session, onBack, previewMode = false, - previewTestRequested = false, - onPreviewTestRequest, }: DownloadKeyStepProps) { const reduceMotion = useReducedMotion() ?? false; // Once the encrypted payload is saved, the creator advances to its guided @@ -49,7 +42,8 @@ export function DownloadKeyStep({ const hasCreated = session.created; const hasVerifiedBackup = session.verified; const hasSelectedBackup = session.test.stage === "password"; - const showPreviewSaved = previewMode && hasCreated && !previewTestRequested; + const showPreviewSaved = + previewMode && hasCreated && session.test.stage === "drop"; const [primaryActionSlot, setPrimaryActionSlot] = React.useState(null); @@ -86,18 +80,18 @@ export function DownloadKeyStep({ ? "That’s your backup file" : hasCreated ? "Optionally, test your backup" - : "Backup your key with a password"} + : "Create a secure backup file"}

{showPreviewSaved - ? "Keep the backup file and password somewhere safe. You’ll need both to restore your identity." + ? "Test your backup now to make sure it works. Drop the file here or select it from your device." : hasVerifiedBackup ? "Your file and password can restore your identity." : hasSelectedBackup ? "Now enter your password to prove you can unlock it." : hasCreated ? "Learn how your backup works. Drop the file you just saved and unlock it with your password." - : "Keep the downloaded file private — you need both it and your password to restore your identity. Save the backup password somewhere safe; Buzz cannot reset it if lost."} + : "This creates a password-protected file with your private key. Remember, Buzz can’t recover your key if you lose it."}

@@ -123,38 +117,14 @@ export function DownloadKeyStep({ className="mx-auto flex w-full max-w-140 justify-center px-6 py-5" data-testid="backup-password-panel" > - {showPreviewSaved ? ( -
-
-
- -
- ) : ( - - )} + @@ -163,12 +133,13 @@ export function DownloadKeyStep({ {showPreviewSaved ? ( ) : (
- {hasVerifiedBackup ? "Finish" : "Skip for now"} + {hasVerifiedBackup + ? previewMode + ? "Continue" + : "Finish" + : "Skip for now"} ) : null} diff --git a/desktop/src/features/onboarding/ui/EncryptedBackupCreator.tsx b/desktop/src/features/onboarding/ui/EncryptedBackupCreator.tsx index 93dca1222d..4cf2455544 100644 --- a/desktop/src/features/onboarding/ui/EncryptedBackupCreator.tsx +++ b/desktop/src/features/onboarding/ui/EncryptedBackupCreator.tsx @@ -857,6 +857,8 @@ export function EncryptedBackupCreator({ ) : state.savedPassword ? ( "Download backup again" + ) : previewMode ? ( + "Save backup" ) : ( "Backup key" )} diff --git a/desktop/src/features/onboarding/ui/IdentityKeyHelpDialog.tsx b/desktop/src/features/onboarding/ui/IdentityKeyHelpDialog.tsx index 6bac8e3d60..7f1703675c 100644 --- a/desktop/src/features/onboarding/ui/IdentityKeyHelpDialog.tsx +++ b/desktop/src/features/onboarding/ui/IdentityKeyHelpDialog.tsx @@ -58,7 +58,11 @@ export function IdentityKeyHelpDialog({ const trigger = ( ); @@ -96,15 +102,15 @@ export function IdentityKeyHelpDialog({ >

- Your Nostr identity has two parts: a private key that signs you - in and a public key you can safely share. You can find your - public identity anytime in Buzz Settings. + Buzz will create a Nostr identity with two parts: a private key + that signs you in and a public key you can safely share. You can + find your public identity anytime in Buzz settings.

- Your identity belongs to you, not Buzz, and can move with you to + This identity belongs to you, not Buzz, and can move with you to another device or compatible Nostr app. Because only you control the private key, Buzz can’t reset or recover it. Keep a backup - somewhere safe and never share it. + somewhere safe, and never share it.

diff --git a/desktop/src/features/onboarding/ui/OnboardingPreviewJourney.tsx b/desktop/src/features/onboarding/ui/OnboardingPreviewJourney.tsx index a08f04078b..a9c83c238d 100644 --- a/desktop/src/features/onboarding/ui/OnboardingPreviewJourney.tsx +++ b/desktop/src/features/onboarding/ui/OnboardingPreviewJourney.tsx @@ -33,20 +33,16 @@ export function BackupPasswordPreview({ onDone: () => void; session: EncryptedBackupSession; }) { - const [testRequested, setTestRequested] = React.useState(false); - return ( setTestRequested(false) : onBack} + onBack={onBack} security testId="onboarding-preview-backup-password" > setTestRequested(true)} previewMode - previewTestRequested={testRequested} session={session} />