/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* showPrivateChat.js :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: edbernar { infoPanel.id = user.id; infoPanel.isOpen = true; infoPanel.divMessage = divMessageListChatHome; changeButton(user); displayAllMessage(divMessageListChatHome); displayInputBar(divMessageListChatHome, user); }) } function changeButton(user) { const divMessageListChatHome = document.getElementById("messageListChatHome"); const h2Username = document.createElement("h2"); const h2UsernameNode = document.createTextNode(user.name); const div = document.createElement('div'); let returnButton = null; divMessageListChatHome.before(div); div.innerHTML += `

Return

`; div.setAttribute('id', 'buttonTypeChatHome'); h2Username.appendChild(h2UsernameNode); returnButton = document.getElementById("returnButton"); returnButton.before(h2Username); returnButton.style.cursor = "pointer"; returnButton.addEventListener("click", () => { infoPanel.isOpen = false; showListUser(); }); } function displayAllMessage(divMessageListChatHome) { let newDiv = null; let contentNode = null; let dateNode = null; let tmp = null; divMessageListChatHome.style.height = "230px"; divMessageListChatHome.style.paddingBottom = "20px"; divMessageListChatHome.innerHTML = ''; messageList.forEach(element => { newDiv = document.createElement("div"); contentNode = document.createTextNode(element.content); dateNode = document.createTextNode(element.date); newDiv.classList.add(element.from === userMeInfo.id ? "meMessage" : "opponentMessage"); tmp = document.createElement("p"); tmp.classList.add("content"); tmp.appendChild(contentNode); newDiv.appendChild(tmp); tmp = document.createElement("p"); tmp.classList.add("time"); tmp.appendChild(dateNode); newDiv.appendChild(tmp); divMessageListChatHome.appendChild(newDiv); }); divMessageListChatHome.scrollTop = divMessageListChatHome.scrollHeight; } function displayInputBar(divMessageListChatHome, user) { let sendButton; let inputMessage; divMessageListChatHome.innerHTML += `

\>

`; sendButton = document.getElementById("sendButton"); sendButton.style.cursor = "pointer"; sendButton.addEventListener("click", () => { sendMessage(user); inputMessage.value = ""; inputMessage.focus(); }); inputMessage = document.getElementById("inputMessage"); inputMessage.addEventListener("keyup", (event) => { if (event.key === "Enter" && !event.shiftKey && inputMessage.value.trim() !== "") { event.preventDefault(); sendMessage(user); inputMessage.value = ""; inputMessage.focus(); } }); inputMessage.addEventListener("keydown", (event) => { if (event.key === "Enter") event.preventDefault(); }); inputMessage.focus(); } function sendMessage(user) { const inputMessage = document.getElementById("inputMessage"); let message; message = { to: user.id, content: inputMessage.value, }; sendRequest("send_private_message", message); } export { showPrivateChat };