diff --git a/src/components/lang-select/index.tsx b/src/components/lang-select/index.tsx new file mode 100644 index 00000000..bd4e99a1 --- /dev/null +++ b/src/components/lang-select/index.tsx @@ -0,0 +1,35 @@ +import langConfigMap from '@/locales/lang-config-map'; +import { GlobalOutlined } from '@ant-design/icons'; +import { getAllLocales, setLocale } from '@umijs/max'; +import { Dropdown } from 'antd'; +import { get } from 'lodash'; + +const LangSelect = () => { + const allLocals = getAllLocales(); + const items = allLocals.map((key) => { + return { + key, + label: ( + + {get(langConfigMap, [key, 'label'])} + + ), + onClick: () => { + setLocale(key, false); + } + }; + }); + + return ( + + + + + + ); +}; + +export default LangSelect; diff --git a/src/pages/login/components/login-form.tsx b/src/pages/login/components/login-form.tsx index 4cdc4b36..f7bf71b7 100644 --- a/src/pages/login/components/login-form.tsx +++ b/src/pages/login/components/login-form.tsx @@ -1,13 +1,14 @@ import LogoIcon from '@/assets/images/gpustack-logo.png'; import { initialPasswordAtom, userAtom } from '@/atoms/user'; +import LangSelect from '@/components/lang-select'; import SealInput from '@/components/seal-form/seal-input'; import { getRememberMe, rememberMe, removeRememberMe } from '@/utils/localstore/index'; -import { GlobalOutlined, LockOutlined, UserOutlined } from '@ant-design/icons'; -import { SelectLang, history, useIntl, useModel } from '@umijs/max'; +import { LockOutlined, UserOutlined } from '@ant-design/icons'; +import { history, useIntl, useModel } from '@umijs/max'; import { Button, Checkbox, Form } from 'antd'; import CryptoJS from 'crypto-js'; import { useAtom } from 'jotai'; @@ -147,10 +148,10 @@ const LoginForm = () => { position: 'fixed', right: 0, top: 0, - padding: '0 20px' + padding: '20px' }} > - } reload={false} /> +