mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-05 09:14:58 +03:00
✨ feat: удаление диалога, дерево знаний и перетаскиваемый онбординг
«Удалить диалог» удаляет: переписку, вложения, звонки и уведомления о нём. Право только у владельца и администратора, писать в удалённый диалог некуда, лента виджета у клиента обнуляется по признаку reset в поллинге. База знаний: категории слева сворачиваются и разворачиваются (свёрнутое помнит браузер), в подвале появился выбор «На странице» 20/50/100 — общий для всех списков компонент. Окно «Знания» карточки агента разложено по категориям и порталам со счётчиками и «Выбрать все»; набор материалов грузится целиком, а не первой страницей. Пилюля онбординга перетаскивается и помнит место. Голосовое в веб-чате нарисовано плеером оператора без расшифровки, рисунок волны вынесен в общий пакет. Убрана горизонтальная полоса прокрутки в меню меток. Проверено: typecheck internal-ui и web-chat, backend-тесты диалогов, виджета и i18n. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5dbc062b1e
commit
733b44f186
44 files changed
+1263
-207
No files matched your search
@@ -5,3 +5,4 @@ export { type AudioBarKind, type AudioCallMode, type AudioCallStatus, buildAudio
|
||||
export { useCallRtcSession, type CallMediaIssue } from "./call/useCallRtcSession";
|
||||
export { useAudioCue, useLoopingAudio } from "./audio/useAudio";
|
||||
export { Loader } from "./loader/Loader";
|
||||
export { VOICE_WAVE_BARS, voiceWaveHeights } from "./voice/voiceWave";
|
||||
@@ -0,0 +1,18 @@
|
||||
// Волна голосового сообщения.
|
||||
//
|
||||
// Реальная амплитуда записи не хранится, поэтому рисунок считается из
|
||||
// идентификатора сообщения: он стабилен между рендерами и одинаков в чате
|
||||
// оператора и в виджете клиента — одно и то же сообщение выглядит одинаково с
|
||||
// обеих сторон разговора.
|
||||
|
||||
export const VOICE_WAVE_BARS = 32;
|
||||
|
||||
export function voiceWaveHeights(seed: number, bars = VOICE_WAVE_BARS): number[] {
|
||||
const heights: number[] = [];
|
||||
let value = seed || 1;
|
||||
for (let index = 0; index < bars; index += 1) {
|
||||
value = (value * 1103515245 + 12345) % 2147483648;
|
||||
heights.push(4 + (value % 17));
|
||||
}
|
||||
return heights;
|
||||
}
|
||||
Reference in new issue
Block a user