Files
gitea/web_src/js/features/user-settings.ts
T
wxiaoguangandsilverwind f690ea8efd chore: refactor legacy JS init code to use "data-global-init" (#39836)
Move the remaining legacy init code, which probed page classes with
`querySelector`, to `data-global-init`, so each feature initializes from
its own element. `hashchange` listeners now go through one module that
runs them in priority order, because independent listeners broke when
mount order changed.

- Convert issue list, diff, repo create, settings and org team inits to
`data-global-init`
- Run `hashchange` listeners by priority, the diff scroll handler last
- Make the devtest mock's failing log requests deterministic
- Add e2e tests for diff tree navigation to folded files and job log
permalinks

---------

Co-authored-by: silverwind <me@silverwind.io>
2026-10-18 13:59:51 +00:00

16 lines
734 B
TypeScript

import {toggleElem} from '../utils/dom.ts';
import {registerGlobalInitFunc} from '../modules/observer.ts';
export function initUserSettings() {
registerGlobalInitFunc('initUserSettingsForm', (elForm: HTMLFormElement) => {
const usernameInput = elForm.querySelector<HTMLInputElement>('input[name=name]')!;
usernameInput.addEventListener('input', () => {
const prompt = elForm.querySelector('#name-change-prompt')!;
const promptRedirect = elForm.querySelector('#name-change-redirect-prompt')!;
const showPrompt = usernameInput.value.toLowerCase() !== usernameInput.getAttribute('data-name')!.toLowerCase();
toggleElem(prompt, showPrompt);
toggleElem(promptRedirect, showPrompt);
});
});
}