From 9e4ae017031f9287b1ec8b62ebc67bc1e9c2127c Mon Sep 17 00:00:00 2001 From: Joyce Yuki <82857964+kathyavini@users.noreply.github.com> Date: Thu, 12 Sep 2024 10:49:54 -0700 Subject: [PATCH 1/3] LF-4056 Remove unused translation function from useLanguageOptions --- packages/webapp/src/hooks/useLanguageOptions.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/webapp/src/hooks/useLanguageOptions.ts b/packages/webapp/src/hooks/useLanguageOptions.ts index 3c8b8bb32c..53aa30c592 100644 --- a/packages/webapp/src/hooks/useLanguageOptions.ts +++ b/packages/webapp/src/hooks/useLanguageOptions.ts @@ -12,7 +12,6 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details, see . */ -import { useTranslation } from 'react-i18next'; const supportedLanguages = [ ['en', 'English'], @@ -26,11 +25,9 @@ const supportedLanguages = [ ]; const useLanguageOptions = () => { - const { t } = useTranslation(); - return supportedLanguages.map(([value, text]) => ({ value, - label: t(text), + label: text, })); }; From 5601c4394e67f0e687717950320448dae52820a0 Mon Sep 17 00:00:00 2001 From: Joyce Yuki <82857964+kathyavini@users.noreply.github.com> Date: Thu, 12 Sep 2024 10:52:15 -0700 Subject: [PATCH 2/3] LF-4056 Fix Profile/Account to accept array options instead of map --- packages/webapp/src/components/Profile/Account/index.jsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/webapp/src/components/Profile/Account/index.jsx b/packages/webapp/src/components/Profile/Account/index.jsx index 6850b97ed6..97164e3e80 100644 --- a/packages/webapp/src/components/Profile/Account/index.jsx +++ b/packages/webapp/src/components/Profile/Account/index.jsx @@ -11,12 +11,11 @@ import useGenderOptions from '../../../hooks/useGenderOptions'; import useLanguageOptionsMap from '../../../hooks/useLanguageOptions'; const useLanguageOptions = (language_preference) => { - const languageOptionMap = useLanguageOptionsMap(); - const languageOptions = Object.values(languageOptionMap); + const languageOptions = useLanguageOptionsMap(); const languagePreferenceOptionRef = useRef(); languagePreferenceOptionRef.current = - languageOptionMap[language_preference] || language_preference; - return { languageOptionMap, languageOptions, languagePreferenceOptionRef }; + languageOptions.find(({ value }) => value === language_preference) || language_preference; + return { languageOptions, languagePreferenceOptionRef }; }; export default function PureAccount({ userFarm, onSubmit, history, isAdmin }) { From b03af02542caee12a7a3ac800ca949c66eda79c2 Mon Sep 17 00:00:00 2001 From: Joyce Yuki <82857964+kathyavini@users.noreply.github.com> Date: Thu, 12 Sep 2024 10:53:43 -0700 Subject: [PATCH 3/3] LF-4056 Remove timeout and nulling of language selection Maybe it was necessary when the strings were translated? But now I don't see it doing anything other than flashing a null value before selection; very unpleasant --- .../webapp/src/components/Profile/Account/index.jsx | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/webapp/src/components/Profile/Account/index.jsx b/packages/webapp/src/components/Profile/Account/index.jsx index 97164e3e80..3b982e9c5e 100644 --- a/packages/webapp/src/components/Profile/Account/index.jsx +++ b/packages/webapp/src/components/Profile/Account/index.jsx @@ -41,14 +41,10 @@ export default function PureAccount({ userFarm, onSubmit, history, isAdmin }) { shouldUnregister: true, }); useEffect(() => { - // get proper translations for the selected options right after language preference is updated - setValue(userFarmEnum.language_preference, null, { shouldValidate: false, shouldDirty: false }); - setTimeout(() => { - setValue(userFarmEnum.language_preference, languagePreferenceOptionRef.current, { - shouldValidate: false, - shouldDirty: false, - }); - }, 100); + setValue(userFarmEnum.language_preference, languagePreferenceOptionRef.current, { + shouldValidate: false, + shouldDirty: false, + }); }, [userFarm.language_preference]); const disabled = !isDirty || !isValid; return (