import { route, start, navigate } from './router.js'; import { auth, restoreSession } from './embyApi.js'; import { renderLogin } from './views/login.js'; import { renderBrowse } from './views/browse.js'; import { renderItemDetail } from './views/itemDetail.js'; import { renderPartyPlayer } from './views/player.js'; function requireAuth(renderFn) { return async (root, params) => { if (!auth.isLoggedIn && !(await restoreSession())) { navigate('/login'); return; } renderFn(root, params); }; } route('/', () => navigate('/browse')); route('/login', renderLogin); route('/browse', requireAuth(renderBrowse)); route('/item/:id', requireAuth(renderItemDetail)); route('/party/:id', requireAuth(renderPartyPlayer)); start(document.getElementById('app'));