From 9cfa792ba5189aa3b3a6d94a150ae290a61931ec Mon Sep 17 00:00:00 2001 From: Baoyuantop Date: Tue, 14 Apr 2026 13:16:04 +0800 Subject: [PATCH] fix(header): fix crash on language switch by adding missing 'tr' lang and guard Root cause: vite.config.ts i18nProgress plugin was configured with langs: ['en', 'es', 'de', 'zh'] but LangMap defines 5 languages including 'tr' (Turkish). Accessing i18nProgress['tr'] returned undefined, causing TypeError when reading .percent. Fix: 1. Add 'tr' to langs array in vite.config.ts (root cause fix) 2. Add optional chaining in LanguageMenu.tsx (defensive guard) Fixes #3300 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/components/Header/LanguageMenu.tsx | 2 +- vite.config.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Header/LanguageMenu.tsx b/src/components/Header/LanguageMenu.tsx index 48fcd8f0ef..316daf05ec 100644 --- a/src/components/Header/LanguageMenu.tsx +++ b/src/components/Header/LanguageMenu.tsx @@ -30,7 +30,7 @@ const LangMap: Record = { }; const TranslationProgress = ({ lang }: { lang: string }) => { - const percent = i18nProgress[lang].percent; + const percent = i18nProgress[lang as keyof typeof i18nProgress]?.percent; if (typeof percent === 'number' && percent < 100) { return ( `./src/locales/${lang}`, }),