diff --git a/src/renderer/src/components/Popups/MessageSettingsPopup.tsx b/src/renderer/src/components/Popups/MessageSettingsPopup.tsx index 93a1de4364..bedad8eccd 100644 --- a/src/renderer/src/components/Popups/MessageSettingsPopup.tsx +++ b/src/renderer/src/components/Popups/MessageSettingsPopup.tsx @@ -20,12 +20,13 @@ import { setThoughtAutoCollapse } from '@renderer/store/settings' import { CodeStyleVarious, MathEngine, ThemeMode } from '@renderer/types' -import { Col, InputNumber, Modal, Row, Select, Slider, Switch, Tooltip } from 'antd' +import { Col, InputNumber, Modal, Row, Slider, Switch, Tooltip } from 'antd' import { CircleHelp } from 'lucide-react' import { useCallback, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import styled from 'styled-components' +import Selector from '../Selector' import { TopView } from '../TopView' interface ShowParams { @@ -150,56 +151,56 @@ const PopupContainer: React.FC = ({ title, resolve }) => { {t('message.message.style')} - dispatch(setMessageStyle(value as 'plain' | 'bubble'))} - style={{ width: 135 }} - size="small"> - {t('message.message.style.plain')} - {t('message.message.style.bubble')} - + options={[ + { label: t('message.message.style.plain'), value: 'plain' }, + { label: t('message.message.style.bubble'), value: 'bubble' } + ]} + /> {t('message.message.multi_model_style')} - dispatch(setMultiModelMessageStyle(value as 'fold' | 'vertical' | 'horizontal' | 'grid')) } - style={{ width: 135 }}> - {t('message.message.multi_model_style.fold')} - {t('message.message.multi_model_style.vertical')} - {t('message.message.multi_model_style.horizontal')} - {t('message.message.multi_model_style.grid')} - + options={[ + { label: t('message.message.multi_model_style.fold'), value: 'fold' }, + { label: t('message.message.multi_model_style.vertical'), value: 'vertical' }, + { label: t('message.message.multi_model_style.horizontal'), value: 'horizontal' }, + { label: t('message.message.multi_model_style.grid'), value: 'grid' } + ]} + /> {t('settings.messages.navigation')} - dispatch(setMessageNavigation(value as 'none' | 'buttons' | 'anchor'))} - style={{ width: 135 }}> - {t('settings.messages.navigation.none')} - {t('settings.messages.navigation.buttons')} - {t('settings.messages.navigation.anchor')} - + options={[ + { label: t('settings.messages.navigation.none'), value: 'none' }, + { label: t('settings.messages.navigation.buttons'), value: 'buttons' }, + { label: t('settings.messages.navigation.anchor'), value: 'anchor' } + ]} + /> {t('settings.messages.math_engine')} - dispatch(setMathEngine(value as MathEngine))} - style={{ width: 135 }} - size="small"> - KaTeX - MathJax - {t('settings.messages.math_engine.none')} - + options={[ + { label: 'KaTeX', value: 'KaTeX' }, + { label: 'MathJax', value: 'MathJax' }, + { label: t('settings.messages.math_engine.none'), value: 'none' } + ]} + /> @@ -226,17 +227,11 @@ const PopupContainer: React.FC = ({ title, resolve }) => { {t('message.message.code_style')} - onCodeStyleChange(value as CodeStyleVarious)} - style={{ width: 135 }} - size="small"> - {themeNames.map((theme) => ( - - {theme} - - ))} - + options={themeNames.map((theme) => ({ label: theme, value: theme }))} + /> @@ -364,14 +359,6 @@ const SettingGroup = styled.div<{ theme?: ThemeMode }>` margin-top: 10px; ` -const StyledSelect = styled(Select)` - .ant-select-selector { - border-radius: 15px !important; - padding: 4px 10px !important; - height: 26px !important; - } -` - const TopViewKey = 'MessageSettingsPopup' export default class MessageSettingsPopup { diff --git a/src/renderer/src/components/Selector.tsx b/src/renderer/src/components/Selector.tsx index c48d600dc5..1889b01d28 100644 --- a/src/renderer/src/components/Selector.tsx +++ b/src/renderer/src/components/Selector.tsx @@ -1,7 +1,7 @@ import { ConfigProvider, Dropdown } from 'antd' import { Check, ChevronsUpDown } from 'lucide-react' import { ReactNode, useMemo, useState } from 'react' -import styled, { css } from 'styled-components' +import styled, { createGlobalStyle, css } from 'styled-components' interface SelectorProps { options: { label: string | ReactNode; value: V }[] @@ -51,7 +51,14 @@ const Selector = ({ } } }}> - + +