/
kreyndelHam
/
Konstructorium
Обзор
Документация
Войти
/
kreyndelHam
/
Konstructorium
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
1
CI/CD
Аналитика
Безопасность
dev
frontend/src/utils/chatMessageClasses.js
109 строк
2 KB
MihahamYT
Added tests frontend
24 май 2026, 16:58
24 май 2026, 16:58
a290f45
Код
Авторство
О чём код?
/** * Tailwind class maps for chat message bubbles (light and dark themes). */ /** @type {string} */ const OWN_BUBBLE = 'bg-primary-600 text-white' /** @type {string} */ const INCOMING_BUBBLE = 'bg-surface-muted text-text-body border border-border dark:bg-gray-700 dark:text-gray-100 dark:border-gray-600' /** @type {string} */ const AI_BUBBLE = 'bg-indigo-100 text-indigo-900 border border-indigo-200 dark:bg-indigo-950/50 dark:text-indigo-100 dark:border-indigo-800' /** @type {string} */ const TRANSCRIPT_BUBBLE = 'bg-amber-50 text-amber-950 border-2 border-amber-300 dark:bg-amber-950/40 dark:text-amber-100 dark:border-amber-700' /** * Return bubble classes for a user-authored outgoing message. * * @returns {string} */ export function getOwnChatBubbleClass() { return OWN_BUBBLE } /** * Return bubble classes for an incoming peer message (admin, seller, user). * * @returns {string} */ export function getIncomingChatBubbleClass() { return INCOMING_BUBBLE } /** * Return bubble classes for AI-generated messages. * * @returns {string} */ export function getAiChatBubbleClass() { return AI_BUBBLE } /** * Return bubble classes for escalation transcript blocks. * * @returns {string} */ export function getTranscriptChatBubbleClass() { return TRANSCRIPT_BUBBLE } /** * Resolve support-chat bubble styling. * * @param {{ isTranscript?: boolean, isOwn?: boolean }} options * @returns {string} */ export function getSupportChatBubbleClass({ isTranscript = false, isOwn = false }) { if (isTranscript) { return TRANSCRIPT_BUBBLE } if (isOwn) { return OWN_BUBBLE } return INCOMING_BUBBLE } /** * Resolve AI chat bubble styling. * * @param {{ isAi?: boolean, isOwn?: boolean }} options * @returns {string} */ export function getAiPanelChatBubbleClass({ isAi = false, isOwn = false }) { if (isAi) { return AI_BUBBLE } if (isOwn) { return OWN_BUBBLE } return INCOMING_BUBBLE } /** * Resolve admin operator chat bubble styling. * * @param {{ isTranscript?: boolean, isFromAdmin?: boolean, isFromAi?: boolean }} options * @returns {string} */ export function getAdminChatBubbleClass({ isTranscript = false, isFromAdmin = false, isFromAi = false, }) { if (isTranscript) { return TRANSCRIPT_BUBBLE } if (isFromAdmin) { return OWN_BUBBLE } if (isFromAi) { return AI_BUBBLE } return INCOMING_BUBBLE }