);
}
function Meta({ico, label, value}) {
return (
{ico}
{label.toUpperCase()}
{value}
);
}
/* ============ STORIES ============ */
const STORIES = [
{a:'lucia', b:'mateo', title:'"Nos escaneó una IA. Nos casó Madrid."', names:'Lucía & Mateo', tagline:'8 meses juntos · viven en Chamberí', city:'Madrid',
quote:'Al 3er café ya sabía. Al 5º, se lo dije. Un año más tarde, entré a un piso que ya era nuestro. Y todo empezó porque una cámara nos paró en la Gran Vía.',
video:'CRUCE · EP 24', duration:'2:14'},
{a:'carmen', b:'javier', title:'"Yo no creía. Él, tampoco."', names:'Carmen & Javier', tagline:'1 año · a caballo Sevilla ↔ Barcelona', city:'Sevilla',
quote:'Ambos veníamos de rupturas duras. Cruce nos emparejó con 84%. Ninguno le dio importancia. Hasta que, dos meses después, cogimos un AVE y ya no lo dejamos.',
video:'CRUCE · EP 18', duration:'1:56'},
{a:'nerea', b:'diego', title:'"Cruzamos miradas en el Sónar."', names:'Nerea & Diego', tagline:'4 meses · comparten piso en Poblenou', city:'Barcelona',
quote:'Yo iba con amigas. Él, en el DJ set. Nos escanearon en la puerta y nos apuntamos a la zona Cruce. A la tercera canción, ya era tarde para no enamorarme.',
video:'CRUCE · EP 31', duration:'1:42'},
{a:'alba', b:'pablo', title:'"Un debate sobre el amor de dos horas."', names:'Alba & Pablo', tagline:'6 meses · Valencia', city:'Valencia',
quote:'Discutimos sobre Barthes durante toda la primera cita. Salimos peleados. Nos llamamos al día siguiente. Nunca hemos vuelto a estar solos desde entonces.',
video:'CRUCE · EP 12', duration:'2:31'},
];
function Stories({ go }) {
const [active, setActive] = useState(0);
const s = STORIES[active];
return (
Empezar es gratis. Verificarse tarda 90 segundos. El match puede tardar menos.
);
}
/* ============ MI PERFIL ============ */
function Me({ go }) {
// Fase 1b: sesión real + derechos RGPD funcionando
const [session, setSession] = useState(() => (window.CruceAPI && window.CruceAPI.Session.get()) || null);
const [msg, setMsg] = useState('');
const user = session && session.user;
async function exportData() {
setMsg('Preparando tu archivo…');
try {
const data = await window.CruceAPI.gdprExport();
const blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' });
const a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = 'cruce-mis-datos.json';
a.click();
setMsg('Descargado. Revisa tu carpeta de descargas.');
} catch (e) { setMsg(e.message || 'Error al exportar.'); }
}
async function deleteAccount() {
if (!window.CruceAPI) return;
const ok = window.confirm('¿Eliminar tu cuenta de forma permanente? Esta acción no se puede deshacer. Se anonimizarán tus datos en 72 h.');
if (!ok) return;
try {
await window.CruceAPI.gdprDelete();
window.CruceAPI.Session.clear();
setSession(null);
setMsg('Cuenta eliminada. Gracias por haber estado.');
setTimeout(()=>go('landing'), 1200);
} catch (e) { setMsg(e.message || 'Error al eliminar.'); }
}
function logout() {
window.CruceAPI.Session.clear();
setSession(null);
go('landing');
}
return (
Miembro desde {user.created_at ? new Date(user.created_at).toLocaleDateString('es-ES') : '—'} · Plan {user.plan || 'free'}
) : (
Esta demo muestra un perfil de ejemplo. Entra con tu cuenta para ver tus datos reales,
exportarlos o eliminarlos (RGPD).
)}
MembresíaCruce Club · activa
29€ / mes
Se renueva el 12 · sept · 2026
{['Chat cifrado','Videollamada','Matches ilimitados','Prioridad en eventos'].map(f => (
{f}
))}
Test de afinidadActualizado hace 12 días
83%
Perfil completo al 83%.
Añade 2 respuestas más para mejorar tus matches.
Privacidad e IA
{[
{t:'Uso de IA en test de afinidad', v:true, d:'Necesario para calcular matches.'},
{t:'Compartir mi % con otros usuarios', v:true, d:'Ellos ven tu score de afinidad.'},
{t:'Aparecer en muros de otros', v:true, d:'Puedes ocultarte 7 días.'},
{t:'Recibir invitaciones a eventos', v:true, d:'Solo eventos de tu ciudad.'},
].map((r,i) => (
{r.t}
{r.d}
))}
Descargar mis datos
Todo lo que tenemos de ti, en JSON (Art. 20 RGPD).
Eliminar mi cuenta
Anonimización permanente en 72h (Art. 17 RGPD).
{msg &&
{msg}
}
Cruce no comparte tus datos con terceros con fines comerciales. Ver{' '}
Política de Privacidad.