Добавить диагностику PWA/Push и endpoint тестового push

This commit is contained in:
AidarKC
2026-04-21 01:10:56 +03:00
parent 185ba5b1d3
commit d07602b0a9
11 changed files with 811 additions and 4 deletions
+15
View File
@@ -44,6 +44,7 @@ import * as showKeysView from './pages/show-keys-view.js';
import * as deviceSessionView from './pages/device-session-view.js';
import * as languageView from './pages/language-view.js';
import * as appLogView from './pages/app-log-view.js';
import * as pwaDiagnosticsView from './pages/pwa-diagnostics-view.js';
import * as messagesList from './pages/messages-list.js';
import * as contactSearchView from './pages/contact-search-view.js';
import * as chatView from './pages/chat-view.js';
@@ -78,6 +79,7 @@ const routes = {
'device-session-view': deviceSessionView,
'language-view': languageView,
'app-log-view': appLogView,
'pwa-diagnostics-view': pwaDiagnosticsView,
'messages-list': messagesList,
'contact-search-view': contactSearchView,
'chat-view': chatView,
@@ -330,12 +332,25 @@ async function init() {
const data = event?.data || {};
if (data.type !== 'SHINE_WEB_PUSH_EVENT') return;
const payload = data.payload || {};
const kind = String(payload.kind || '').trim();
const now = Date.now();
try {
localStorage.setItem('shine-ui-last-push-at-v1', String(now));
localStorage.setItem('shine-ui-last-push-payload-v1', JSON.stringify(payload || {}));
if (kind === 'test_push') {
localStorage.setItem('shine-ui-last-test-push-status-v1', 'доставлен');
localStorage.setItem('shine-ui-last-test-push-at-v1', String(now));
}
} catch {
// ignore localStorage errors
}
addAppLogEntry({
level: 'info',
source: 'web-push',
message: 'Получено push-событие в service worker',
details: payload,
});
window.dispatchEvent(new CustomEvent('shine-push-diagnostics-update', { detail: payload }));
});
}