mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-23 14:53:34 +01:00
[PORT] Fix a number of typescript issues (gitea#32308)
- Prefer [window.location.assign](https://developer.mozilla.org/en-US/docs/Web/API/Location/assign) over assigning to [window.location](https://developer.mozilla.org/en-US/docs/Web/API/Window/location) which typescript does not like. This works in all browsers including PaleMoon. - Fix all typescript issues in `web_src/js/webcomponents`, no behaviour changes. - ~~Workaround bug in `@typescript-eslint/no-unnecessary-type-assertion` rule.~~ - Omit vendored file from type checks. - `tsc` error count is reduce by 53 with these changes. --- Conflict resolution: Choose our version. Done differently: Everything related to typescript types isn't ported. Use `window.location.href` instead of `String(window.location)`, thanks @viceice! (cherry picked from commit 810782302652d73c4f7249c4c3df8a7e85bae5f0)
This commit is contained in:
parent
20c0a2a381
commit
3bdca4615c
3 changed files with 10 additions and 10 deletions
|
@ -140,11 +140,11 @@ export default {
|
||||||
Object.assign(this.locale, results.locale);
|
Object.assign(this.locale, results.locale);
|
||||||
},
|
},
|
||||||
showAllChanges() {
|
showAllChanges() {
|
||||||
window.location = `${this.issueLink}/files${this.queryParams}`;
|
window.location.assign(`${this.issueLink}/files${this.queryParams}`);
|
||||||
},
|
},
|
||||||
/** Called when user clicks on since last review */
|
/** Called when user clicks on since last review */
|
||||||
changesSinceLastReviewClick() {
|
changesSinceLastReviewClick() {
|
||||||
window.location = `${this.issueLink}/files/${this.lastReviewCommitSha}..${this.commits.at(-1).id}${this.queryParams}`;
|
window.location.assign(`${this.issueLink}/files/${this.lastReviewCommitSha}..${this.commits.at(-1).id}${this.queryParams}`);
|
||||||
},
|
},
|
||||||
/** Clicking on a single commit opens this specific commit */
|
/** Clicking on a single commit opens this specific commit */
|
||||||
commitClicked(commitId, newWindow = false) {
|
commitClicked(commitId, newWindow = false) {
|
||||||
|
@ -152,7 +152,7 @@ export default {
|
||||||
if (newWindow) {
|
if (newWindow) {
|
||||||
window.open(url);
|
window.open(url);
|
||||||
} else {
|
} else {
|
||||||
window.location = url;
|
window.location.assign(url);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
@ -174,14 +174,14 @@ export default {
|
||||||
const lastCommitIdx = this.commits.findLastIndex((x) => x.selected);
|
const lastCommitIdx = this.commits.findLastIndex((x) => x.selected);
|
||||||
if (lastCommitIdx === this.commits.length - 1) {
|
if (lastCommitIdx === this.commits.length - 1) {
|
||||||
// user selected all commits - just show the normal diff page
|
// user selected all commits - just show the normal diff page
|
||||||
window.location = `${this.issueLink}/files${this.queryParams}`;
|
window.location.assign(`${this.issueLink}/files${this.queryParams}`);
|
||||||
} else {
|
} else {
|
||||||
window.location = `${this.issueLink}/files/${this.commits[lastCommitIdx].id}${this.queryParams}`;
|
window.location.assign(`${this.issueLink}/files/${this.commits[lastCommitIdx].id}${this.queryParams}`);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const start = this.commits[this.commits.findIndex((x) => x.selected) - 1].id;
|
const start = this.commits[this.commits.findIndex((x) => x.selected) - 1].id;
|
||||||
const end = this.commits.findLast((x) => x.selected).id;
|
const end = this.commits.findLast((x) => x.selected).id;
|
||||||
window.location = `${this.issueLink}/files/${start}..${end}${this.queryParams}`;
|
window.location.assign(`${this.issueLink}/files/${start}..${end}${this.queryParams}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -119,7 +119,7 @@ function excludeLabel(item) {
|
||||||
const regStr = `labels=((?:-?[0-9]+%2c)*)(${id})((?:%2c-?[0-9]+)*)&`;
|
const regStr = `labels=((?:-?[0-9]+%2c)*)(${id})((?:%2c-?[0-9]+)*)&`;
|
||||||
const newStr = 'labels=$1-$2$3&';
|
const newStr = 'labels=$1-$2$3&';
|
||||||
|
|
||||||
window.location = href.replace(new RegExp(regStr), newStr);
|
window.location.assign(href.replace(new RegExp(regStr), newStr));
|
||||||
}
|
}
|
||||||
|
|
||||||
export function initRepoIssueSidebarList() {
|
export function initRepoIssueSidebarList() {
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import {toOriginUrl} from './origin-url.js';
|
import {toOriginUrl} from './origin-url.js';
|
||||||
|
|
||||||
test('toOriginUrl', () => {
|
test('toOriginUrl', () => {
|
||||||
const oldLocation = window.location;
|
const oldLocation = window.location.href;
|
||||||
for (const origin of ['https://example.com', 'https://example.com:3000']) {
|
for (const origin of ['https://example.com', 'https://example.com:3000']) {
|
||||||
window.location = new URL(`${origin}/`);
|
window.location.assign(`${origin}/`);
|
||||||
expect(toOriginUrl('/')).toEqual(`${origin}/`);
|
expect(toOriginUrl('/')).toEqual(`${origin}/`);
|
||||||
expect(toOriginUrl('/org/repo.git')).toEqual(`${origin}/org/repo.git`);
|
expect(toOriginUrl('/org/repo.git')).toEqual(`${origin}/org/repo.git`);
|
||||||
expect(toOriginUrl('https://another.com')).toEqual(`${origin}/`);
|
expect(toOriginUrl('https://another.com')).toEqual(`${origin}/`);
|
||||||
|
@ -13,5 +13,5 @@ test('toOriginUrl', () => {
|
||||||
expect(toOriginUrl('https://another.com:4000/')).toEqual(`${origin}/`);
|
expect(toOriginUrl('https://another.com:4000/')).toEqual(`${origin}/`);
|
||||||
expect(toOriginUrl('https://another.com:4000/org/repo.git')).toEqual(`${origin}/org/repo.git`);
|
expect(toOriginUrl('https://another.com:4000/org/repo.git')).toEqual(`${origin}/org/repo.git`);
|
||||||
}
|
}
|
||||||
window.location = oldLocation;
|
window.location.assign(oldLocation);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue