Skip to content

Commit 249e676

Browse files
authored
Remove jQuery import from some files (#32512)
Many files do not directly depend on jQuery now. To clarify the usage: use `fomanticQuery` to operate Fomantic components. Then developers could focus on removing the remaining jQuery usages by searching `import $` globally. 21 files now: ``` ./components/RepoBranchTagSelector.vue:3:import $ from 'jquery'; ./features/admin/common.ts:1:import $ from 'jquery'; ./features/admin/emails.ts:1:import $ from 'jquery'; ./features/common-button.ts:1:import $ from 'jquery'; ./features/comp/ComboMarkdownEditor.ts:3:import $ from 'jquery'; (I am working on it, there will be a new PR) ./features/comp/LabelEdit.ts:1:import $ from 'jquery'; ./features/notification.ts:1:import $ from 'jquery'; ./features/org-team.ts:1:import $ from 'jquery'; ./features/repo-code.ts:1:import $ from 'jquery'; ./features/repo-common.ts:1:import $ from 'jquery'; ./features/repo-diff.ts:1:import $ from 'jquery'; ./features/repo-editor.ts:1:import $ from 'jquery'; ./features/repo-issue-content.ts:1:import $ from 'jquery'; ./features/repo-issue-list.ts:1:import $ from 'jquery'; ./features/repo-issue-sidebar.ts:1:import $ from 'jquery'; ./features/repo-issue.ts:1:import $ from 'jquery'; ./features/repo-legacy.ts:1:import $ from 'jquery'; ./features/repo-new.ts:1:import $ from 'jquery'; ./features/repo-projects.ts:1:import $ from 'jquery'; ./features/repo-settings.ts:1:import $ from 'jquery'; ./features/repo-template.ts:1:import $ from 'jquery'; ```
1 parent 98d9a71 commit 249e676

11 files changed

+27
-24
lines changed

Diff for: web_src/js/components/DashboardRepoList.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<script lang="ts">
22
import {createApp, nextTick} from 'vue';
3-
import $ from 'jquery';
43
import {SvgIcon} from '../svg.ts';
54
import {GET} from '../modules/fetch.ts';
5+
import {fomanticQuery} from '../modules/fomantic/base.ts';
66
77
const {appSubUrl, assetUrlPrefix, pageData} = window.config;
88
@@ -102,7 +102,7 @@ const sfc = {
102102
mounted() {
103103
const el = document.querySelector('#dashboard-repo-list');
104104
this.changeReposFilter(this.reposFilter);
105-
$(el).find('.dropdown').dropdown();
105+
fomanticQuery(el.querySelector('.ui.dropdown')).dropdown();
106106
nextTick(() => {
107107
this.$refs.search.focus();
108108
});

Diff for: web_src/js/components/RepoContributors.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {
2121
import {chartJsColors} from '../utils/color.ts';
2222
import {sleep} from '../utils.ts';
2323
import 'chartjs-adapter-dayjs-4/dist/chartjs-adapter-dayjs-4.esm';
24-
import $ from 'jquery';
24+
import {fomanticQuery} from '../modules/fomantic/base.ts';
2525
2626
const customEventListener = {
2727
id: 'customEventListener',
@@ -77,7 +77,7 @@ export default {
7777
mounted() {
7878
this.fetchGraphData();
7979
80-
$('#repo-contributors').dropdown({
80+
fomanticQuery('#repo-contributors').dropdown({
8181
onChange: (val) => {
8282
this.xAxisMin = this.xAxisStart;
8383
this.xAxisMax = this.xAxisEnd;

Diff for: web_src/js/features/citation.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import $ from 'jquery';
21
import {getCurrentLocale} from '../utils.ts';
2+
import {fomanticQuery} from '../modules/fomantic/base.ts';
33

44
const {pageData} = window.config;
55

@@ -71,6 +71,6 @@ export async function initCitationFileCopyContent() {
7171
dropdownBtn.classList.remove('is-loading');
7272
}
7373

74-
$('#cite-repo-modal').modal('show');
74+
fomanticQuery('#cite-repo-modal').modal('show');
7575
});
7676
}

Diff for: web_src/js/features/common-form.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
import $ from 'jquery';
2-
import {initAreYouSure} from '../vendor/jquery.are-you-sure.ts';
1+
import {applyAreYouSure, initAreYouSure} from '../vendor/jquery.are-you-sure.ts';
32
import {handleGlobalEnterQuickSubmit} from './comp/QuickSubmit.ts';
43

54
export function initGlobalFormDirtyLeaveConfirm() {
65
initAreYouSure(window.jQuery);
76
// Warn users that try to leave a page after entering data into a form.
87
// Except on sign-in pages, and for forms marked as 'ignore-dirty'.
9-
if (!$('.user.signin').length) {
10-
$('form:not(.ignore-dirty)').areYouSure();
8+
if (!document.querySelector('.page-content.user.signin')) {
9+
applyAreYouSure('form:not(.ignore-dirty)');
1110
}
1211
}
1312

Diff for: web_src/js/features/comp/ConfirmModal.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import $ from 'jquery';
21
import {svg} from '../../svg.ts';
32
import {htmlEscape} from 'escape-goat';
43
import {createElementFromHTML} from '../../utils/dom.ts';
4+
import {fomanticQuery} from '../../modules/fomantic/base.ts';
55

66
const {i18n} = window.config;
77

@@ -17,7 +17,7 @@ export function confirmModal(content, {confirmButtonColor = 'primary'} = {}) {
1717
</div>
1818
`);
1919
document.body.append(modal);
20-
const $modal = $(modal);
20+
const $modal = fomanticQuery(modal);
2121
$modal.modal({
2222
onApprove() {
2323
resolve(true);

Diff for: web_src/js/features/comp/ReactionSelector.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import $ from 'jquery';
21
import {POST} from '../../modules/fetch.ts';
2+
import {fomanticQuery} from '../../modules/fomantic/base.ts';
33

44
export function initCompReactionSelector() {
55
for (const container of document.querySelectorAll('.issue-content, .diff-file-body')) {
@@ -29,7 +29,7 @@ export function initCompReactionSelector() {
2929
if (data.html) {
3030
commentContainer.insertAdjacentHTML('beforeend', data.html);
3131
const bottomReactionsDropdowns = commentContainer.querySelectorAll('.bottom-reactions .dropdown.select-reaction');
32-
$(bottomReactionsDropdowns).dropdown(); // re-init the dropdown
32+
fomanticQuery(bottomReactionsDropdowns).dropdown(); // re-init the dropdown
3333
}
3434
});
3535
}

Diff for: web_src/js/features/comp/SearchUserBox.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import $ from 'jquery';
21
import {htmlEscape} from 'escape-goat';
2+
import {fomanticQuery} from '../../modules/fomantic/base.ts';
33

44
const {appSubUrl} = window.config;
55
const looksLikeEmailAddressCheck = /^\S+@\S+$/;
@@ -10,7 +10,7 @@ export function initCompSearchUserBox() {
1010

1111
const allowEmailInput = searchUserBox.getAttribute('data-allow-email') === 'true';
1212
const allowEmailDescription = searchUserBox.getAttribute('data-allow-email-description') ?? undefined;
13-
$(searchUserBox).search({
13+
fomanticQuery(searchUserBox).search({
1414
minCharacters: 2,
1515
apiSettings: {
1616
url: `${appSubUrl}/user/search_candidates?q={query}`,

Diff for: web_src/js/features/repo-branch.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import $ from 'jquery';
21
import {toggleElem} from '../utils/dom.ts';
2+
import {fomanticQuery} from '../modules/fomantic/base.ts';
33

44
export function initRepoBranchButton() {
55
initRepoCreateBranchButton();
@@ -18,7 +18,7 @@ function initRepoCreateBranchButton() {
1818
const fromSpanName = el.getAttribute('data-modal-from-span') || '#modal-create-branch-from-span';
1919
document.querySelector(fromSpanName).textContent = el.getAttribute('data-branch-from');
2020

21-
$(el.getAttribute('data-modal')).modal('show');
21+
fomanticQuery(el.getAttribute('data-modal')).modal('show');
2222
});
2323
}
2424
}

Diff for: web_src/js/features/repo-graph.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import $ from 'jquery';
21
import {hideElem, showElem} from '../utils/dom.ts';
32
import {GET} from '../modules/fetch.ts';
3+
import {fomanticQuery} from '../modules/fomantic/base.ts';
44

55
export function initRepoGraphGit() {
66
const graphContainer = document.querySelector('#git-graph-container');
@@ -83,8 +83,8 @@ export function initRepoGraphGit() {
8383
}
8484

8585
const flowSelectRefsDropdown = document.querySelector('#flow-select-refs-dropdown');
86-
$(flowSelectRefsDropdown).dropdown('set selected', dropdownSelected);
87-
$(flowSelectRefsDropdown).dropdown({
86+
fomanticQuery(flowSelectRefsDropdown).dropdown('set selected', dropdownSelected);
87+
fomanticQuery(flowSelectRefsDropdown).dropdown({
8888
clearable: true,
8989
fullTextSeach: 'exact',
9090
onRemove(toRemove) {

Diff for: web_src/js/features/repo-home.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import $ from 'jquery';
21
import {stripTags} from '../utils.ts';
32
import {hideElem, queryElemChildren, showElem} from '../utils/dom.ts';
43
import {POST} from '../modules/fetch.ts';
54
import {showErrorToast} from '../modules/toast.ts';
5+
import {fomanticQuery} from '../modules/fomantic/base.ts';
66

77
const {appSubUrl} = window.config;
88

@@ -73,7 +73,7 @@ export function initRepoTopicBar() {
7373
}
7474
});
7575

76-
$(topicDropdown).dropdown({
76+
fomanticQuery(topicDropdown).dropdown({
7777
allowAdditions: true,
7878
forceSelection: false,
7979
fullTextSearch: 'exact',
@@ -136,7 +136,7 @@ export function initRepoTopicBar() {
136136
onLabelCreate(value) {
137137
value = value.toLowerCase().trim();
138138
this.attr('data-value', value).contents().first().replaceWith(value);
139-
return $(this);
139+
return fomanticQuery(this);
140140
},
141141
onAdd(addedValue, _addedText, $addedChoice) {
142142
addedValue = addedValue.toLowerCase().trim();

Diff for: web_src/js/vendor/jquery.are-you-sure.ts

+4
Original file line numberDiff line numberDiff line change
@@ -195,3 +195,7 @@ export function initAreYouSure($) {
195195
});
196196
};
197197
}
198+
199+
export function applyAreYouSure(selector: string) {
200+
$(selector).areYouSure();
201+
}

0 commit comments

Comments
 (0)