diff --git a/frontend/src/app/HeaderContent/index.jsx b/frontend/src/app/HeaderContent/index.jsx index ff0b33a9c..a29bdee72 100644 --- a/frontend/src/app/HeaderContent/index.jsx +++ b/frontend/src/app/HeaderContent/index.jsx @@ -1,15 +1,12 @@ import React from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { Link } from 'react-router-dom'; -import { Avatar, Dropdown, Select } from 'antd'; - -import { languages } from '@/utils'; +import { Avatar, Dropdown } from 'antd'; // import Notifications from '@/components/Notification'; import { AppstoreOutlined, SettingOutlined, LogoutOutlined } from '@ant-design/icons'; -import { selectLangCode } from '@/redux/translate/selectors'; import { checkImage } from '@/request'; import { selectCurrentAdmin } from '@/redux/auth/selectors'; @@ -19,12 +16,13 @@ import history from '@/utils/history'; import { BASE_URL } from '@/config/serverApiConfig'; import useLanguage from '@/lang/useLanguage'; +import ChangeLanguage from '@/components/ChangeLanguage'; export default function HeaderContent() { const currentAdmin = useSelector(selectCurrentAdmin); const dispatch = useDispatch(); - const langCode = useSelector(selectLangCode); + const translate = useLanguage(); const srcImgProfile = checkImage(BASE_URL + currentAdmin?.photo) @@ -117,35 +115,7 @@ export default function HeaderContent() { }} /> - (option?.label ?? '').includes(input)} - filterSort={(optionA, optionB) => - (optionA?.label ?? '').toLowerCase().startsWith((optionB?.label ?? '').toLowerCase()) - } - onSelect={(value) => { - dispatch(translateAction.translate(value)); - }} - > - {languages.map((language) => ( - - - - {language.icon} - - {language.label} - - - ))} - + ); } diff --git a/frontend/src/components/ChangeLanguage/index.jsx b/frontend/src/components/ChangeLanguage/index.jsx new file mode 100644 index 000000000..75284d2ea --- /dev/null +++ b/frontend/src/components/ChangeLanguage/index.jsx @@ -0,0 +1,54 @@ +import React from 'react'; +import { useDispatch, useSelector } from 'react-redux'; + +import { languages } from '@/utils'; +import { selectLangCode } from '@/redux/translate/selectors'; + +// import Notifications from '@/components/Notification'; + +import { translateAction } from '@/redux/translate/actions'; + +import useLanguage from '@/lang/useLanguage'; + +import { Select } from 'antd'; + +const ChangeLanguage = () => { + const translate = useLanguage(); + const dispatch = useDispatch(); + + const langCode = useSelector(selectLangCode); + + return ( + (option?.label ?? '').includes(input)} + filterSort={(optionA, optionB) => + (optionA?.label ?? '').toLowerCase().startsWith((optionB?.label ?? '').toLowerCase()) + } + onSelect={(value) => { + dispatch(translateAction.translate(value)); + }} + > + {languages.map((language) => ( + + + + {language.icon} + + {language.label} + + + ))} + + ); +}; + +export default ChangeLanguage; diff --git a/frontend/src/pages/Login.jsx b/frontend/src/pages/Login.jsx index 82675b609..9ee4551a5 100644 --- a/frontend/src/pages/Login.jsx +++ b/frontend/src/pages/Login.jsx @@ -1,6 +1,10 @@ import React from 'react'; import { useDispatch, useSelector } from 'react-redux'; +// import Notifications from '@/components/Notification'; + +import useLanguage from '@/lang/useLanguage'; + import { Form, Button, Layout, Col, Divider, Typography } from 'antd'; import { login } from '@/redux/auth/actions'; @@ -8,8 +12,7 @@ import { selectAuth } from '@/redux/auth/selectors'; import LoginForm from '@/forms/LoginForm'; import AuthLayout from '@/layout/AuthLayout'; import SideContent from '@/components/SideContent'; - -import useLanguage from '@/lang/useLanguage'; +import ChangeLanguage from '@/components/ChangeLanguage'; import logo from '@/style/images/logo.png'; @@ -29,7 +32,14 @@ const LoginPage = () => { }> + + +