forgejo/web_src/js/webcomponents
silverwind 3bdca4615c
[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)
2024-11-04 09:15:06 +01:00
..
absolute-date.js Use Temporal.PlainDate for absolute dates (#29804) 2024-03-20 08:46:29 +01:00
absolute-date.test.js Use Temporal.PlainDate for absolute dates (#29804) 2024-03-20 08:46:29 +01:00
index.js Add <overflow-menu>, rename webcomponents (#29400) 2024-03-20 08:46:29 +01:00
origin-url.js Add <overflow-menu>, rename webcomponents (#29400) 2024-03-20 08:46:29 +01:00
origin-url.test.js [PORT] Fix a number of typescript issues (gitea#32308) 2024-11-04 09:15:06 +01:00
overflow-menu.js Add typescript 2024-10-29 18:15:09 +01:00
polyfills.js Enforce trailing comma in JS on multiline (#30002) 2024-03-26 19:04:27 +01:00
README.md Add <overflow-menu>, rename webcomponents (#29400) 2024-03-20 08:46:29 +01:00

Web Components

This webcomponents directory contains the source code for the web components used in the Gitea Web UI.

https://developer.mozilla.org/en-US/docs/Web/Web_Components

Guidelines

  • These components are loaded in <head> (before DOM body) in a separate entry point, they need to be lightweight to not affect the page loading time too much.
  • Do not import svg.js into a web component because that file is currently not tree-shakeable, import svg files individually insteat.
  • All our components must be added to webpack.config.js so they work correctly in Vue.