/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* main.js :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: edbernar { if (userMeInfo.id > 0) { sendRequest("get_user_info", {username: user}) clearInterval(interval); } }, 100); } else sendRequest("get_user_info", {id: user}); crossProfil.addEventListener('click', () => { if (typeof(user) == 'string') pageRenderer.changePage('homePage'); else pageRenderer.changePage('lobbyPage'); }); waitForUserInfo().then((userInfo) => { console.log(userInfo); if (userInfo == null) { pageRenderer.changePage('homePage'); return ; } if (typeof(user) != 'string') history.replaceState({}, document.title, window.location.pathname + '/' + userInfo.username); username.innerHTML = userInfo.username + ''; if (!userInfo.online) document.getElementsByClassName('online-status')[0].style.backgroundColor = '#E74040'; pfp.style.backgroundImage = `url("${userInfo.pfp}")` pfp.style.backgroundSize = "cover"; pfp.style.backgroundRepeat = "no-repeat"; banner.style.backgroundImage = `url("${userInfo.banner}")` banner.style.backgroundSize = "cover"; banner.style.backgroundRepeat = "no-repeat"; externButtons(userInfo) if (userInfo.id == userMeInfo.id) { pfp.innerHTML = `
` banner.innerHTML = `` editPenPfpBg = document.getElementById('editPenPfpBg'); inputPfp = document.getElementById('inputPfp'); editPenPfpBg.addEventListener('click', () => { inputPfp.setAttribute('accept', '.png, .jpeg, .jpg, .gif'); inputPfp.click(); }); inputPfp.setAttribute('accept', '.png, .jpeg, .jpg, .gif'); inputPfp.addEventListener('change', () => inputChange(true)); editPenBanner = document.getElementsByClassName('editPen')[0]; inputBanner = document.getElementById('inputBanner'); editPenBanner.addEventListener('click', () => { inputBanner.setAttribute('accept', '.png, .jpeg, .jpg, .gif'); inputBanner.click(); }); inputBanner.setAttribute('accept', '.png, .jpeg, .jpg, .gif'); inputBanner.addEventListener('change', () => inputChange(false)); } if (userInfo.id != userMeInfo.id) { convButton.addEventListener('click', () => { showChatMenu(); showPrivateChat({id: userInfo.id, name: userInfo.username}); }); } else convButton.remove(); }); } static dispose() { LiveChat.dispose(); } } function externButtons(userInfo) { const githubButton = document.getElementById('github'); const discordButton = document.getElementById('discord'); if (userInfo.github) githubButton.setAttribute('href', userInfo.github); else githubButton.remove(); if (userInfo.discord) discordButton.setAttribute('name', userInfo.discord); else discordButton.remove(); } function inputChange(isPfp) { const reader = new FileReader(); const validTypes = ['image/png', 'image/jpeg', 'image/webp'] const file = event.target.files[0]; function arrayBufferToBase64(buffer) { let binary = ''; const bytes = new Uint8Array(buffer); const len = bytes.byteLength; for (let i = 0; i < len; i++) { binary += String.fromCharCode(bytes[i]); } return window.btoa(binary); } if (validTypes.includes(file.type)) { reader.onload = (e) => { const arrayBuffer = e.target.result; if (isPfp) sendRequest('change_pfp', {img: arrayBufferToBase64(arrayBuffer), type: file.type}) else sendRequest('change_banner', {img: arrayBufferToBase64(arrayBuffer), type: file.type}) waitForchangePfp().then((content) => { if (isPfp) document.getElementsByClassName('profile-image')[0].style.backgroundImage = `url("${content.pfp}")` else document.getElementsByClassName('background-card')[0].style.backgroundImage = `url("${content.banner}")` }); } reader.readAsArrayBuffer(file); } } export { ProfilPage };