feat(inbox): prioriza nome da agenda + ícone Secretária na ThinSidebar
- Nome exibido: contact.name (agenda) → verifiedName/notify (nome do WhatsApp) → pushName da última msg, em vez de cair direto no número quando não há nome salvo na agenda. - ThinSidebar: ícone (BrainCircuit) que direciona para /secretaria. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,7 @@ import {
|
|||||||
Megaphone,
|
Megaphone,
|
||||||
Users,
|
Users,
|
||||||
Settings,
|
Settings,
|
||||||
|
BrainCircuit,
|
||||||
} from 'lucide-react';
|
} from 'lucide-react';
|
||||||
import { getAvatarProxyUrl } from '../utils/inboxUtils';
|
import { getAvatarProxyUrl } from '../utils/inboxUtils';
|
||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
@@ -52,6 +53,14 @@ export default function ThinSidebar({ activeTab, setActiveTab, activeInstance }:
|
|||||||
{renderIcon('chats', MessageCircle, 'Conversas')}
|
{renderIcon('chats', MessageCircle, 'Conversas')}
|
||||||
{renderIcon('broadcasts', Megaphone, 'Transmissões')}
|
{renderIcon('broadcasts', Megaphone, 'Transmissões')}
|
||||||
{renderIcon('groups', Users, 'Sessões')}
|
{renderIcon('groups', Users, 'Sessões')}
|
||||||
|
{/* Secretária IA — abre a tela de configuração da secretária virtual */}
|
||||||
|
<button
|
||||||
|
title="Secretária IA"
|
||||||
|
onClick={() => router.push('/secretaria')}
|
||||||
|
className="w-10 h-10 mb-2 rounded-full flex items-center justify-center transition-colors hover:bg-[#d9dbdf]/60"
|
||||||
|
>
|
||||||
|
<BrainCircuit className="w-6 h-6 text-[#54656f]" />
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Bottom Icons */}
|
{/* Bottom Icons */}
|
||||||
|
|||||||
@@ -22,7 +22,14 @@ function mapBackendChat(raw: any): Chat {
|
|||||||
createdAt: raw.createdAt ?? null,
|
createdAt: raw.createdAt ?? null,
|
||||||
isPinned: raw.isPinned ?? false,
|
isPinned: raw.isPinned ?? false,
|
||||||
isArchived: raw.isArchived ?? false,
|
isArchived: raw.isArchived ?? false,
|
||||||
contactName: raw.contact?.name ?? raw.contactName ?? null,
|
// Prioridade do nome: agenda (contact.name) → nome do WhatsApp
|
||||||
|
// (verifiedName de Business → notify/pushName) → pushName da última msg.
|
||||||
|
contactName: raw.contact?.name
|
||||||
|
?? raw.contact?.verifiedName
|
||||||
|
?? raw.contact?.notify
|
||||||
|
?? raw.contactName
|
||||||
|
?? raw.lastMessage?.pushName
|
||||||
|
?? null,
|
||||||
contactAvatarUrl: raw.contact?.avatarUrl ?? raw.contactAvatarUrl ?? null,
|
contactAvatarUrl: raw.contact?.avatarUrl ?? raw.contactAvatarUrl ?? null,
|
||||||
contactAvatarVersion: raw.contact?.avatarVersion ?? raw.contactAvatarVersion ?? null,
|
contactAvatarVersion: raw.contact?.avatarVersion ?? raw.contactAvatarVersion ?? null,
|
||||||
contactPhone: raw.contact?.phone ?? raw.contactPhone ?? null,
|
contactPhone: raw.contact?.phone ?? raw.contactPhone ?? null,
|
||||||
|
|||||||
Reference in New Issue
Block a user