diff --git a/src/components/elements/VerticalMenu.jsx b/src/components/elements/VerticalMenu.jsx
index a0537a36..b5a6b20d 100644
--- a/src/components/elements/VerticalMenu.jsx
+++ b/src/components/elements/VerticalMenu.jsx
@@ -39,7 +39,7 @@ export default class VerticalMenu extends React.Component {
const LinkType = i.extLink ? ExtLink : Link
const service = i.extLink || undefined
return
- {i.link ?
+ {i.link ?
{i.icon && }{i.label ? i.label : i.value}
{i.data && {i.data}}
{i.addon}
diff --git a/src/components/pages/Messages.jsx b/src/components/pages/Messages.jsx
index a2c5dd6b..f42f4987 100644
--- a/src/components/pages/Messages.jsx
+++ b/src/components/pages/Messages.jsx
@@ -323,6 +323,7 @@ class Messages extends React.Component {
this.notifyErrorsClear()
const ping = async (firstCall = false) => {
if (!firstCall) {
+ window.errorLogs.push({ details: { ping: Date.now() } })
try {
await notifyWsPing()
if (this.state.notifyErrors) {
@@ -340,6 +341,7 @@ class Messages extends React.Component {
}
setTimeout(ping, 10000)
}
+ ping(true)
this.watchGroup(this.props.to)
}
@@ -956,7 +958,25 @@ class Messages extends React.Component {
]
if (process.env.MOBILE_APP) {
- user_menu.push({link: '#', onClick: this.props.openSettings, icon: 'new/setting', value: tt('g.settings')})
+ user_menu.push({link: '#', onClick: this.props.openSettings, icon: 'new/setting', value: tt('g.settings'),
+ onTouchStart: (e) => {
+ window.settingsTouch = setTimeout(() => {
+ try {
+ const { errorLogs } = window
+ let msg = ''
+ for (const err of errorLogs) {
+ msg += (err.err ? err.err.toString() : '') + '\n' + JSON.stringify(err.details) + '\n\n'
+ }
+ alert(msg)
+ } catch (err) {
+ alert('Cannot display error logs, due to: ' + (err && err.toString()))
+ }
+ }, 3000)
+ },
+ onTouchEnd: (e) => {
+ clearTimeout(window.settingsTouch)
+ }
+ })
}
user_menu.push({link: '#', icon: 'new/logout', onClick: logout, value: tt('g.logout')})
diff --git a/src/locales/ru-RU.json b/src/locales/ru-RU.json
index 20381f6b..0e8d495c 100644
--- a/src/locales/ru-RU.json
+++ b/src/locales/ru-RU.json
@@ -293,7 +293,7 @@
"render_error": ";( Ошибка рендеринга"
},
"stub_jsx": {
- "read_only": "Писать сообщения в этой группе могут лишь ее члены.",
+ "read_only": "Писать сообщения могут только члены группы.",
"private_group": "Это закрытая группа. Чтобы видеть сообщения и общаться в ней, надо стать ее членом.",
"pending": "Вы подали заявку на вступление в группу.",
"banned": "Вы забанены в этой группе.",
diff --git a/src/utils/NotifyApiClient.js b/src/utils/NotifyApiClient.js
index 602892e9..63d75436 100644
--- a/src/utils/NotifyApiClient.js
+++ b/src/utils/NotifyApiClient.js
@@ -39,6 +39,10 @@ function saveSession(response) {
}
}
if (!session) return;
+ if (window.errorLogs) {
+ let xSess = session && session.substring && (session.substring(0, 5) + '...')
+ window.errorLogs.push({ details: { xsession: xSess } })
+ }
localStorage.setItem('X-Session', session);
}