From 27dc599851982c25b2e5ab052b9d04d77e123951 Mon Sep 17 00:00:00 2001 From: Eli Grey <~@eligrey.com> Date: Mon, 21 Oct 2024 11:22:34 -0700 Subject: [PATCH] Fix UI language matching (#186) --- package.json | 2 +- src/hooks/useLanguage.ts | 42 +++++++++++++++++++++------------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 7187f91..9c264ac 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "url": "https://github.com/transcend-io/consent-manager-ui.git" }, "homepage": "https://github.com/transcend-io/consent-manager-ui", - "version": "4.21.0", + "version": "4.21.1", "license": "MIT", "main": "build/ui", "files": [ diff --git a/src/hooks/useLanguage.ts b/src/hooks/useLanguage.ts index 36d495a..b119c21 100644 --- a/src/hooks/useLanguage.ts +++ b/src/hooks/useLanguage.ts @@ -75,26 +75,6 @@ export const getNearestSupportedLanguage = ( ), ); -/** - * Picks a default language for the user - * - * @param supportedLanguages - Set of supported languages - * @returns the language key of the best default language for this user - */ -export function pickDefaultLanguage( - supportedLanguages: ConsentManagerLanguageKey[], -): ConsentManagerLanguageKey { - if (settings.locale && supportedLanguages.includes(settings.locale)) { - return settings.locale; - } - - const preferredLanguages = getUserLanguages(); - return ( - getNearestSupportedLanguage(preferredLanguages, supportedLanguages) || - ConsentManagerLanguageKey.En - ); -} - /** * Sorts the supported languages by the user's preferences * @@ -120,6 +100,28 @@ export const sortSupportedLanguagesByPreference = ( return rank(a) - rank(b); }); +/** + * Picks a default language for the user + * + * @param supportedLanguages - Set of supported languages + * @returns the language key of the best default language for this user + */ +export function pickDefaultLanguage( + supportedLanguages: ConsentManagerLanguageKey[], +): ConsentManagerLanguageKey { + if (settings.locale && supportedLanguages.includes(settings.locale)) { + return settings.locale; + } + + const preferredLanguages = getUserLanguages(); + return ( + getNearestSupportedLanguage( + preferredLanguages, + sortSupportedLanguagesByPreference(supportedLanguages), + ) || ConsentManagerLanguageKey.En + ); +} + /** * Fetch message translations *