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:
chamikaJ
2025-07-25 15:22:51 +05:30
parent 65745e368f
commit 2aaf0fc19a

View File

@@ -37,6 +37,7 @@ import { projectTemplatesApiService } from '@/api/project-templates/project-temp
import { surveyApiService } from '@/api/survey/survey.api.service';
import { ISurveySubmissionRequest, ISurveyAnswer } from '@/types/account-setup/survey.types';
import { setLanguage } from '@/features/i18n/localesSlice';
import { ILanguageType, Language } from '@/features/i18n/localesSlice';
import { toggleTheme } from '@/features/theme/themeSlice';
const { Title } = Typography;
@@ -74,7 +75,7 @@ const AccountSetup: React.FC = () => {
const { currentStep, organizationName, projectName, templateId, tasks, teamMembers, surveyData, surveySubStep } =
useSelector((state: RootState) => state.accountSetupReducer);
const { language } = useSelector((state: RootState) => state.localesReducer);
const lng = useSelector((state: RootState) => state.localesReducer.lng);
const userDetails = getUserSession();
const themeMode = useSelector((state: RootState) => state.themeReducer.mode);
@@ -451,15 +452,15 @@ const AccountSetup: React.FC = () => {
// Language switcher functionality
const languages = [
{ key: 'en', label: 'English', flag: '🇺🇸' },
{ key: 'es', label: 'Español', flag: '🇪🇸' },
{ key: 'pt', label: 'Português', flag: '🇵🇹' },
{ key: 'de', label: 'Deutsch', flag: '🇩🇪' },
{ key: 'alb', label: 'Shqip', flag: '🇦🇱' },
{ key: 'zh', label: '简体中文', flag: '🇨🇳' }
{ key: Language.EN, label: 'English', flag: '🇺🇸' },
{ key: Language.ES, label: 'Español', flag: '🇪🇸' },
{ key: Language.PT, label: 'Português', flag: '🇵🇹' },
{ key: Language.DE, label: 'Deutsch', flag: '🇩🇪' },
{ key: Language.ALB, label: 'Shqip', flag: '🇦🇱' },
{ key: Language.ZH_CN, label: '简体中文', flag: '🇨🇳' }
];
const handleLanguageChange = (languageKey: string) => {
const handleLanguageChange = (languageKey: ILanguageType) => {
dispatch(setLanguage(languageKey));
i18n.changeLanguage(languageKey);
};
@@ -476,10 +477,10 @@ const AccountSetup: React.FC = () => {
<span>{lang.label}</span>
</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 (
<div