Livechat
- Fixed forgetting to import "showActualGameMessage" - Changed filename "launchPrivateChat" to "showPrivateChat.js" - Fixed bug on buttons "private" and "game" Global - Reorganize folders
This commit is contained in:
@ -22,12 +22,6 @@
|
||||
<h2>X</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="buttonTypeChatHome">
|
||||
<h2 id="selected">Private</h2>
|
||||
<h2>Game</h2>
|
||||
</div>
|
||||
<div id="messageListChatHome">
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -6,48 +6,76 @@
|
||||
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/08/04 19:19:10 by edbernar #+# #+# */
|
||||
/* Updated: 2024/08/04 19:49:19 by edbernar ### ########.fr */
|
||||
/* Updated: 2024/08/04 23:10:18 by edbernar ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
import { infoPanel } from "../typeResponse/typePrivateListMessage.js";
|
||||
import { showActualGameMessage } from "./showActualGameMessage.js";
|
||||
import { showListUser } from "./showUserList.js";
|
||||
|
||||
/*
|
||||
Todo (Eddy) :
|
||||
- add a function to "New conversation +"
|
||||
- game message when game will be implemented
|
||||
- fix the bug on button "private" and "game"
|
||||
*/
|
||||
|
||||
function addDefaultButton()
|
||||
{
|
||||
const newDiv = document.createElement("div");
|
||||
const newPrivateButton = document.createElement("h2");
|
||||
const newGameButton = document.createElement("h2");
|
||||
const divMessageListChatHome = document.createElement("div");
|
||||
|
||||
newDiv.setAttribute("id", "buttonTypeChatHome");
|
||||
newPrivateButton.textContent = "Private";
|
||||
newGameButton.textContent = "Game";
|
||||
newPrivateButton.setAttribute("id", "selected");
|
||||
newDiv.appendChild(newPrivateButton);
|
||||
newDiv.appendChild(newGameButton);
|
||||
document.getElementById("chatDiv").appendChild(newDiv);
|
||||
divMessageListChatHome.setAttribute("id", "messageListChatHome");
|
||||
document.getElementById("chatDiv").appendChild(divMessageListChatHome);
|
||||
|
||||
newPrivateButton.addEventListener("click", async () => {
|
||||
newGameButton.removeAttribute("id");
|
||||
newPrivateButton.setAttribute("id", "selected");
|
||||
await showListUser();
|
||||
});
|
||||
newGameButton.addEventListener("click", () => {
|
||||
newPrivateButton.removeAttribute("id");
|
||||
newGameButton.setAttribute("id", "selected");
|
||||
showActualGameMessage();
|
||||
});
|
||||
}
|
||||
|
||||
function removeButtonIfExist()
|
||||
{
|
||||
const divButtonTypeChatHome = document.getElementById("buttonTypeChatHome");
|
||||
|
||||
if (divButtonTypeChatHome)
|
||||
{
|
||||
divButtonTypeChatHome.remove();
|
||||
document.getElementById("messageListChatHome").remove();
|
||||
}
|
||||
}
|
||||
|
||||
function liveChat()
|
||||
{
|
||||
const chatButton = document.getElementById("chatButton");
|
||||
const chatDiv = document.getElementById("chatDiv");
|
||||
const topChatHomeCross = document.getElementById("topChatCross");
|
||||
const privateButtonChatHome = document.getElementById("buttonTypeChatHome").getElementsByTagName("h2")[0];
|
||||
const gameButtonChatHome= document.getElementById("buttonTypeChatHome").getElementsByTagName("h2")[1];
|
||||
|
||||
|
||||
chatButton.addEventListener("click", async () => {
|
||||
chatDiv.style.display = "flex";
|
||||
gameButtonChatHome.removeAttribute("id");
|
||||
privateButtonChatHome.setAttribute("id", "selected");
|
||||
removeButtonIfExist();
|
||||
addDefaultButton();
|
||||
await showListUser();
|
||||
});
|
||||
topChatHomeCross.addEventListener("click", () => {
|
||||
chatDiv.style.display = "none";
|
||||
infoPanel.isOpen = false;
|
||||
});
|
||||
privateButtonChatHome.addEventListener("click", async () => {
|
||||
gameButtonChatHome.removeAttribute("id");
|
||||
privateButtonChatHome.setAttribute("id", "selected");
|
||||
await showListUser();
|
||||
});
|
||||
gameButtonChatHome.addEventListener("click", () => {
|
||||
privateButtonChatHome.removeAttribute("id");
|
||||
gameButtonChatHome.setAttribute("id", "selected");
|
||||
showActualGameMessage();
|
||||
});
|
||||
}
|
||||
|
||||
export { liveChat };
|
@ -6,11 +6,11 @@
|
||||
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/08/04 19:21:55 by edbernar #+# #+# */
|
||||
/* Updated: 2024/08/04 19:49:35 by edbernar ### ########.fr */
|
||||
/* Updated: 2024/08/04 22:41:07 by edbernar ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
import { sendRequest } from "../websocket";
|
||||
import { sendRequest } from "../websocket.js";
|
||||
|
||||
function showActualGameMessage()
|
||||
{
|
||||
@ -20,7 +20,7 @@ function showActualGameMessage()
|
||||
isInGame: false,
|
||||
opponent: {
|
||||
name: "Astropower",
|
||||
pfp: "https://ashisheditz.com/wp-content/uploads/2024/03/cool-anime-pfp-demon-slayer-HD.jpg"
|
||||
id: "301547"
|
||||
},
|
||||
listMessage: [
|
||||
{
|
||||
@ -68,8 +68,8 @@ function showActualGameMessage()
|
||||
request.listMessage.forEach(element => {
|
||||
divMessageListChatHome.innerHTML += `
|
||||
<div class="${element.from === me ? "meMessage" : "opponentMessage"}">
|
||||
<p class="content">${element.content}</p>
|
||||
<p class="time">${element.date}</p>
|
||||
<p class="content">${element.content}</p>
|
||||
<p class="time">${element.date}</p>
|
||||
</div>
|
||||
`;
|
||||
});
|
||||
|
@ -1,12 +1,12 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* launchPrivateChat.js :+: :+: :+: */
|
||||
/* showPrivateChat.js :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/08/04 19:17:54 by edbernar #+# #+# */
|
||||
/* Updated: 2024/08/04 19:42:49 by edbernar ### ########.fr */
|
||||
/* Updated: 2024/08/04 23:00:10 by edbernar ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -15,7 +15,9 @@ import { userMeInfo } from "../typeResponse/typeLogin.js";
|
||||
import { showListUser } from "./showUserList.js";
|
||||
import { sendRequest } from "../websocket.js";
|
||||
|
||||
async function launchPrivateChat(user)
|
||||
let savedButtons = [];
|
||||
|
||||
async function showPrivateChat(user)
|
||||
{
|
||||
const divMessageListChatHome = document.getElementById("messageListChatHome");
|
||||
|
||||
@ -29,6 +31,16 @@ async function launchPrivateChat(user)
|
||||
await displayInputBar(divMessageListChatHome, user);
|
||||
}
|
||||
|
||||
async function restoreButton()
|
||||
{
|
||||
const divButtonTypeChatHome = document.getElementById("buttonTypeChatHome");
|
||||
|
||||
divButtonTypeChatHome.innerHTML = '';
|
||||
savedButtons.forEach(element => {
|
||||
divButtonTypeChatHome.appendChild(element);
|
||||
});
|
||||
}
|
||||
|
||||
async function changeButton(user)
|
||||
{
|
||||
const divButtonTypeChatHome = document.getElementById("buttonTypeChatHome");
|
||||
@ -38,8 +50,10 @@ async function changeButton(user)
|
||||
|
||||
h2Button = divButtonTypeChatHome.getElementsByTagName("h2");
|
||||
lenh2Button = h2Button.length;
|
||||
savedButtons.splice(0, savedButtons.length);
|
||||
for (let i = 0; i < lenh2Button; i++) {
|
||||
h2Button[i - i].remove();
|
||||
savedButtons.push(h2Button[0]);
|
||||
h2Button[0].remove();
|
||||
}
|
||||
divButtonTypeChatHome.innerHTML += `
|
||||
<h2>${user.name}</h2>
|
||||
@ -49,10 +63,7 @@ async function changeButton(user)
|
||||
returnButton = document.getElementById("returnButton");
|
||||
returnButton.style.cursor = "pointer";
|
||||
returnButton.addEventListener("click", () => {
|
||||
divButtonTypeChatHome.innerHTML = `
|
||||
<h2 id="selected">Private</h2>
|
||||
<h2>Game</h2>
|
||||
`;
|
||||
restoreButton();
|
||||
infoPanel.isOpen = false;
|
||||
showListUser();
|
||||
});
|
||||
@ -122,4 +133,4 @@ function sendMessage(user) {
|
||||
sendRequest("send_private_message", message);
|
||||
}
|
||||
|
||||
export { launchPrivateChat };
|
||||
export { showPrivateChat };
|
@ -6,13 +6,13 @@
|
||||
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/08/04 19:21:10 by edbernar #+# #+# */
|
||||
/* Updated: 2024/08/04 19:29:20 by edbernar ### ########.fr */
|
||||
/* Updated: 2024/08/04 22:54:30 by edbernar ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
import { waitForUserList } from "../typeResponse/typePrivateListUser.js";
|
||||
import { userList } from "../typeResponse/typePrivateListUser.js";
|
||||
import { launchPrivateChat } from "./launchPrivateChat.js";
|
||||
import { showPrivateChat } from "./showPrivateChat.js";
|
||||
import { sendRequest } from "../websocket.js";
|
||||
|
||||
async function showListUser() {
|
||||
@ -42,7 +42,7 @@ async function showListUser() {
|
||||
divUser = document.getElementsByClassName("user");
|
||||
for (let i = 0; i < divUser.length; i++) {
|
||||
divUser[i].addEventListener("click", async () => {
|
||||
await launchPrivateChat(userList[i]);
|
||||
await showPrivateChat(userList[i]);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user