aboutsummaryrefslogtreecommitdiffstats
path: root/web_src/js/features/user-settings.ts
blob: c097df7b6c22791f637c9cd62b4b5f7e1b0bd45c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import {hideElem, showElem} from '../utils/dom.ts';
import {initCompCropper} from './comp/Cropper.ts';

function initUserSettingsAvatarCropper() {
  const fileInput = document.querySelector<HTMLInputElement>('#new-avatar');
  const container = document.querySelector<HTMLElement>('.user.settings.profile .cropper-panel');
  const imageSource = container.querySelector<HTMLImageElement>('.cropper-source');
  initCompCropper({container, fileInput, imageSource});
}

export function initUserSettings() {
  if (!document.querySelector('.user.settings.profile')) return;

  initUserSettingsAvatarCropper();

  const usernameInput = document.querySelector('#username');
  if (!usernameInput) return;
  usernameInput.addEventListener('input', function () {
    const prompt = document.querySelector('#name-change-prompt');
    const promptRedirect = document.querySelector('#name-change-redirect-prompt');
    if (this.value.toLowerCase() !== this.getAttribute('data-name').toLowerCase()) {
      showElem(prompt);
      showElem(promptRedirect);
    } else {
      hideElem(prompt);
      hideElem(promptRedirect);
    }
  });
}