import { getItem } from '../embyApi.js'; import { createParty, joinParty } from '../party.js'; import { navigate } from '../router.js'; export function renderItemDetail(root, params) { root.innerHTML = 'Chargement...'; getItem(params.id).then((item) => { root.innerHTML = ` ← Retour ${escapeHtml(item.name)} ${escapeHtml(item.overview || '')} Démarrer une watch party ou Code de la party Rejoindre `; root.querySelector('#back').addEventListener('click', () => history.back()); root.querySelector('#createBtn').addEventListener('click', async () => { try { const party = await createParty(item.id); navigate(`/party/${party.partyId}`); } catch (err) { root.querySelector('#error').textContent = err.message; } }); root.querySelector('#joinBtn').addEventListener('click', async () => { const code = root.querySelector('#joinCode').value.trim(); try { const party = await joinParty(code); navigate(`/party/${party.partyId}`); } catch (err) { root.querySelector('#error').textContent = err.message; } }); }).catch(() => { root.innerHTML = 'Titre introuvable.'; }); } function escapeHtml(str) { const div = document.createElement('div'); div.textContent = str; return div.innerHTML; }
Chargement...
${escapeHtml(item.overview || '')}
Titre introuvable.