This commit is contained in:
chamikaJ
2025-04-17 18:28:54 +05:30
parent f583291d8a
commit 8825b0410a
2837 changed files with 241385 additions and 127578 deletions

View File

@@ -0,0 +1,56 @@
import { Button, Dropdown } from 'antd';
import { useAppSelector } from '@/hooks/useAppSelector';
import { useAppDispatch } from '@/hooks/useAppDispatch';
import { ILanguageType, setLanguage } from './localesSlice';
const LanguageSelector = () => {
const language = useAppSelector(state => state.localesReducer.lng);
const dispatch = useAppDispatch();
const handleLanguageChange = (lang: ILanguageType) => {
dispatch(setLanguage(lang));
};
const items = [
{ key: 'en', label: 'English' },
{ key: 'es', label: 'Español' },
{ key: 'pt', label: 'Português' },
];
const languageLabels = {
en: 'En',
es: 'Es',
pt: 'Pt',
};
return (
<Dropdown
menu={{
items: items.map(item => ({
...item,
onClick: () => handleLanguageChange(item.key as ILanguageType),
})),
}}
placement="bottom"
trigger={['click']}
>
<Button
shape="circle"
style={{
textTransform: 'capitalize',
fontWeight: 500,
minWidth: '40px',
height: '40px',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
}}
aria-label="Change language"
>
{languageLabels[language]}
</Button>
</Dropdown>
);
};
export default LanguageSelector;