feat: nova conversa com número avulso + normalização WhatsApp + dark mode no modal
- Botão '+' na sidebar para iniciar conversa com qualquer número - Busca automática: cliente → dependente → número novo - Campo de mensagem inicial personalizável no modal - Normalização de número (DDI 55) ao enviar via Evolution API - Modal de nova conversa com suporte a dark mode - Correção: foto do cliente não é mais atualizada a cada mensagem - Correção: triagem não processa respostas se já tem atendente+equipe
This commit is contained in:
@@ -68,8 +68,26 @@ function _request(baseUrl, apiKey, endpoint, method, body) {
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Função auxiliar: extrai credenciais da instância
|
||||
// Função auxiliar: normaliza número para formato WhatsApp
|
||||
// ============================================================
|
||||
function _normalizarNumero(numero) {
|
||||
let n = String(numero || '').replace(/\D/g, '');
|
||||
if (!n) return '';
|
||||
// Adiciona DDI Brasil (55) se não tiver código de país
|
||||
if (!n.startsWith('55') && !n.startsWith('1') && !n.startsWith('3') &&
|
||||
!n.startsWith('4') && !n.startsWith('6') && !n.startsWith('7') &&
|
||||
!n.startsWith('8') && !n.startsWith('9')) {
|
||||
n = '55' + n;
|
||||
}
|
||||
// Corrige celular sem o 9º dígito: DDD(2) + 8 dígitos → DDD(2) + 9 + 8 dígitos
|
||||
if (n.startsWith('55')) {
|
||||
const resto = n.slice(2);
|
||||
if (resto.length === 10) {
|
||||
n = '55' + resto.slice(0, 2) + '9' + resto.slice(2);
|
||||
}
|
||||
}
|
||||
return n;
|
||||
}
|
||||
function _extrairCredenciais(instancia) {
|
||||
return {
|
||||
url: ((instancia.INS_URL || '').trim()).replace(/\/+$/, ''),
|
||||
@@ -134,7 +152,7 @@ async function sendMedia(instancia, numero, tipo, midiaBase64, nomeArquivo) {
|
||||
const { url, apiKey, instanceName } = _extrairCredenciais(instancia);
|
||||
if (!url || !apiKey || !instanceName || !numero || !midiaBase64) return;
|
||||
|
||||
const numeroLimpo = numero.replace(/\D/g, '');
|
||||
const numeroLimpo = _normalizarNumero(numero);
|
||||
const fileName = nomeArquivo || 'arquivo';
|
||||
|
||||
let endpoint, payload;
|
||||
|
||||
Reference in New Issue
Block a user