Merge branch 'main' into codex/implement-new-chat-age-restrictions-8f52zt

This commit is contained in:
2025-11-03 18:52:57 +01:00
committed by GitHub
+3 -41
View File
@@ -1646,7 +1646,6 @@ if (isset($_GET['stream']) && $_GET['stream'] === 'events') {
body { body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
background: linear-gradient(135deg, #fef08a 0%, #f97316 100%); background: linear-gradient(135deg, #fef08a 0%, #f97316 100%);
background-color: #fff9db;
min-height: 100vh; min-height: 100vh;
display: flex; display: flex;
align-items: center; align-items: center;
@@ -3016,7 +3015,6 @@ const chatStateMessageEl = document.getElementById('chatStateMessage');
const chatMessagesHeaderEl = document.getElementById('chatMessagesHeader'); const chatMessagesHeaderEl = document.getElementById('chatMessagesHeader');
const chatInputEl = document.getElementById('chatInput'); const chatInputEl = document.getElementById('chatInput');
const sendButtonEl = document.getElementById('sendButton'); const sendButtonEl = document.getElementById('sendButton');
let messageAbortController = null;
async function loadUsers() { async function loadUsers() {
if (!userListEl) { if (!userListEl) {
@@ -3076,23 +3074,9 @@ function renderUserList() {
return; return;
} }
const offlineLimit = 5;
const onlineUsers = [];
const offlineUsers = [];
filtered.forEach(user => {
if (user.is_online) {
onlineUsers.push(user);
} else {
offlineUsers.push(user);
}
});
const limitedUsers = onlineUsers.concat(offlineUsers.slice(0, offlineLimit));
const fragment = document.createDocumentFragment(); const fragment = document.createDocumentFragment();
limitedUsers.forEach(user => { filtered.forEach(user => {
const item = document.createElement('button'); const item = document.createElement('button');
item.type = 'button'; item.type = 'button';
item.className = 'user-item' + (Number(user.id) === Number(state.selectedUserId) ? ' active' : ''); item.className = 'user-item' + (Number(user.id) === Number(state.selectedUserId) ? ' active' : '');
@@ -3140,15 +3124,6 @@ function renderUserList() {
userListEl.innerHTML = ''; userListEl.innerHTML = '';
userListEl.appendChild(fragment); userListEl.appendChild(fragment);
if (offlineUsers.length > offlineLimit) {
const hint = document.createElement('div');
hint.className = 'user-status';
hint.style.textAlign = 'center';
hint.style.marginTop = '12px';
hint.textContent = 'Weitere Offline-Nutzer werden ausgeblendet.';
userListEl.appendChild(hint);
}
} }
function renderChatHeader(displayName) { function renderChatHeader(displayName) {
@@ -3230,18 +3205,11 @@ async function loadMessages(userId) {
return; return;
} }
if (messageAbortController) {
messageAbortController.abort();
}
const currentController = new AbortController();
messageAbortController = currentController;
state.isLoadingMessages = true; state.isLoadingMessages = true;
updateChatState('loading', 'Nachrichten werden geladen…'); updateChatState('loading', 'Nachrichten werden geladen…');
try { try {
const response = await fetch(`?action=get_messages&user_id=${userId}`, { signal: currentController.signal }); const response = await fetch(`?action=get_messages&user_id=${userId}`);
if (!response.ok) { if (!response.ok) {
throw new Error('NETZWERK_FEHLER'); throw new Error('NETZWERK_FEHLER');
} }
@@ -3266,9 +3234,6 @@ async function loadMessages(userId) {
updateChatState('empty', 'Noch keine Nachrichten. Starte das Gespräch!'); updateChatState('empty', 'Noch keine Nachrichten. Starte das Gespräch!');
} }
} catch (error) { } catch (error) {
if (error && error.name === 'AbortError') {
return;
}
console.error('Nachrichten konnten nicht geladen werden:', error); console.error('Nachrichten konnten nicht geladen werden:', error);
state.messages = []; state.messages = [];
if (chatMessagesEl) { if (chatMessagesEl) {
@@ -3279,12 +3244,9 @@ async function loadMessages(userId) {
: 'Nachrichten konnten nicht geladen werden. Bitte versuche es erneut.'; : 'Nachrichten konnten nicht geladen werden. Bitte versuche es erneut.';
updateChatState('error', errorMessage); updateChatState('error', errorMessage);
} finally { } finally {
if (messageAbortController === currentController) {
messageAbortController = null;
state.isLoadingMessages = false; state.isLoadingMessages = false;
} }
} }
}
function renderMessages() { function renderMessages() {
const container = chatMessagesEl; const container = chatMessagesEl;
@@ -3419,7 +3381,7 @@ function startSSE() {
state.eventSource.close(); state.eventSource.close();
} }
setTimeout(startSSE, 500); setTimeout(startSSE, 1500);
}; };
} }