${escapeHtml((err as Error).message || 'Impossible de charger cette lounge party.')}
`; return; } root.innerHTML = html; root.querySelector('#back')!.addEventListener('click', () => history.back()); wireActions(root, staticId); render(root, detail); } /** Re-fetches and re-renders in place - after any action that changed * progress or membership. */ async function reload(root: HTMLElement, staticId: string): PromiseAucun membre pour le moment.
'; } /** The whole item list, with the group's state and the viewer's own. */ function renderItems(root: HTMLElement, detail: StaticPartyDetailDto): void { root.querySelector('#itemList')!.innerHTML = detail.items.map((item, i) => `