From 67c15f5ceee34a50108591807c1fa898f631915a Mon Sep 17 00:00:00 2001 From: 1aerostorm Date: Fri, 13 Dec 2024 07:35:57 +0300 Subject: [PATCH] Private groups, Mobile app - fixes (still WIP) --- src/components/elements/VerticalMenu.jsx | 2 +- src/components/pages/Messages.jsx | 22 +++++++++++++++++++++- src/locales/ru-RU.json | 2 +- src/utils/NotifyApiClient.js | 4 ++++ 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/components/elements/VerticalMenu.jsx b/src/components/elements/VerticalMenu.jsx index a0537a36e..b5a6b20d1 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 a2c5dd6b5..f42f49871 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 20381f6b0..0e8d495c1 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 602892e90..63d75436d 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); }