diff --git a/src/renderer/src/components/CustomSelect.tsx b/src/renderer/src/components/CustomSelect.tsx new file mode 100644 index 0000000000..7b42a7bd59 --- /dev/null +++ b/src/renderer/src/components/CustomSelect.tsx @@ -0,0 +1,17 @@ +import { includeKeywords } from '@renderer/utils/search' +import { Select, SelectProps } from 'antd' + +/** + * 自定义 Select,使用增强的搜索 filter + */ +const CustomSelect = ({ ref, ...props }: SelectProps & { ref?: React.RefObject }) => { + return { -
{t('translate.settings.model')}
- setLocalPair([value, localPair[1]])} - options={translateLanguageOptions().map((lang) => ({ - value: lang.value, - label: ( - - - {lang.emoji} - - {lang.label} - - ) - }))} + options={TranslateLanguageOptions} + optionRender={(option) => ( + + + {(option.data as any).emoji} + + {option.label} + + )} suffixIcon={} /> { setTargetLanguage(value) db.settings.put({ id: 'translate:target:language', value }) }} - options={translateLanguageOptions().map((lang) => ({ - value: lang.value, - label: ( - - - {lang.emoji} - - {lang.label} - - ) - }))} + options={TranslateLanguageOptions} + optionRender={(option) => ( + + + {(option.data as any).emoji} + + {option.label} + + )} suffixIcon={} /> ) @@ -538,18 +539,25 @@ const TranslatePage: FC = () => { ? `${t('translate.detected.language')}(${t(`languages.${detectedLanguage.toLowerCase()}`)})` : t('translate.detected.language') }, - ...translateLanguageOptions().map((lang) => ({ + ...TranslateLanguageOptions.map((lang) => ({ value: lang.value, - label: ( - - - {lang.emoji} - - {lang.label} - - ) + label: lang.label, + emoji: lang.emoji })) ]} + optionRender={(option) => { + if (option.value === 'auto') { + return option.label + } + return ( + + + {(option.data as any).emoji} + + {option.label} + + ) + }} suffixIcon={} />