async function init() {
const listEl = document.getElementById('catalog-list');
const viewerEl = document.getElementById('viewer');
let objetos = [];
try {
const res = await fetch('data/objects.json');
objetos = await res.json();
} catch (err) {
viewerEl.innerHTML = '
No se pudo cargar el catálogo (data/objects.json).
';
console.error(err);
return;
}
listEl.innerHTML = objetos.map(obj => `
`).join('');
function mostrarObjeto(obj) {
viewerEl.innerHTML = `
- Catálogo
- ${obj.catalogo}
- Tipo
- ${obj.tipo}
- Constelación
- ${obj.constelacion}
- Magnitud
- ${obj.magnitud}
- A.R.
- ${obj.ar}
- Dec.
- ${obj.dec}
${obj.nombre}
${obj.descripcion}
Ver en Wikipedia →
`;
document.querySelectorAll('.catalog__item button').forEach(btn => {
btn.classList.toggle('active', btn.dataset.id === obj.id);
});
}
listEl.addEventListener('click', (e) => {
const btn = e.target.closest('button[data-id]');
if (!btn) return;
const obj = objetos.find(o => o.id === btn.dataset.id);
if (obj) mostrarObjeto(obj);
});
// Muestra el primer objeto por defecto
if (objetos.length) mostrarObjeto(objetos[0]);
}
document.addEventListener('DOMContentLoaded', init);