Remove jQuery from username change prompt and fix its detection (#29197)

- Switched to plain JavaScript
- Tested the user rename prompt toggling functionality and it works as
before
- Fixed bug that allowed pasting with the mouse to avoid the prompt

# Before

![before](https://github.com/go-gitea/gitea/assets/20454870/aa300ad7-612b-461e-bbb2-3f74b3b83ede)

# After

![after](https://github.com/go-gitea/gitea/assets/20454870/f2b5a51b-7b39-43c7-8a4a-62f1f77acae4)

---------

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
Yarden Shoham 2024-02-16 17:52:50 +02:00 committed by GitHub
parent 5902372e63
commit 0768842ef5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 15 additions and 14 deletions

View File

@ -1,18 +1,19 @@
import $ from 'jquery';
import {hideElem, showElem} from '../utils/dom.js'; import {hideElem, showElem} from '../utils/dom.js';
export function initUserSettings() { export function initUserSettings() {
if ($('.user.settings.profile').length > 0) { if (document.querySelectorAll('.user.settings.profile').length === 0) return;
$('#username').on('keyup', function () {
const $prompt = $('#name-change-prompt'); const usernameInput = document.getElementById('username');
const $prompt_redirect = $('#name-change-redirect-prompt'); if (!usernameInput) return;
if ($(this).val().toString().toLowerCase() !== $(this).data('name').toString().toLowerCase()) { usernameInput.addEventListener('input', function () {
showElem($prompt); const prompt = document.getElementById('name-change-prompt');
showElem($prompt_redirect); const promptRedirect = document.getElementById('name-change-redirect-prompt');
if (this.value.toLowerCase() !== this.getAttribute('data-name').toLowerCase()) {
showElem(prompt);
showElem(promptRedirect);
} else { } else {
hideElem($prompt); hideElem(prompt);
hideElem($prompt_redirect); hideElem(promptRedirect);
} }
}); });
} }
}