mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-30 01:12:12 +00:00
Enable the @typescript-eslint/no-unsafe-member-access eslint rule (#1833)
## Description: Enable the `@typescript-eslint/no-unsafe-member-access` eslint rule. Fixes #1783 ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||
import { LitElement, html } from "lit";
|
||||
import { customElement, state } from "lit/decorators.js";
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
import { LitElement, html } from "lit";
|
||||
import { customElement, property } from "lit/decorators.js";
|
||||
import { translateText } from "../client/Utils";
|
||||
|
||||
+9
-2
@@ -57,7 +57,7 @@ export function generateCryptoRandomUUID(): string {
|
||||
|
||||
// Fallback using crypto.getRandomValues
|
||||
if (crypto !== undefined && "getRandomValues" in crypto) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access
|
||||
return (([1e7] as any) + -1e3 + -4e3 + -8e3 + -1e11).replace(
|
||||
/[018]/g,
|
||||
(c: number): string =>
|
||||
@@ -86,7 +86,9 @@ export const translateText = (
|
||||
): string => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment
|
||||
const self = translateText as any;
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
self.formatterCache ??= new Map();
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
self.lastLang ??= null;
|
||||
|
||||
const langSelector = document.querySelector("lang-selector") as LangSelector;
|
||||
@@ -102,8 +104,11 @@ export const translateText = (
|
||||
return key;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
if (self.lastLang !== langSelector.currentLang) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
self.formatterCache.clear();
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
self.lastLang = langSelector.currentLang;
|
||||
}
|
||||
|
||||
@@ -124,14 +129,16 @@ export const translateText = (
|
||||
? "en"
|
||||
: langSelector.currentLang;
|
||||
const cacheKey = `${key}:${locale}:${message}`;
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
||||
let formatter = self.formatterCache.get(cacheKey);
|
||||
|
||||
if (!formatter) {
|
||||
formatter = new IntlMessageFormat(message, locale);
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
self.formatterCache.set(cacheKey, formatter);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
return formatter.format(params) as string;
|
||||
} catch (e) {
|
||||
console.warn("ICU format error", e);
|
||||
|
||||
@@ -131,7 +131,7 @@ export class RadialMenu implements Layer {
|
||||
this.hideRadialMenu();
|
||||
this.eventBus.emit(new CloseRadialMenuEvent());
|
||||
})
|
||||
.on("contextmenu", (e) => {
|
||||
.on("contextmenu", (e: Event) => {
|
||||
e.preventDefault();
|
||||
this.hideRadialMenu();
|
||||
this.eventBus.emit(new CloseRadialMenuEvent());
|
||||
@@ -178,7 +178,7 @@ export class RadialMenu implements Layer {
|
||||
.attr("r", this.config.centerButtonSize)
|
||||
.attr("fill", "transparent")
|
||||
.style("cursor", "pointer")
|
||||
.on("click", (event) => {
|
||||
.on("click", (event: Event) => {
|
||||
event.stopPropagation();
|
||||
this.handleCenterButtonClick();
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user