/* Torre Auro — App router and bootstrap */
function App() {
const route = useRoute();
// Resolve which page to render
let page;
let key = route;
if (route === '/' || route === '') {
page = ;
key = 'home';
} else if (route === '/contacto') {
page = ;
} else if (route === '/perspectiva' || route === '/perspectiva/') {
page = ;
key = 'perspectiva';
} else if (route.startsWith('/perspectiva/')) {
const slug = route.replace(/^\/perspectiva\//, '').replace(/\/$/, '');
const post = POST_BY_SLUG[slug];
if (post) {
page = ;
key = 'post-' + slug;
} else {
page = ;
key = 'perspectiva';
window.history.replaceState({}, '', '/perspectiva');
}
} else if (route === '/eventos' || route === '/eventos/') {
page = ;
key = 'eventos';
} else if (route.startsWith('/eventos/')) {
const slug = route.replace(/^\/eventos\//, '').replace(/\/$/, '');
const ev = EVENT_BY_SLUG[slug];
if (ev) {
page = ;
key = 'event-' + slug;
} else {
page = ;
key = 'eventos';
window.history.replaceState({}, '', '/eventos');
}
} else {
// try match a floor by its route ID
const slug = route.replace(/^\/+/, '');
const floor = FLOOR_BY_ID[slug];
if (floor) {
page = ;
} else {
// 404 — redirect to home
page = ;
if (typeof window !== 'undefined') {
window.history.replaceState({}, '', '/');
}
key = 'home';
}
}
// Update document title
useEffect(() => {
const t = (() => {
if (route === '/') return 'Torre Auro · El ecosistema empresarial de Boca del Río';
if (route === '/contacto') return 'Contacto · Torre Auro';
if (route === '/perspectiva') return 'Perspectiva · Torre Auro';
if (route.startsWith('/perspectiva/')) {
const s = route.replace(/^\/perspectiva\//, '').replace(/\/$/, '');
const p = POST_BY_SLUG[s];
return p ? `${p.title} · Perspectiva` : 'Perspectiva · Torre Auro';
}
if (route === '/eventos') return 'El Calendario · Torre Auro';
if (route.startsWith('/eventos/')) {
const s = route.replace(/^\/eventos\//, '').replace(/\/$/, '');
const ev = EVENT_BY_SLUG[s];
return ev ? `${ev.title} · Torre Auro` : 'El Calendario · Torre Auro';
}
const slug = route.replace(/^\/+/, '');
const f = FLOOR_BY_ID[slug];
if (f) return `${f.sh} · ${f.short} · Torre Auro`;
return 'Torre Auro';
})();
document.title = t;
}, [route]);
return (
{page}
);
}
const root = ReactDOM.createRoot(document.getElementById('app'));
root.render();