From e8d173a18f7eb773f87c9beb3e43beb5ea9b92d0 Mon Sep 17 00:00:00 2001 From: Anders Olsson Date: Thu, 4 Jun 2026 09:19:27 +0200 Subject: [PATCH] refactor(web): LabelEditor ignores blank labels; revert gratuitous tsconfig ES2022 bump Co-Authored-By: Claude Opus 4.8 (1M context) --- web/src/components/label-editor.test.tsx | 2 +- web/src/components/label-editor.tsx | 2 +- web/tsconfig.app.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/web/src/components/label-editor.test.tsx b/web/src/components/label-editor.test.tsx index 47d22c9..35bf81c 100644 --- a/web/src/components/label-editor.test.tsx +++ b/web/src/components/label-editor.test.tsx @@ -26,7 +26,7 @@ test("typing EN and SV emits both labels; empty langs are omitted", async () => renderApp( seen.push(v)} />); await userEvent.type(screen.getByLabelText(/label \(en\)/i), "Bronze"); await userEvent.type(screen.getByLabelText(/label \(sv\)/i), "Brons"); - const last = seen.at(-1)!; + const last = seen[seen.length - 1]!; expect(last).toEqual( expect.arrayContaining([ { lang: "en", label: "Bronze" }, diff --git a/web/src/components/label-editor.tsx b/web/src/components/label-editor.tsx index 3636382..1c07bc7 100644 --- a/web/src/components/label-editor.tsx +++ b/web/src/components/label-editor.tsx @@ -21,7 +21,7 @@ export function LabelEditor({ const set = (lang: string, label: string) => { const others = value.filter((l) => l.lang !== lang); - onChange(label ? [...others, { lang, label }] : others); + onChange(label.trim() ? [...others, { lang, label }] : others); }; return ( diff --git a/web/tsconfig.app.json b/web/tsconfig.app.json index 97295a4..cc58243 100644 --- a/web/tsconfig.app.json +++ b/web/tsconfig.app.json @@ -1,9 +1,9 @@ { "compilerOptions": { "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", - "target": "ES2022", + "target": "ES2020", "useDefineForClassFields": true, - "lib": ["ES2022", "DOM", "DOM.Iterable"], + "lib": ["ES2020", "DOM", "DOM.Iterable"], "module": "ESNext", "skipLibCheck": true,