import { route, start, navigate } from './router.js'; import { auth, restoreSession } from './embyApi.js'; import { renderShell } from './shell.js'; import { renderLogin } from './views/login.js'; import { renderHome } from './views/home.js'; import { renderLibrary } from './views/library.js'; import { renderSeries } from './views/series.js'; import { renderArtist } from './views/artist.js'; import { renderAlbum } from './views/album.js'; import { renderPartyPlayer } from './views/player.js'; route('/', () => navigate('/home')); route('/login', renderLogin); route('/home', renderHome); route('/library/:id', renderLibrary); route('/series/:id', renderSeries); route('/artist/:id', renderArtist); route('/album/:id', renderAlbum); route('/party/:id', renderPartyPlayer); /** * Renders either the bare login screen or the full shell (sidebar + routed * content), depending on whether our session cookie is still valid. Exported * so login.js can call it again right after a successful sign-in - there's * no shell/router running yet at that point, just the login form. */ export async function boot() { const appEl = document.getElementById('app'); const loggedIn = auth.isLoggedIn || await restoreSession(); if (!loggedIn) { appEl.innerHTML = ''; renderLogin(appEl); return; } const mainContent = await renderShell(appEl); start(mainContent); } boot();