feat(ui): старт с личных сообщений и бейдж непрочитанных

This commit is contained in:
AidarKC
2026-04-22 17:23:20 +03:00
parent 58bbf063ca
commit 97a2bee81a
3 changed files with 57 additions and 5 deletions
+9 -4
View File
@@ -448,7 +448,7 @@ function renderPageFailureFallback(pageId, error) {
function renderApp() {
const route = getRoute();
const pageId = route.pageId || (state.session.isAuthorized ? 'profile-view' : 'start-view');
const pageId = route.pageId || (state.session.isAuthorized ? 'messages-list' : 'start-view');
if (!state.session.isAuthorized && !PRE_AUTH_PAGES.includes(pageId)) {
navigate('start-view');
@@ -456,7 +456,7 @@ function renderApp() {
}
if (state.session.isAuthorized && PRE_AUTH_PAGES.includes(pageId)) {
navigate('profile-view');
navigate('messages-list');
return;
}
@@ -629,6 +629,8 @@ async function init() {
? new TextDecoder().decode(parsed.payloadBytes || new Uint8Array(0))
: '';
let shouldRefreshToolbarUnread = false;
if (messageType === 1 || messageType === 2) {
const isIncomingForCurrent = messageType === 1;
const added = addSignedMessageToChat({
@@ -651,6 +653,9 @@ async function init() {
details: { messageKey, baseKey: parsed.baseKey, messageType },
});
}
if (added && isIncomingForCurrent) {
shouldRefreshToolbarUnread = true;
}
if (added && isIncomingForCurrent && Notification.permission === 'granted' && !payload.backlog) {
try {
new Notification(`Сообщение от ${fromLogin}`, { body: text || '' });
@@ -691,7 +696,7 @@ async function init() {
}
const pageId = getRoute().pageId || '';
if (pageId === 'chat-view' || pageId === 'messages-list') {
if (pageId === 'chat-view' || pageId === 'messages-list' || shouldRefreshToolbarUnread) {
renderApp();
}
});
@@ -773,7 +778,7 @@ async function init() {
await ensureSessionRuntimeStarted();
if (!window.location.hash) {
navigate(state.session.isAuthorized ? 'profile-view' : 'start-view');
navigate(state.session.isAuthorized ? 'messages-list' : 'start-view');
} else {
renderApp();
}