diff --git a/src/components/conversations/ConversationDrawer.vue b/src/components/conversations/ConversationDrawer.vue index d8a0389..472d653 100644 --- a/src/components/conversations/ConversationDrawer.vue +++ b/src/components/conversations/ConversationDrawer.vue @@ -336,12 +336,19 @@ const KANBAN_COLUMNS = [ ]; // ── Formatters ───────────────────────────────────────────── -function fmtDateTime(iso) { +// HH:MM curto pra exibir dentro da bolha (estilo WhatsApp). +function fmtTimeOnly(iso) { if (!iso) return ''; - return new Date(iso).toLocaleString('pt-BR', { - day: '2-digit', month: '2-digit', year: 'numeric', - hour: '2-digit', minute: '2-digit' - }); + return new Date(iso).toLocaleTimeString('pt-BR', { hour: '2-digit', minute: '2-digit' }); +} + +// Iniciais pro avatar circular do header. +function iniciaisChat(name) { + if (!name) return '?'; + const parts = String(name).trim().split(/\s+/).filter(Boolean); + if (!parts.length) return '?'; + if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase(); + return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase(); } function channelIcon(ch) { @@ -699,11 +706,16 @@ function insertEmoji(emoji) { - - - - {{ contactLabel() }} - {{ store.thread.contact_number }} + + + {{ iniciaisChat(contactLabel()) }} + + + {{ contactLabel() }} + + + {{ formatPhoneShort(store.thread.contact_number) }} + @@ -1030,8 +1042,8 @@ function insertEmoji(emoji) { - - + + Carregando mensagens... @@ -1042,12 +1054,12 @@ function insertEmoji(emoji) { @@ -1061,7 +1073,7 @@ function insertEmoji(emoji) { :preview="true" alt="imagem" imageClass="max-w-full rounded-md cursor-zoom-in" - class="mb-1 block" + class="mb-1 block cd-bubble__media" /> - {{ m.body }} - - - {{ fmtDateTime(m.created_at) }} - - - - - - - · número não vinculado + {{ m.body }} + + + {{ fmtTimeOnly(m.created_at) }} + + + + + + + + não vinculado @@ -1142,34 +1155,48 @@ function insertEmoji(emoji) { - - - + + + + + + + + + - + > + + + - - - - {{ composeText.length }}/4000 + + Enter envia · Shift+Enter quebra linha + {{ composeText.length }}/4000 @@ -1214,3 +1241,221 @@ function insertEmoji(emoji) { + + diff --git a/src/layout/melissa/MelissaCompromissos.vue b/src/layout/melissa/MelissaCompromissos.vue index f2071d7..387cd53 100644 --- a/src/layout/melissa/MelissaCompromissos.vue +++ b/src/layout/melissa/MelissaCompromissos.vue @@ -1,78 +1,105 @@ - @@ -370,16 +402,16 @@ function clearSearch() { filters.global.value = null; } Menu Compromissos - + Compromissos - {{ visibleCommitments.length }} + {{ filtered.length }} Novo - - - - + - - - - - Tipo - - - - Buscar - - - - + + + + + Modelos de compromissos que aparecem na agenda além das sessões. + Crie tipos próprios com campos personalizados ou + edite/desative os nativos disponíveis pra todos os usuários. + + -