// ── Shared Message Page (öffentlich, kein Login nötig) ── registerPage('shared', { init: async (params) => { const token = params.id; const container = document.getElementById('sharedContent'); if (!token || !container) { container.innerHTML = '
'; return; } try { const data = await apiGetShared(token); container.innerHTML = ''; if (data.messages && data.messages.length > 0) { // Mehrere Nachrichten (Thread mit Kontext) data.messages.forEach(msg => { const div = document.createElement('div'); div.className = 'msg ' + (msg.role === 'user' ? 'user' : 'assistant') + ' markdown'; if (msg.role === 'user') { renderUserContent(div, msg.content); } else { div.innerHTML = renderMarkdown(msg.content); parseFluentEmojis(div); wrapKreaGalleries(div); } container.appendChild(div); }); } else if (data.message) { // Einzelne Nachricht const msg = data.message; const div = document.createElement('div'); div.className = 'msg ' + (msg.role === 'user' ? 'user' : 'assistant') + ' markdown'; if (msg.role === 'user') { renderUserContent(div, msg.content); } else { div.innerHTML = renderMarkdown(msg.content); parseFluentEmojis(div); wrapKreaGalleries(div); } container.appendChild(div); } // Timestamp anzeigen if (data.createdAt) { const meta = document.createElement('div'); meta.className = 'shared-meta'; const d = new Date(data.createdAt); meta.innerHTML = ' Geteilt am ' + d.toLocaleDateString('de-DE') + ' um ' + d.toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' }); container.appendChild(meta); } } catch (err) { container.innerHTML = ''; } }, destroy: () => {} });