feat: 首页增加多语言切换

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

@ -1,11 +1,14 @@
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(
(props) => {
const { language, setLanguage } = useLanguage(); const { language, setLanguage } = useLanguage();
const handleChangeLanguage = useCallback( const handleChangeLanguage = useCallback(
@ -20,6 +23,7 @@ export const LanguageSelect: React.FC = React.memo(() => {
<Select <Select
style={{ width: 280 }} style={{ width: 280 }}
size="large" size="large"
{...props}
value={language} value={language}
onChange={handleChangeLanguage} onChange={handleChangeLanguage}
> >
@ -27,5 +31,6 @@ export const LanguageSelect: React.FC = React.memo(() => {
<Select.Option value="en-US">English</Select.Option> <Select.Option value="en-US">English</Select.Option>
</Select> </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