// Step 1: Auth + Step 2: Role + Step 4: Verify + Step 5: Welcome const I = window.SonaraIcons; function Step1Auth({ data, setData, onNext }) { const [showPwView, setShowPwView] = React.useState(false); const pw = data.password || ""; const strength = pw.length >= 12 && /[A-Z]/.test(pw) && /\d/.test(pw) ? "strong" : pw.length >= 8 && /[A-Z]/.test(pw) && /\d/.test(pw) ? "medium" : pw.length > 0 ? "weak" : ""; const strengthLabel = { weak: "Debole", medium: "Media", strong: "Forte" }[strength] || ""; return (
Inizia gratis

Crea il tuo account

Bastano 90 secondi. Userai SONARA per creare, collaborare, e monetizzare la tua musica.

oppure con email
setData({ ...data, email: e.target.value })}/>
setData({ ...data, password: e.target.value })}/>
{pw.length > 0 && ( <>
Sicurezza: {strengthLabel}
)}
setData({ ...data, terms: v })}> Accetto i Termini di servizio. Confermo di avere almeno 16 anni. setData({ ...data, privacy: v })}> Ho letto la Privacy Policy (GDPR). setData({ ...data, marketing: v })}> Sì, voglio ricevere aggiornamenti su nuove feature, beat e occasioni. (opzionale)
Hai già un account? Accedi
); } const ROLES = [ { id: "artist", title: "Artista", icon: "mic", desc: "Voglio fare musica e collaborare. Cerco beat, producer, mix, manager.", badge: "Più scelto" }, { id: "producer", title: "Producer", icon: "mixer", desc: "Vendo beat e servizi musicali. Cerco artisti che esplodano." }, { id: "manager", title: "Manager", icon: "chart", desc: "Gestisco artisti e cerco talenti da far crescere." }, ]; function Step2Role({ data, setData, onNext, onBack, layout = "spacious" }) { const compact = layout === "compact"; return (
Profilo

Chi sei su SONARA?

Scegli il tuo ruolo principale. Potrai aggiungerne altri in seguito dalle impostazioni.

{ROLES.map((r) => { const Ico = I[r.icon]; const sel = data.role === r.id; return ( ); })}
); } function Step4Verify({ data, onNext, onBack }) { const [resent, setResent] = React.useState(false); return (
Verifica

Controlla la tua email

Ti abbiamo mandato un link di verifica a {data.email || "la-tua@email.com"}
Clicca il link per attivare l'account. Il link è valido per 24 ore.

Non trovi l'email? Controlla la cartella spam o cambia indirizzo.
); } const WELCOME_ACTIONS = { artist: [ { ico: "search", t: "Esplora producer", s: "Trova il sound che hai in mente. Filtra per genere, città, prezzo." }, { ico: "audioFile", t: "Pubblica una richiesta", s: "Descrivi cosa cerchi: producer e mix engineer ti scrivono loro." }, { ico: "user", t: "Completa il profilo", s: "+30% di proposte se aggiungi foto, bio e link Spotify." }, ], producer: [ { ico: "audioFile", t: "Crea il primo listing", s: "Pubblica un beat o un servizio. È così che gli artisti ti trovano." }, { ico: "search", t: "Esplora artisti", s: "Scopri chi sta cercando producer in questo momento." }, { ico: "user", t: "Completa il profilo", s: "Portfolio, generi, DAW: rendi il tuo profilo un vero biglietto da visita." }, ], manager: [ { ico: "target", t: "Cerca talenti", s: "Filtra per genere, città, ascolti Spotify. Trova prima che esplodano." }, { ico: "collaboration", t: "Aggiungi al roster", s: "Tieni tutti i tuoi artisti in un unico posto. Senza chat infinita." }, { ico: "user", t: "Completa il profilo", s: "Tipologia, esperienza, aree di competenza: aiutaci a verificarti." }, ], }; function Step5Welcome({ data, role }) { const r = role || data.role || "artist"; const actions = WELCOME_ACTIONS[r]; const name = data.artistName || data.producerName || data.firstName || "amico"; return (
Account attivato

Benvenuto su SONARA, {name}.

Il tuo profilo è pronto. Ecco da dove iniziare.

Hai guadagnato 1 mese gratis di funzioni Pro.
Crediti accreditati. Validi fino al 30 giorni dall'attivazione.
{actions.map((a, idx) => { const Ico = I[a.ico]; return ( ); })}
Vai alla dashboard →
); } Object.assign(window, { Step1Auth, Step2Role, Step4Verify, Step5Welcome, ROLES });