From ad515c5be9edcfa02d96bc81135cd2582092c8d0 Mon Sep 17 00:00:00 2001
From: Andreas Svanberg <andreass@dsv.su.se>
Date: Fri, 11 Apr 2025 00:53:38 +0200
Subject: [PATCH] Suppress eslint explicit any warnings required for the
 advanced type trickery to work.

At the call site the types are correct, it is just the type signatures that require any.
---
 frontend/src/hooks/i18n.ts   | 6 +++---
 frontend/src/lib/messages.ts | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/frontend/src/hooks/i18n.ts b/frontend/src/hooks/i18n.ts
index 704d5f9..e2f4606 100644
--- a/frontend/src/hooks/i18n.ts
+++ b/frontend/src/hooks/i18n.ts
@@ -6,8 +6,8 @@ type MessageType = typeof messages;
 type MessageKeys = keyof MessageType;
 
 type MessageParams<T extends MessageKeys> = MessageType[T]["en"] extends (
-  ...args: any
-) => any
+  ...args: any // eslint-disable-line @typescript-eslint/no-explicit-any
+) => any // eslint-disable-line @typescript-eslint/no-explicit-any
   ? Parameters<MessageType[T]["en"]>
   : [];
 
@@ -19,7 +19,7 @@ export function useI18n() {
     ...args: MessageParams<T>
   ): string {
     const message = messages[key][lang] ?? messages[key]["en"];
-    // @ts-ignore
+    // @ts-expect-error see https://stackoverflow.com/a/75086839
     return typeof message === "function" ? message(...args) : message;
   };
 }
diff --git a/frontend/src/lib/messages.ts b/frontend/src/lib/messages.ts
index 90340c6..a821afc 100644
--- a/frontend/src/lib/messages.ts
+++ b/frontend/src/lib/messages.ts
@@ -19,5 +19,5 @@ export const messages = {
   },
 } as const satisfies Record<
   string,
-  AllLanguages<string | ((...args: any) => string)>
+  AllLanguages<string> | AllLanguages<(...args: any) => string> // eslint-disable-line @typescript-eslint/no-explicit-any
 >;