- `;
- }
+ if (!username.length || username === client.me.username)
+ return;
+
+ const error = await client.account.updateUsername(username);
+ if (!error) {
+ usernameDetail.classList.remove('text-danger');
+ usernameDetail.classList.add('text-success');
+ usernameDetail.innerHTML = 'Username Saved.';
+ setTimeout(_ => usernameDetail.innerHTML = '', 2000);
+ document.getElementById('usernameSave').classList.add('disabled');
+ } else {
+ usernameDetail.classList.remove('text-success');
+ usernameDetail.classList.add('text-danger');
+ usernameDetail.innerHTML = error;
+ document.getElementById('usernameSave').classList.add('disabled');
+ console.log(error);
+ }
+ }
+
+ async saveAvatar()
+ {
+ const avatarInput = document.getElementById('avatarInput');
+ const selectedFile = avatarInput.files[0];
+ const avatarDetail = document.getElementById('avatarDetail');
+
+ if (!selectedFile)
+ return;
+
+ if (selectedFile.size > this.PROFILE_PICTURE_MAX_SIZE) {
+ avatarDetail.classList.remove('text-success');
+ avatarDetail.classList.add('text-danger');
+ avatarDetail.innerHTML = 'Image is too large.'; //to translate
+ return;
+ }
+
+ const error = await client.me.changeAvatar(selectedFile);
+ if (!error) {
+ avatarDetail.classList.remove('text-danger');
+ avatarDetail.classList.add('text-success');
+ avatarDetail.innerHTML = 'Avatar saved.'; //to translate
+ setTimeout(_ => avatarDetail.innerHTML = '', 2000);
+ document.getElementById('avatarDelete').classList.remove('d-none');
+ document.getElementById('avatarUpload').classList.add('d-none');
+ avatarInput.value = null;
+ } else {
+ avatarDetail.classList.remove('text-success');
+ avatarDetail.classList.add('text-danger');
+ avatarDetail.innerHTML = error.avatar[0];
+ document.getElementById('avatarUpload').classList.add('d-none');
+ avatarInput.value = null;
+ console.log(error);
+ }
+ this.displayAvatar();
+ }
+
+ async deleteAvatar() {
+ const avatarDetail = document.getElementById('avatarDetail');
+
+ const error = await client.me.deleteAvatar();
+ if (!error) {
+ avatarDetail.classList.remove('text-danger');
+ avatarDetail.classList.add('text-success');
+ avatarDetail.innerHTML = 'Avatar deleted.'; //to translate
+ setTimeout(_ => avatarDetail.innerHTML = '', 2000);
+ document.getElementById('avatarDelete').classList.add('d-none');
+ } else {
+ avatarDetail.classList.remove('text-success');
+ avatarDetail.classList.add('text-danger');
+ avatarDetail.innerHTML = 'Something went wrong.'; //to translate
+ }
+ this.displayAvatar();
+ }
+
+ async getHtml()
+ {
+ const avatarUnchanged = client.me.avatar_url === '/static/avatars/default.avif';
+
+ return /* HTML */ `
+