feat(call-ui): полноценное окно звонка, статусы, звуки и тех-история вызовов

This commit is contained in:
AidarKC
2026-04-22 15:46:45 +03:00
parent c824fb5e9b
commit 29a07a9a8b
6 changed files with 572 additions and 109 deletions
+8 -17
View File
@@ -2,7 +2,7 @@ import { renderHeader } from '../components/header.js';
import { directMessages } from '../mock-data.js';
import {
addAppLogEntry,
addChatMessage,
addSystemChatMessage,
addOutgoingPendingMessage,
getChatMessages,
markChatRead,
@@ -11,7 +11,7 @@ import {
authService,
state,
} from '../state.js';
import { startOutgoingCall, hangupActiveCall } from '../services/call-service.js';
import { startOutgoingCall } from '../services/call-service.js';
export const pageMeta = { id: 'chat-view', title: 'Чат' };
@@ -43,7 +43,8 @@ function renderLog(list, chatId) {
}
const bubble = document.createElement('div');
bubble.className = `bubble ${msg.from}`;
const bubbleKind = String(msg?.kind || '').trim();
bubble.className = `bubble ${msg.from}${bubbleKind ? ` ${bubbleKind}` : ''}`;
let text = msg.text || '';
if (msg.from === 'out') {
if (msg.secondTick) text += ' ✓✓';
@@ -76,24 +77,14 @@ export function render({ navigate, route }) {
rightActions: [{
label: 'Позвонить',
onClick: async () => {
const confirmed = window.confirm('Позвонить этому пользователю?');
if (!confirmed) return;
try {
await startOutgoingCall(chatId);
renderLog(log, chatId);
} catch (e) {
addChatMessage(chatId, `[call] Ошибка звонка: ${e.message || 'unknown'}`);
renderLog(log, chatId);
}
},
}, {
label: 'Сброс',
onClick: async () => {
try {
await hangupActiveCall();
renderLog(log, chatId);
} catch (e) {
addChatMessage(chatId, `[call] Ошибка сброса: ${e.message || 'unknown'}`);
addSystemChatMessage(chatId, `[Звонок] Ошибка запуска: ${e.message || 'unknown'}`, {
from: 'out',
kind: 'call-tech',
});
renderLog(log, chatId);
}
},