feat: 首页增加多语言切换

pull/49/head
moonrailgun 3 years ago
parent 7e992ccccb
commit 5996a7024a

@ -1,31 +1,36 @@
import { Select } from 'antd'; import { Select, SelectProps } from 'antd';
import React, { useCallback } from 'react'; import React, { useCallback } from 'react';
import { showToasts, t, useLanguage } from 'tailchat-shared'; import { showToasts, t, useLanguage } from 'tailchat-shared';
type LanguageSelectProps = Omit<SelectProps, 'value' | 'onChange'>;
/** /**
* *
*/ */
export const LanguageSelect: React.FC = React.memo(() => { export const LanguageSelect: React.FC<LanguageSelectProps> = React.memo(
const { language, setLanguage } = useLanguage(); (props) => {
const { language, setLanguage } = useLanguage();
const handleChangeLanguage = useCallback( const handleChangeLanguage = useCallback(
(newLang: string) => { (newLang: string) => {
showToasts(t('刷新页面后生效'), 'info'); showToasts(t('刷新页面后生效'), 'info');
setLanguage(newLang); setLanguage(newLang);
}, },
[setLanguage] [setLanguage]
); );
return ( return (
<Select <Select
style={{ width: 280 }} style={{ width: 280 }}
size="large" size="large"
value={language} {...props}
onChange={handleChangeLanguage} value={language}
> onChange={handleChangeLanguage}
<Select.Option value="zh-CN"></Select.Option> >
<Select.Option value="en-US">English</Select.Option> <Select.Option value="zh-CN"></Select.Option>
</Select> <Select.Option value="en-US">English</Select.Option>
); </Select>
}); );
}
);
LanguageSelect.displayName = 'LanguageSelect'; LanguageSelect.displayName = 'LanguageSelect';

@ -12,6 +12,7 @@ import { useNavToView } from './utils';
import { IconBtn } from '@/components/IconBtn'; import { IconBtn } from '@/components/IconBtn';
import { openModal } from '@/components/Modal'; import { openModal } from '@/components/Modal';
import { ServiceUrlSettings } from '@/components/modals/ServiceUrlSettings'; import { ServiceUrlSettings } from '@/components/modals/ServiceUrlSettings';
import { LanguageSelect } from '@/components/LanguageSelect';
/** /**
* TODO: * TODO:
@ -140,12 +141,14 @@ export const LoginView: React.FC = React.memo(() => {
</button> </button>
</div> </div>
<div className="absolute bottom-4 left-0"> <div className="absolute bottom-4 left-0 space-x-2">
<IconBtn <IconBtn
icon="mdi:cog" icon="mdi:cog"
shape="square" shape="square"
onClick={() => openModal(<ServiceUrlSettings />)} onClick={() => openModal(<ServiceUrlSettings />)}
/> />
<LanguageSelect size="middle" />
</div> </div>
</div> </div>
); );

Loading…
Cancel
Save