Debug: loadMessages/appendMessage логи

Grok рекомендовал: console.log чтобы понять:
1. r.messages это массив
2. appendMessage не падает с exception
3. #messages элемент существует
This commit is contained in:
root 2026-08-21 12:38:01 +00:00
parent 53bf382b84
commit bfaa3af1af
2 changed files with 26 additions and 12 deletions

View File

@ -34,15 +34,15 @@
</button> </button>
</nav> </nav>
</div> </div>
<script src="/js/tg.js?v=26"></script> <script src="/js/tg.js?v=27"></script>
<script src="/js/api.js?v=26"></script> <script src="/js/api.js?v=27"></script>
<script src="/js/views/map.js?v=26"></script> <script src="/js/views/map.js?v=27"></script>
<script src="/js/views/chats.js?v=26"></script> <script src="/js/views/chats.js?v=27"></script>
<script src="/js/views/chat.js?v=26"></script> <script src="/js/views/chat.js?v=27"></script>
<script src="/js/views/profile.js?v=26"></script> <script src="/js/views/profile.js?v=27"></script>
<script src="/js/views/settings.js?v=26"></script> <script src="/js/views/settings.js?v=27"></script>
<script src="/js/views/onboarding.js?v=26"></script> <script src="/js/views/onboarding.js?v=27"></script>
<script src="/js/views/review.js?v=26"></script> <script src="/js/views/review.js?v=27"></script>
<script src="/js/app.js?v=26"></script> <script src="/js/app.js?v=27"></script>
</body> </body>
</html> </html>

View File

@ -59,19 +59,32 @@ const ChatView = {
}, },
async loadMessages() { async loadMessages() {
console.log('[Chat] loadMessages start, chatId:', this.chatId);
try { try {
const r = await API.ChatApi.listMessages(this.chatId); const r = await API.ChatApi.listMessages(this.chatId);
console.log('[Chat] listMessages response:', JSON.stringify(r).slice(0, 500), 'messages isArray:', Array.isArray(r.messages));
const box = document.getElementById('messages'); const box = document.getElementById('messages');
console.log('[Chat] messages box:', box, 'tag:', box?.tagName);
if (!box) { console.error('[Chat] no #messages element'); return; }
box.innerHTML = ''; box.innerHTML = '';
r.messages.forEach((m) => this.appendMessage(m)); const msgs = Array.isArray(r.messages) ? r.messages : (Array.isArray(r) ? r : []);
console.log('[Chat] will append', msgs.length, 'messages');
msgs.forEach((m) => {
try { this.appendMessage(m); } catch (e) { console.error('[Chat] appendMessage failed for', m, e); }
});
box.scrollTop = box.scrollHeight; box.scrollTop = box.scrollHeight;
} catch (e) { } catch (e) {
console.warn(e); console.error('[Chat] loadMessages error:', e);
try {
fetch('/api/v1/debug/log', { method: 'POST', credentials: 'include', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ kind: 'ChatLoadError', msg: String(e && e.message), stack: String(e && e.stack || '').slice(0, 400) }) });
} catch {}
} }
}, },
appendMessage(m) { appendMessage(m) {
console.log('[Chat] appendMessage called, m:', JSON.stringify(m).slice(0, 200), 'me check:', API.Store.user && m.sender_id === (API.Store.user.id || API.Store.user.user_id));
const box = document.getElementById('messages'); const box = document.getElementById('messages');
if (!box) { console.error('[Chat] appendMessage: no box'); return; }
const me = API.Store.user && m.sender_id === (API.Store.user.id || API.Store.user.user_id); const me = API.Store.user && m.sender_id === (API.Store.user.id || API.Store.user.user_id);
const div = document.createElement('div'); const div = document.createElement('div');
div.className = 'bubble-b ' + (me ? 'out' : 'in'); div.className = 'bubble-b ' + (me ? 'out' : 'in');
@ -95,6 +108,7 @@ const ChatView = {
} }
} }
box.appendChild(div); box.appendChild(div);
console.log('[Chat] appended bubble, children:', box.children.length);
box.scrollTop = box.scrollHeight; box.scrollTop = box.scrollHeight;
}, },