feat(account-setup): refactor language handling in account setup process
- Updated language keys to use constants from the Language enum for better maintainability. - Changed the language state selector to use 'lng' instead of 'language' for consistency. - Adjusted the language change handler to accept ILanguageType for type safety.
This commit is contained in:
@@ -37,6 +37,7 @@ import { projectTemplatesApiService } from '@/api/project-templates/project-temp
|
|||||||
import { surveyApiService } from '@/api/survey/survey.api.service';
|
import { surveyApiService } from '@/api/survey/survey.api.service';
|
||||||
import { ISurveySubmissionRequest, ISurveyAnswer } from '@/types/account-setup/survey.types';
|
import { ISurveySubmissionRequest, ISurveyAnswer } from '@/types/account-setup/survey.types';
|
||||||
import { setLanguage } from '@/features/i18n/localesSlice';
|
import { setLanguage } from '@/features/i18n/localesSlice';
|
||||||
|
import { ILanguageType, Language } from '@/features/i18n/localesSlice';
|
||||||
import { toggleTheme } from '@/features/theme/themeSlice';
|
import { toggleTheme } from '@/features/theme/themeSlice';
|
||||||
|
|
||||||
const { Title } = Typography;
|
const { Title } = Typography;
|
||||||
@@ -74,7 +75,7 @@ const AccountSetup: React.FC = () => {
|
|||||||
|
|
||||||
const { currentStep, organizationName, projectName, templateId, tasks, teamMembers, surveyData, surveySubStep } =
|
const { currentStep, organizationName, projectName, templateId, tasks, teamMembers, surveyData, surveySubStep } =
|
||||||
useSelector((state: RootState) => state.accountSetupReducer);
|
useSelector((state: RootState) => state.accountSetupReducer);
|
||||||
const { language } = useSelector((state: RootState) => state.localesReducer);
|
const lng = useSelector((state: RootState) => state.localesReducer.lng);
|
||||||
const userDetails = getUserSession();
|
const userDetails = getUserSession();
|
||||||
const themeMode = useSelector((state: RootState) => state.themeReducer.mode);
|
const themeMode = useSelector((state: RootState) => state.themeReducer.mode);
|
||||||
|
|
||||||
@@ -451,15 +452,15 @@ const AccountSetup: React.FC = () => {
|
|||||||
|
|
||||||
// Language switcher functionality
|
// Language switcher functionality
|
||||||
const languages = [
|
const languages = [
|
||||||
{ key: 'en', label: 'English', flag: '🇺🇸' },
|
{ key: Language.EN, label: 'English', flag: '🇺🇸' },
|
||||||
{ key: 'es', label: 'Español', flag: '🇪🇸' },
|
{ key: Language.ES, label: 'Español', flag: '🇪🇸' },
|
||||||
{ key: 'pt', label: 'Português', flag: '🇵🇹' },
|
{ key: Language.PT, label: 'Português', flag: '🇵🇹' },
|
||||||
{ key: 'de', label: 'Deutsch', flag: '🇩🇪' },
|
{ key: Language.DE, label: 'Deutsch', flag: '🇩🇪' },
|
||||||
{ key: 'alb', label: 'Shqip', flag: '🇦🇱' },
|
{ key: Language.ALB, label: 'Shqip', flag: '🇦🇱' },
|
||||||
{ key: 'zh', label: '简体中文', flag: '🇨🇳' }
|
{ key: Language.ZH_CN, label: '简体中文', flag: '🇨🇳' }
|
||||||
];
|
];
|
||||||
|
|
||||||
const handleLanguageChange = (languageKey: string) => {
|
const handleLanguageChange = (languageKey: ILanguageType) => {
|
||||||
dispatch(setLanguage(languageKey));
|
dispatch(setLanguage(languageKey));
|
||||||
i18n.changeLanguage(languageKey);
|
i18n.changeLanguage(languageKey);
|
||||||
};
|
};
|
||||||
@@ -476,10 +477,10 @@ const AccountSetup: React.FC = () => {
|
|||||||
<span>{lang.label}</span>
|
<span>{lang.label}</span>
|
||||||
</div>
|
</div>
|
||||||
),
|
),
|
||||||
onClick: () => handleLanguageChange(lang.key)
|
onClick: () => handleLanguageChange(lang.key as ILanguageType)
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const currentLanguage = languages.find(lang => lang.key === language) || languages[0];
|
const currentLanguage = languages.find(lang => lang.key === lng) || languages[0];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
|
|||||||
Reference in New Issue
Block a user