NookStage

Your shortlist

Fallows

Keep the spaces that feel right for your event close at hand.

Browse more venues
`; document.querySelector('footer').innerHTML = ` `; (() => { const root = document.documentElement; const saved = localStorage.getItem('nookstage-theme'); if (saved === 'dark') root.classList.add('dark'); document.querySelector('[data-theme-toggle]')?.addEventListener('click', () => { root.classList.toggle('dark'); localStorage.setItem('nookstage-theme', root.classList.contains('dark') ? 'dark' : 'light'); }); document.querySelector('[data-open-login]')?.addEventListener('click', () => document.querySelector('#login-modal').hidden = false); document.querySelector('[data-open-register]')?.addEventListener('click', () => document.querySelector('#register-modal').hidden = false); document.querySelectorAll('[data-close-modal]').forEach(button => button.addEventListener('click', () => button.closest('[role="dialog"]').hidden = true)); const cookieBanner = document.querySelector('#cookie-banner'); if (localStorage.getItem('nookstage-cookies') === 'accepted') cookieBanner.hidden = true; document.querySelector('[data-accept-cookies]')?.addEventListener('click', () => { localStorage.setItem('nookstage-cookies','accepted'); cookieBanner.hidden = true; }); })(); const grid = document.querySelector('#saved-grid'); fetch('./catalog.json').then(r => r.json()).then(all => { function render() { const ids = JSON.parse(localStorage.getItem('nookstage-favorites') || '[]'); const saved = all.filter(x => ids.includes(x.id)); grid.innerHTML = saved.length ? saved.map(x => `

${x.city} · ${x.category}

${x.name}

${x.description}

`).join('') : `

Your shortlist is ready for its first venue.

`; } render(); grid.onclick = e => { if (e.target.dataset.remove) { const ids = JSON.parse(localStorage.getItem('nookstage-favorites') || '[]').filter(x => x !== e.target.dataset.remove); localStorage.setItem('nookstage-favorites', JSON.stringify(ids)); render(); } }; }).catch(() => { grid.innerHTML = `

Your shortlist is ready for its first venue.

`; });