3 Seconds
diff --git a/web/src/elements/decorators/intersection-observer.ts b/web/src/elements/decorators/intersection-observer.ts
index 65a630671a..312a622c3f 100644
--- a/web/src/elements/decorators/intersection-observer.ts
+++ b/web/src/elements/decorators/intersection-observer.ts
@@ -71,7 +71,7 @@ export function intersectionObserver(init: IntersectionObserverInit = {}): Inter
const { connectedCallback, disconnectedCallback } = target;
- target.connectedCallback = function (this: T) {
+ target.connectedCallback = function connectedCallbackWrapper(this: T) {
connectedCallback?.call(this);
if (this.hasUpdated) {
@@ -83,7 +83,7 @@ export function intersectionObserver(init: IntersectionObserverInit = {}): Inter
}
};
- target.disconnectedCallback = function (this: LitElement) {
+ target.disconnectedCallback = function disconnectedCallbackWrapper(this: LitElement) {
disconnectedCallback?.call(this);
if (observer) {
diff --git a/web/src/elements/forms/Form.ts b/web/src/elements/forms/Form.ts
index 572b98a86f..2578fa9eb3 100644
--- a/web/src/elements/forms/Form.ts
+++ b/web/src/elements/forms/Form.ts
@@ -277,7 +277,7 @@ export abstract class Form
> extends AKElement {
/**
* An overridable method for returning a formatted message after a successful submission.
*/
- protected formatAPISuccessMessage(response: unknown): APIMessage | null {
+ protected formatAPISuccessMessage(_response: unknown): APIMessage | null {
const message = this.getSuccessMessage();
if (!message) return null;
diff --git a/web/src/elements/router/RouteMatch.ts b/web/src/elements/router/RouteMatch.ts
index 287bc0d9b3..0b18e52ee3 100644
--- a/web/src/elements/router/RouteMatch.ts
+++ b/web/src/elements/router/RouteMatch.ts
@@ -42,14 +42,6 @@ export class RouteMatch {
}
}
-export function getURLParam(key: string, fallback: T): T {
- const params = getURLParams();
- if (key in params) {
- return params[key] as T;
- }
- return fallback;
-}
-
export function getURLParams(): RouteParameterRecord {
const params = {};
if (window.location.hash.includes(ROUTE_SEPARATOR)) {
@@ -64,6 +56,14 @@ export function getURLParams(): RouteParameterRecord {
return params;
}
+export function getURLParam(key: string, fallback: T): T {
+ const params = getURLParams();
+ if (key in params) {
+ return params[key] as T;
+ }
+ return fallback;
+}
+
/**
* Serialize route parameters to a JSON string, removing empty values.
*
diff --git a/web/src/elements/router/RouterOutlet.ts b/web/src/elements/router/RouterOutlet.ts
index cee3b1c46c..4d9856598a 100644
--- a/web/src/elements/router/RouterOutlet.ts
+++ b/web/src/elements/router/RouterOutlet.ts
@@ -23,23 +23,26 @@ import { customElement, property } from "lit/decorators.js";
// Poliyfill for hashchange.newURL,
// https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onhashchange
window.addEventListener("load", () => {
- if (!window.HashChangeEvent)
- (function () {
- let lastURL = document.URL;
- window.addEventListener("hashchange", function (event) {
- Object.defineProperty(event, "oldURL", {
- enumerable: true,
- configurable: true,
- value: lastURL,
- });
- Object.defineProperty(event, "newURL", {
- enumerable: true,
- configurable: true,
- value: document.URL,
- });
- lastURL = document.URL;
- });
- })();
+ if (window.HashChangeEvent) {
+ return;
+ }
+
+ let lastURL = document.URL;
+
+ window.addEventListener("hashchange", (event) => {
+ Object.defineProperty(event, "oldURL", {
+ enumerable: true,
+ configurable: true,
+ value: lastURL,
+ });
+
+ Object.defineProperty(event, "newURL", {
+ enumerable: true,
+ configurable: true,
+ value: document.URL,
+ });
+ lastURL = document.URL;
+ });
});
export function paramURL(url: string, params?: { [key: string]: unknown }): string {
diff --git a/web/src/elements/stories/Alert.stories.ts b/web/src/elements/stories/Alert.stories.ts
index 6b485069fc..70ce01d128 100644
--- a/web/src/elements/stories/Alert.stories.ts
+++ b/web/src/elements/stories/Alert.stories.ts
@@ -42,7 +42,9 @@ Note that the content of an alert _must_ be a valid HTML component; plain text d
inline: { control: "boolean" },
level: { control: "text" },
icon: { control: "text" },
- // @ts-ignore
+ // @ts-expect-error Typescript is unaware that arguments for components
+ // are treated as properties, and properties are typically renamed to lower case,
+ // even if the variable is not.
message: { control: "text" },
},
};
@@ -55,7 +57,7 @@ export const DefaultStory: StoryObj = {
message: "You should be alarmed.",
},
- // @ts-ignore
+ // @ts-expect-error Storybook cannot infer the type here.
render: ({ inline, level, icon, message }: IAlertForTesting) => {
return html`