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)) + '
';
}
});
},