let lastIdSender = null; // o usaAppend foi add para quando a msg precisa ser tratada como prepend mas inserida como append // o hiddenMenuMsg foi criado para ocultar o menu de reações e ações das msg na modal de pesquisa de mensagem. function messageSender(messageData, childType = 'append', returnTemplate = false, container = '.body-message', usaAppend = false, hiddenMenuMsg = false) { let div = ""; let existsReaction = false; // if ($(`#message-${messageData.messageId}`).length > 0) return; // 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 = $(`${container} .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') || (!$(`${container} .message-data:last`).hasClass('message-sender-content') && childType === 'append' && !returnTemplate) || (document.querySelector(`#message-${messageData.messageId} .user-pick`) && childType === 'append')) { if (messageData.chatType !== 'user') { div += `
${messageData.sender.name}
`; } lastIdSender = messageData.sender.id; } let idMsg = 0; if (messageData.dataReply) idMsg = messageData.dataReply.messageId; // CONTEÚDO DA MENSAGEM div += `
`; if (messageData.shareId !== null && messageData.shareId !== undefined) div += `
Encaminhada
`; 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)`; } div += `
${senderReplyName}
`; const filesListReply = messageData.dataReply.caminho_arquivo.replace("{", "").replace("}", "").split(","); const namesFilesReply = ((messageData.dataReply.nome_arquivo) ? messageData.dataReply.nome_arquivo.split(",") : ''); if (filesListReply[0] != "") { if (filesListReply.length > 1) { div += `
Múltiplos Arquivos
`; } else { const file = filesListReply[0]; const fileUrlReply = (`${FILE_URL}/${file}`).replaceAll(" ", ""); const fileExtensionReply = getFileExtension(fileUrlReply); const fileNameReply = fileUrlReply.split('ArqEscritorio/'); fileNameReply.push(messageData.dataReply.nome_arquivo); if (['png', 'jpg', 'gif', 'jpeg', 'webp'].includes(fileExtensionReply)) div += `
${messageData.dataReply.message ? messageData.dataReply.message : 'Foto'}
`; // div += `
`; else if (['mp3', 'webm'].includes(fileExtensionReply)) div += `
${messageData.dataReply.message ? messageData.dataReply.message : 'Mensagem de Voz'}
`; else if (['mp4'].includes(fileExtensionReply)) div += `
${messageData.dataReply.message ? messageData.dataReply.message : 'Vídeo'}
`; // doc else { div += ` `; } } } else { div += `${messageData.dataReply.message}`; } div += `
`; } if (!messageData.user_exclusao > 0) { // VERIFICA SE FOI ENVIADO ALGUM ARQUIVO const filesList = messageData.files.replace("{", "").replace("}", "").split(","); const thumbsList = messageData.thumb ? messageData.thumb.replace("{", "").replace("}", "").split(",") : Array(filesList.length).fill(0); const namesFiles = ((messageData.nome_arquivo) ? messageData.nome_arquivo.split(",") : ''); if (filesList[0] != "") { filesList.forEach((file, key) => { const fileUrl = (`${FILE_URL}/${file}`).replaceAll(" ", ""); const fileExtension = getFileExtension(fileUrl); const fileName = fileUrl.split('ArqEscritorio/'); fileName.push(messageData.nome_arquivo); // image if (['png', 'jpg', 'gif', 'jpeg', 'webp'].includes(fileExtension)) { const thumbUrl = thumbsList[key] ? (`${FILE_URL}/${thumbsList[key]}`).replaceAll(" ", "") : null; const image_compressed = thumbUrl ? thumbUrl : fileUrl; var styleGifContainer = (fileExtension === 'gif') ? 'style="position: relative; display: inline-block;"' : ''; div += ``; if (fileExtension === 'gif') { div += `
gif
`; div += ` `; } else { div += ` `; } div += `
`; } else if (['mp3', 'webm'].includes(fileExtension)) { let type = fileExtension === 'mp3' ? 'audio/mpeg' : 'audio/webm'; // div += // `
// //
// //
00:00 / 00:00
// //
// //
`; div += `
`; } else if (['mp4'].includes(fileExtension)) { div += ``; div += ` `; div += ``; } else { const nameFile = namesFiles[key].replace(`.${fileExtension}`, ''); div += ` `; } }) } } // HORA DA MENSAGEM div += ``; // MENSAGEM EDITADA if (messageData.data_edicao) { div += `editado`; } // MENSAGEM VISUALIZADA if (messageData.chatType == 'service') { const idViewed = (messageData.clientServiceId == messageData.sender.id) ? messageData.attendantServiceId : messageData.clientServiceId; if (messageData.viewed && messageData.viewed.includes(idViewed)) div += ``; else div += ``; } else { if (messageData.viewed && messageData.viewed.includes(messageData.receiver.id)) div += ``; else div += ``; } div += `${messageData.hour}`; // FAVORITO if (messageData.favorite && messageData.favorite.includes(SESSION_DATA.id)) div += `
`; if (!messageData.user_exclusao > 0) { 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, tipo: 'Sender' } if (!hiddenMenuMsg) { // AÇÕES DA MENSAGEM if (messageData.chatType != 'service') { div += `
`; div += replyTemplate(messageData, objResponse); div += `
`; } // MENU DE REAÇÕES if (messageData.chatType != 'service') { div += `
` div += reactionsTemplate(messageData, objResponse); div += `
`; } } // --------------- RESULTADO REAÇÕES --------------------- // div += `
`; if (messageData.reactions && typeof messageData.reactions === 'object') { Object.entries(messageData.reactions).forEach(([emoji, data]) => { var emojiCharacter = emoji; var quantityReaction = data.amount; var names = data.name; existsReaction = true; div += `
${quantityReaction > 1 ? quantityReaction : ''}${emojiCharacter}
`; names.forEach(name => div += `${name}`); div += `
`; }); } div += `
`; // --------------- FIM RESULTADO REAÇÕES -------------- // // VERIFICA SE HÁ MENSAGEM div += `${identificaLink(messageData.message)}`; } else { div += ` Mensagem apagada`; } div += `
`; if ((messageData.printPicture && childType === 'prepend') || (!$(`${container} .message-data:last`).hasClass('message-sender-content') && childType === 'append' && !returnTemplate) || (document.querySelector(`#message-${messageData.messageId} .user-pick`) && childType === 'append')) { if (messageData.chatType !== 'user') { const srcFotoUser = (messageData.chatType == 'service' && messageData.sender.id != -1) ? DEFAULT_PICTURE : (messageData.sender.picture ? messageData.sender.picture : DEFAULT_PICTURE); div += `
`; } lastIdReceiver = messageData.sender.id; } else if (messageData.chatType !== 'user') { 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') { if (usaAppend) { $(`${container}`).append(div); } else { $(`${container}`).prepend(div); } } else { $('#container-reply').remove(); $(`${container}`).append(div); defaultScroll(); } // reloadAudioPlayers(); registrarEventoEnded(); checarPosicaoChat(); }