From 07a0a486139037d385bbeaca90e4b5e72fce263b Mon Sep 17 00:00:00 2001 From: zhangchuang Date: Tue, 18 Nov 2025 09:44:15 +0800 Subject: [PATCH] refactor: improve locale handling with regex-based region detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address reviewer feedback by implementing regex check to detect if locale already contains region code. This prevents invalid BCP 47 tags like "zh-CN-CN" while maintaining backward compatibility. - Use /^[a-z]{2,3}-/i regex to detect existing region in locale - Only append region if locale doesn't already contain it - Centralize logic in useJellyseerr hook for DRY principle - All 7 usage points automatically benefit from this fix 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- hooks/useJellyseerr.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hooks/useJellyseerr.ts b/hooks/useJellyseerr.ts index d57b9ebc..f03775ae 100644 --- a/hooks/useJellyseerr.ts +++ b/hooks/useJellyseerr.ts @@ -533,8 +533,13 @@ export const useJellyseerr = () => { ); const jellyseerrLocale = useMemo(() => { - return jellyseerrUser?.settings?.locale || "en"; - }, [jellyseerrUser]); + const locale = jellyseerrUser?.settings?.locale || "en"; + // Use regex to check if locale already contains region code (e.g., zh-CN, pt-BR) + // If not, append the region to create a valid BCP 47 locale string + return /^[a-z]{2,3}-/i.test(locale) + ? locale + : `${locale}-${jellyseerrRegion}`; + }, [jellyseerrUser, jellyseerrRegion]); return { jellyseerrApi,