- {/* Welcome Step - New engaging introduction */}
- {step === 'welcome' && (
-
- {/* Hero illustration */}
-
-
-
- {/* Benefits */}
-
-
-
- Community-run, skater-owned
-
-
-
- You control your account
-
-
-
- Connect with skaters worldwide
-
-
-
-
-
-
- )}
-
- {/* Generate Step - Enhanced with animations */}
- {step === 'generate' && (
-
-
- {/* Animated background elements */}
- {showSparkles && (
-
- {[...Array(12)].map((_, i) => (
-
- ))}
-
- )}
-
-
- {isLoading ? (
-
-
-
-
-
- Generating your secret key...
-
-
- Creating your secure key
-
-
-
- ) : (
-
-
-
-
- Ready to generate your secret key?
-
-
- This key will be your password to access applications within the Nostr network.
-
-
-
-
- )}
-
-
-
- {!isLoading && (
-
- )}
-
- )}
-
- {/* Download Step - Whimsical and magical */}
- {step === 'download' && (
-
- {/* Key reveal */}
-
- {/* Sparkles */}
-
-
-
-
-
-
-
-
-
-
-
- Your secret key has been generated!
-
-
- {/* Warning */}
-
-
-
-
-
- Important Warning
-
-
-
- This key is your primary and only means of accessing your account. Store it safely and securely.
-
-
-
-
-
-
- {/* Your Keys - nsec and npub with copy buttons and privacy controls */}
-
-
- {/* nsec (secret key) */}
-
-
-
-
-
-
-
-
-
- {showNsec ? nsec : '••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••'}
-
-
⚠️ This is your PASSWORD - keep it secret and safe!
-
-
- {/* npub (public key) */}
-
-
-
-
-
-
-
-
-
- {showNpub ? (() => {
- try {
- const { data } = nip19.decode(nsec);
- const pk = getPublicKey(data as Uint8Array);
- return nip19.npubEncode(pk);
- } catch {
- return 'Error generating npub';
- }
- })() : '••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••'}
-
-
✓ This is your USERNAME - safe to share publicly
-
-
-
-
What's the difference?
-
- - nsec = Your password. Never share this!
- - npub = Your username. Share this with friends!
-
-
-
-
-
- {/* Security options */}
-
-
-
-
Now download your secret key to keep it safe:
-
-
- {/* Download Option */}
-
-
-
-
-
-
-
-
-
- {/* Continue button */}
-
-
-
- )}
-
{/* Profile Step - Optional profile setup */}
{step === 'profile' && (
@@ -658,11 +261,11 @@ const SignupDialog: React.FC
= ({ isOpen, onClose, onComplete
- Almost there! Let's set up your profile
+ You're in! 🛹 Add a name so skaters know who you are
- Your profile is your identity on Nostr.
+ This is optional — you can skip it and fill it in later.
@@ -759,12 +362,12 @@ const SignupDialog: React.FC
= ({ isOpen, onClose, onComplete
{isPublishing ? (
<>
- Creating Profile...
+ Saving...
>
) : (
<>
- Create Profile & Finish
+ Save & Start Skating
>
)}
@@ -788,50 +391,91 @@ const SignupDialog: React.FC = ({ isOpen, onClose, onComplete
)}
- {/* Done Step - Account created with signer recommendation */}
+ {/* Done Step - Account created, gentle optional backup */}
{step === 'done' && (