let lastIdSender = null;
function messageSender(messageData, childType = 'append', returnTemplate = false) {
let div = "";
let existsReaction = false;
// INICIO DA DIV DA MENSAGEM //
if (!returnTemplate) div += `
`
div += `
`;
if ((messageData.printPicture && childType === 'prepend' && ((lastIdSender > 0 && messageData.sender.id > 0) && (lastIdSender == messageData.sender.id)))) {
let lastUserPick = $('.body-message .message-data .user-pick').eq(0);
let containerPick = $(lastUserPick).parent().parent();
$(containerPick).find('.user-pick-sender').remove();
$(containerPick).find('.div-user-pick').remove();
$(containerPick).find('.user-name-sender').remove();
}
// FOTO E NOME DO USUÁRIO //
if ((messageData.printPicture && childType === 'prepend') || (!$('.body-message .message-data:last').hasClass('message-sender-content') && childType === 'append' && !returnTemplate) || (document.querySelector(`#message-${messageData.messageId} .user-pick`) && childType === 'append')) {
div += `
`;
div += ` ${messageData.sender.name}`;
div += `
`;
lastIdSender = messageData.sender.id;
}
let idMsg = 0;
if (messageData.dataReply) idMsg = messageData.dataReply.messageId;
// CONTEÚDO DA MENSAGEM
div += `
`;
if (idMsg > 0 && !messageData.user_exclusao > 0) {
let funcOpenMessage = '';
const senderReplyId = messageData.dataReply.id_remetente;
const senderReplyName = messageData.dataReply.name_remetente;
const ReceiverReplyId = messageData.dataReply.id_destinatario;
const depReplyId = messageData.dataReply.id_departamento;
if (messageData.dataReply.id_departamento > 0) {
funcOpenMessage = `openMessage(${idMsg}, ${senderReplyId}, null, ${depReplyId})`;
} else {
funcOpenMessage = `openMessage(${idMsg}, ${senderReplyId}, ${ReceiverReplyId}, null)`;
}
let color = '';
if(messageData.dataReply.id_remetente == messageData.sender.id) color = '#1DC370'; else color = '#409fd5';
div += `
`;
div += `
`;
div += `
${senderReplyName}
`;
const existsFilesReply = messageData.dataReply.caminho_arquivo.replace("{", "").replace("}", "").split(",");
const namesFilesReply = ((messageData.dataReply.nome_arquivo) ? messageData.dataReply.nome_arquivo.split(",") : '');
if (existsFilesReply[0] != "") {
existsFilesReply.forEach((file, key) => {
const fileUrlReply = (`${FILE_URL}/${file}`).replaceAll(" ", "");
const fileExtensionReply = getFileExtension(fileUrlReply);
const fileNameReply = fileUrlReply.split('ArqEscritorio/');
fileNameReply.push(messageData.dataReply.nome_arquivo);
// image
if (['png', 'jpg', 'gif', 'jpeg'].includes(fileExtensionReply))
div += ``;
else if (['mp3'].includes(fileExtensionReply))
div += ``;
else if (['mp4'].includes(fileExtensionReply))
div += ` `;
// doc
else {
div += "
";
}
})
}
}
// HORA DA MENSAGEM
div += ``;
// MENSAGEM VISUALIZADA
if (messageData.viewed && messageData.viewed.includes(messageData.receiver.id)) div += ``;
else div += ``;
div += messageData.hour;
div += ``;
// FAVORITO
// if (messageData.favorite && messageData.favorite.includes(SESSION_DATA.id)) div += `
`;
if (!messageData.user_exclusao > 0) {
// AÇÕES DA MENSAGEM
div += "
";
let objResponse = {
messageId: messageData.messageId,
senderId: messageData.sender.id,
senderName: messageData.sender.name,
receiverId: messageData.receiver.id,
receiverName: messageData.receiver.name,
classIndex: 'message-sender-message',
departamentId: null
}
let jsonResponse = JSON.stringify(objResponse);
div += '
';
div += ' ';
div += '
';
div += '
'
div += `
Responder
`;
div += `
Excluir Mensagem
`;
// div += `
Favoritar Mensagem
`;
div += '
';
div += ` 👍`;
div += ` 👎`;
div += ` 😂`;
div += ` 😍`;
div += ` 😥`;
div += ` 🎯`;
div += ` 🆗`;
div += '
`;
div += ` ${messageData.reactions[reaction].amount > 1 ? messageData.reactions[reaction].amount : ''} ${reaction}`;
div += `
`;
names.forEach(name => div += `${name}`);
div += `
`;
div += `
`;
}
})
div += `
`;
// --------------- FIM RESULTADO REAÇÕES -------------- //
// VERIFICA SE HÁ MENSAGEM
div += ` ${identificaLink(messageData.message)}`
} else {
div += ` Mensagem apagada`
}
div += `
`;
lastIdReceiver = messageData.sender.id;
} else div += ` `;
if (!returnTemplate) div += `
`
// PULA UMA LINHA QUANDO EXISTE REAÇÃO
if (existsReaction && !messageData.user_exclusao > 0) div += '';
// VERIFICA SE É PARA RETORNAR O TEMPLATE
if (returnTemplate) return div;
if (childType === 'prepend') {
$('.body-message').prepend(div);
} else {
$('#container-reply').remove();
$('.body-message').append(div);
defaultScroll();
}
checarPosicaoChat();
}