From 716f074ea76359f9111e11cdb06e762ce18798aa Mon Sep 17 00:00:00 2001 From: root Date: Thu, 20 Aug 2026 21:29:52 +0000 Subject: [PATCH] =?UTF-8?q?Debug:=20showView=20error=20catch=20=E2=80=94?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BA=D0=B0=D0=B6=D0=B5=D1=82=20=D0=BE=D1=88?= =?UTF-8?q?=D0=B8=D0=B1=D0=BA=D1=83=20=D0=B2=20root?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/js/app.js | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/public/js/app.js b/public/js/app.js index 1fff6a4..3aeb5a9 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -311,17 +311,22 @@ const App = { } // defer на следующий тик — даём браузеру отрисовать таб/placeholder - requestAnimationFrame(() => { - switch (name) { - case 'map': MapView.render(root); break; - case 'chats': ChatsView.render(root); break; - case 'chat': ChatView.render(root, params); break; - case 'profile': ProfileView.render(root); break; - case 'settings': SettingsView.render(root); break; - case 'review': ReviewView.render(root, params); break; - case 'user-reviews': UserReviewsView.render(root, params); break; - case 'user-profile': UserProfileView.render(root, params); break; - default: root.innerHTML = '
Неизвестный экран
'; + requestAnimationFrame(async () => { + try { + switch (name) { + case 'map': await MapView.render(root); break; + case 'chats': await ChatsView.render(root); break; + case 'chat': await ChatView.render(root, params); break; + case 'profile': await ProfileView.render(root); break; + case 'settings': await SettingsView.render(root); break; + case 'review': await ReviewView.render(root, params); break; + case 'user-reviews': await UserReviewsView.render(root, params); break; + case 'user-profile': await UserProfileView.render(root, params); break; + default: root.innerHTML = '
Неизвестный экран
'; + } + } catch (e) { + console.error('showView', name, 'failed:', e); + root.innerHTML = '
' + name + ': ' + (e && e.message || String(e)) + '
'; } }); },