// Step 3 — Profile wizard with sub-steps per role const I3 = window.SonaraIcons; const GENRES = ["trap","hip-hop","pop","indie","R&B","drill","elettronica","house","rock","cantautorato","jazz","classica","reggaeton","latin","altro"]; const CITIES = ["Milano","Roma","Napoli","Torino","Bologna","Firenze","Palermo","Genova","Bari","Verona"]; const DAWS = ["Ableton","FL Studio","Logic","Pro Tools","Reaper","Cubase","Altro"]; const PRODUCER_SERVICES = ["Beat custom","Beat pronti","Mix","Master","Vocal production","Sound design","Songwriting","Altro"]; const ARTIST_LOOKING = ["Producer","Beat pronti","Mix/Master","Manager","Vocal coach","Altro"]; const MANAGER_AREAS = ["Contratti label","Booking live","Marketing","Distribuzione digitale","A&R","Sync/Licensing","Management 360°","Altro"]; const ROSTER = ["1–3 artisti","4–10 artisti","11–25 artisti","25+ artisti"]; function SubstepStrip({ idx, total }) { return (
{Array.from({ length: total }).map((_, i) => (
))}
); } function AvatarUploader({ name }) { const initial = (name || "?").trim().slice(0, 1).toUpperCase() || "S"; return (
{initial}
Aggiungi una foto
Trascina o scegli un file. JPG/PNG ≤ 5MB.
); } function NavRow({ onBack, onNext, nextLabel = "Continua", canNext = true, skipLabel }) { return (
{skipLabel && }
); } // === ARTIST === function ArtistWizard({ data, setData, onDone, onBack }) { const [sub, setSub] = React.useState(0); const total = 4; const next = () => sub < total - 1 ? setSub(sub + 1) : onDone(); const back = () => sub === 0 ? onBack() : setSub(sub - 1); return (
Profilo Artista · {sub + 1}/{total} {sub === 0 && ( <>

Come ti chiami sul palco?

Il tuo nome d'arte appare in ogni listing, proposta e collaborazione.

setData({ ...data, artistName: e.target.value })}/> setData({ ...data, city: e.target.value })}/> {CITIES.map((c) => )} {sub === 1 && ( <>

Che musica fai?

Scegli da 1 a 3 generi. Servono per matching e discovery.

setData({ ...data, genres: v })} max={3}/> setData({ ...data, looking: v })}/> 0}/> )} {sub === 2 && ( <>

Mostrati al meglio.

Tutto opzionale, ma profili completi ricevono +30% di proposte.