Remove jQuery ready usage (#23858)

Replace it with equal function of our own and enable the eslint rule to
forbid future usage.
This commit is contained in:
silverwind 2023-04-02 00:40:22 +02:00 committed by GitHub
parent eadda68ded
commit ae36113568
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 3 deletions

View file

@ -164,7 +164,7 @@ rules:
jquery/no-parse-html: [2] jquery/no-parse-html: [2]
jquery/no-prop: [0] jquery/no-prop: [0]
jquery/no-proxy: [2] jquery/no-proxy: [2]
jquery/no-ready: [0] jquery/no-ready: [2]
jquery/no-serialize: [2] jquery/no-serialize: [2]
jquery/no-show: [2] jquery/no-show: [2]
jquery/no-size: [2] jquery/no-size: [2]

View file

@ -1,7 +1,6 @@
// bootstrap module must be the first one to be imported, it handles webpack lazy-loading and global errors // bootstrap module must be the first one to be imported, it handles webpack lazy-loading and global errors
import './bootstrap.js'; import './bootstrap.js';
import $ from 'jquery';
import {initRepoActivityTopAuthorsChart} from './components/RepoActivityTopAuthors.vue'; import {initRepoActivityTopAuthorsChart} from './components/RepoActivityTopAuthors.vue';
import {initDashboardRepoList} from './components/DashboardRepoList.vue'; import {initDashboardRepoList} from './components/DashboardRepoList.vue';
@ -90,6 +89,7 @@ import {initCaptcha} from './features/captcha.js';
import {initRepositoryActionView} from './components/RepoActionView.vue'; import {initRepositoryActionView} from './components/RepoActionView.vue';
import {initGlobalTooltips} from './modules/tippy.js'; import {initGlobalTooltips} from './modules/tippy.js';
import {initGiteaFomantic} from './modules/fomantic.js'; import {initGiteaFomantic} from './modules/fomantic.js';
import {onDomReady} from './utils/dom.js';
// Run time-critical code as soon as possible. This is safe to do because this // Run time-critical code as soon as possible. This is safe to do because this
// script appears at the end of <body> and rendered HTML is accessible at that point. // script appears at the end of <body> and rendered HTML is accessible at that point.
@ -98,7 +98,7 @@ initFormattingReplacements();
// Init Gitea's Fomantic settings // Init Gitea's Fomantic settings
initGiteaFomantic(); initGiteaFomantic();
$(document).ready(() => { onDomReady(() => {
initGlobalCommon(); initGlobalCommon();
initGlobalTooltips(); initGlobalTooltips();

View file

@ -67,3 +67,11 @@ export function hideElem(el) {
export function toggleElem(el, force) { export function toggleElem(el, force) {
elementsCall(el, toggleShown, force); elementsCall(el, toggleShown, force);
} }
export function onDomReady(cb) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', cb);
} else {
cb();
}
}