aboutsummaryrefslogtreecommitdiffstats
path: root/web_src
diff options
context:
space:
mode:
authorsilverwind <me@silverwind.io>2024-07-03 17:48:14 +0200
committerGitHub <noreply@github.com>2024-07-03 17:48:14 +0200
commit2c92c7c5226e29636a1d47a277130f477fa2037b (patch)
tree2281cc2ca40fff4ecf241e485f7ed0e588407b35 /web_src
parentb270b30aebf42fb45d9a57288cf3dcbfa842a760 (diff)
downloadgitea-2c92c7c5226e29636a1d47a277130f477fa2037b.tar.gz
gitea-2c92c7c5226e29636a1d47a277130f477fa2037b.zip
Add typescript guideline and typescript-specific eslint plugins and fix issues (#31521)
1. Add some general guidelines how to write our typescript code 2. Add `@typescript-eslint/eslint-plugin`, general typescript rules 3. Add `eslint-plugin-deprecation` to detect deprecated code 4. Fix all new lint issues that came up
Diffstat (limited to 'web_src')
-rw-r--r--web_src/js/components/RepoActionView.vue4
-rw-r--r--web_src/js/features/repo-code.js4
-rw-r--r--web_src/js/features/repo-findfile.js4
-rw-r--r--web_src/js/features/repo-home.js8
-rw-r--r--web_src/js/utils/dom.js2
5 files changed, 12 insertions, 10 deletions
diff --git a/web_src/js/components/RepoActionView.vue b/web_src/js/components/RepoActionView.vue
index 97dc0d950f..e751018f90 100644
--- a/web_src/js/components/RepoActionView.vue
+++ b/web_src/js/components/RepoActionView.vue
@@ -89,7 +89,9 @@ const sfc = {
// load job data and then auto-reload periodically
// need to await first loadJob so this.currentJobStepsStates is initialized and can be used in hashChangeListener
await this.loadJob();
- this.intervalID = setInterval(this.loadJob, 1000);
+ this.intervalID = setInterval(() => {
+ this.loadJob();
+ }, 1000);
document.body.addEventListener('click', this.closeDropdown);
this.hashChangeListener();
window.addEventListener('hashchange', this.hashChangeListener);
diff --git a/web_src/js/features/repo-code.js b/web_src/js/features/repo-code.js
index f0f4ead125..658fa7e11c 100644
--- a/web_src/js/features/repo-code.js
+++ b/web_src/js/features/repo-code.js
@@ -153,7 +153,7 @@ export function initRepoCodeView() {
});
$(window).on('hashchange', () => {
- let m = rangeAnchorRegex.exec(window.location.hash.match);
+ let m = rangeAnchorRegex.exec(window.location.hash);
const $linesEls = $(getLineEls());
let $first;
if (m) {
@@ -170,7 +170,7 @@ export function initRepoCodeView() {
return;
}
}
- m = singleAnchorRegex.exec(window.location.hash.match);
+ m = singleAnchorRegex.exec(window.location.hash);
if (m) {
$first = $linesEls.filter(`[rel=L${m[2]}]`);
if ($first.length) {
diff --git a/web_src/js/features/repo-findfile.js b/web_src/js/features/repo-findfile.js
index 945eeeceff..828acfa65c 100644
--- a/web_src/js/features/repo-findfile.js
+++ b/web_src/js/features/repo-findfile.js
@@ -55,8 +55,8 @@ export function filterRepoFilesWeighted(files, filter) {
const filterLower = filter.toLowerCase();
// TODO: for large repo, this loop could be slow, maybe there could be one more limit:
// ... && filterResult.length < threshold * 20, wait for more feedbacks
- for (let i = 0; i < files.length; i++) {
- const res = strSubMatch(files[i], filterLower);
+ for (const file of files) {
+ const res = strSubMatch(file, filterLower);
if (res.length > 1) { // length==1 means unmatched, >1 means having matched sub strings
filterResult.push({matchResult: res, matchWeight: calcMatchedWeight(res)});
}
diff --git a/web_src/js/features/repo-home.js b/web_src/js/features/repo-home.js
index f48c1b1bb3..3a8e41bde1 100644
--- a/web_src/js/features/repo-home.js
+++ b/web_src/js/features/repo-home.js
@@ -102,16 +102,16 @@ export function initRepoTopicBar() {
if (res.topics) {
let found = false;
- for (let i = 0; i < res.topics.length; i++) {
+ for (const {topic_name} of res.topics) {
// skip currently added tags
- if (current_topics.includes(res.topics[i].topic_name)) {
+ if (current_topics.includes(topic_name)) {
continue;
}
- if (res.topics[i].topic_name.toLowerCase() === query.toLowerCase()) {
+ if (topic_name.toLowerCase() === query.toLowerCase()) {
found_query = true;
}
- formattedResponse.results.push({description: res.topics[i].topic_name, 'data-value': res.topics[i].topic_name});
+ formattedResponse.results.push({description: topic_name, 'data-value': topic_name});
found = true;
}
formattedResponse.success = found;
diff --git a/web_src/js/utils/dom.js b/web_src/js/utils/dom.js
index 9bdb233236..8d75c724de 100644
--- a/web_src/js/utils/dom.js
+++ b/web_src/js/utils/dom.js
@@ -270,7 +270,7 @@ export function replaceTextareaSelection(textarea, text) {
textarea.contentEditable = 'true';
try {
- success = document.execCommand('insertText', false, text);
+ success = document.execCommand('insertText', false, text); // eslint-disable-line deprecation/deprecation
} catch {
success = false;
}