diff --git a/src/renderer/src/pages/settings/NotesSettings.tsx b/src/renderer/src/pages/settings/NotesSettings.tsx
index 1ccac26415..01b375f5da 100644
--- a/src/renderer/src/pages/settings/NotesSettings.tsx
+++ b/src/renderer/src/pages/settings/NotesSettings.tsx
@@ -1,10 +1,11 @@
+import { Switch } from '@cherrystudio/ui'
import { loggerService } from '@logger'
import Selector from '@renderer/components/Selector'
import { useTheme } from '@renderer/context/ThemeProvider'
import { useNotesSettings } from '@renderer/hooks/useNotesSettings'
import { initWorkSpace } from '@renderer/services/NotesService'
import type { EditorView } from '@renderer/types'
-import { Button, Input, message, Slider, Switch } from 'antd'
+import { Button, Input, message, Slider } from 'antd'
import { FolderOpen } from 'lucide-react'
import type { FC } from 'react'
import { useEffect, useState } from 'react'
@@ -168,7 +169,10 @@ const NotesSettings: FC = () => {
{t('notes.settings.display.compress_content')}
- updateSettings({ isFullWidth: !checked })} />
+ updateSettings({ isFullWidth: !checked })}
+ />
{t('notes.settings.display.compress_content_description')}
@@ -190,8 +194,8 @@ const NotesSettings: FC = () => {
{t('notes.settings.display.show_table_of_contents')}
updateSettings({ showTableOfContents: checked })}
+ isSelected={settings.showTableOfContents}
+ onValueChange={(checked) => updateSettings({ showTableOfContents: checked })}
/>
{t('notes.settings.display.show_table_of_contents_description')}
diff --git a/src/renderer/src/pages/settings/ProviderSettings/ApiOptionsSettings/ApiOptionsSettings.tsx b/src/renderer/src/pages/settings/ProviderSettings/ApiOptionsSettings/ApiOptionsSettings.tsx
index 8ddc5fb960..8dd3d87d3b 100644
--- a/src/renderer/src/pages/settings/ProviderSettings/ApiOptionsSettings/ApiOptionsSettings.tsx
+++ b/src/renderer/src/pages/settings/ProviderSettings/ApiOptionsSettings/ApiOptionsSettings.tsx
@@ -1,8 +1,8 @@
import { ColFlex, RowFlex } from '@cherrystudio/ui'
+import { Switch } from '@cherrystudio/ui'
import { InfoTooltip } from '@renderer/components/TooltipIcons'
import { useProvider } from '@renderer/hooks/useProvider'
import type { Provider } from '@renderer/types'
-import { Switch } from 'antd'
import { startTransition, useCallback, useMemo } from 'react'
import { useTranslation } from 'react-i18next'
@@ -113,7 +113,7 @@ const ApiOptionsSettings = ({ providerId }: Props) => {
-
+
))}
diff --git a/src/renderer/src/pages/settings/ProviderSettings/EditModelPopup/ModelEditContent.tsx b/src/renderer/src/pages/settings/ProviderSettings/EditModelPopup/ModelEditContent.tsx
index 6c2ffe9067..0c40aa3e18 100644
--- a/src/renderer/src/pages/settings/ProviderSettings/EditModelPopup/ModelEditContent.tsx
+++ b/src/renderer/src/pages/settings/ProviderSettings/EditModelPopup/ModelEditContent.tsx
@@ -1,4 +1,5 @@
import { Flex } from '@cherrystudio/ui'
+import { Switch } from '@cherrystudio/ui'
import CopyIcon from '@renderer/components/Icons/CopyIcon'
import {
EmbeddingTag,
@@ -22,7 +23,7 @@ import { useDynamicLabelWidth } from '@renderer/hooks/useDynamicLabelWidth'
import type { Model, ModelCapability, ModelType, Provider } from '@renderer/types'
import { getDefaultGroupName, getDifference, getUnion, uniqueObjectArray } from '@renderer/utils'
import type { ModalProps } from 'antd'
-import { Button, Divider, Form, Input, InputNumber, message, Modal, Select, Switch, Tooltip } from 'antd'
+import { Button, Divider, Form, Input, InputNumber, message, Modal, Select, Tooltip } from 'antd'
import { cloneDeep } from 'lodash'
import { ChevronDown, ChevronUp, RotateCcw, SaveIcon } from 'lucide-react'
import type { FC } from 'react'
@@ -342,10 +343,10 @@ const ModelEditContent: FC
= ({ provider, mo
label={t('settings.models.add.supported_text_delta.label')}
tooltip={t('settings.models.add.supported_text_delta.tooltip')}>
{
+ isSelected={supportedTextDelta}
+ className="ml-auto"
+ size="sm"
+ onValueChange={(checked) => {
setSupportedTextDelta(checked)
// 直接传递新值给autoSave
autoSave({ supported_text_delta: checked })
diff --git a/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx b/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx
index 4135fb029e..6e8536e590 100644
--- a/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx
+++ b/src/renderer/src/pages/settings/ProviderSettings/ProviderSetting.tsx
@@ -1,5 +1,6 @@
import { RowFlex } from '@cherrystudio/ui'
import { Flex } from '@cherrystudio/ui'
+import { Switch } from '@cherrystudio/ui'
import OpenAIAlert from '@renderer/components/Alert/OpenAIAlert'
import { LoadingIcon } from '@renderer/components/Icons'
import { ApiKeyListPopup } from '@renderer/components/Popups/ApiKeyListPopup'
@@ -26,7 +27,7 @@ import {
isOpenAIProvider
} from '@renderer/utils'
import { formatErrorMessage } from '@renderer/utils/error'
-import { Button, Divider, Input, Select, Space, Switch, Tooltip } from 'antd'
+import { Button, Divider, Input, Select, Space, Tooltip } from 'antd'
import Link from 'antd/es/typography/Link'
import { debounce, isEmpty } from 'lodash'
import { Bolt, Check, Settings2, SquareArrowOutUpRight, TriangleAlert } from 'lucide-react'
@@ -272,9 +273,9 @@ const ProviderSetting: FC = ({ providerId }) => {
)}
{
+ onValueChange={(enabled) => {
updateProvider({ apiHost, enabled })
if (enabled) {
moveProviderToTop(provider.id)
diff --git a/src/renderer/src/pages/settings/QuickAssistantSettings.tsx b/src/renderer/src/pages/settings/QuickAssistantSettings.tsx
index 32da91d9e1..820bdc03f9 100644
--- a/src/renderer/src/pages/settings/QuickAssistantSettings.tsx
+++ b/src/renderer/src/pages/settings/QuickAssistantSettings.tsx
@@ -1,5 +1,6 @@
import { InfoCircleOutlined } from '@ant-design/icons'
import { RowFlex } from '@cherrystudio/ui'
+import { Switch } from '@cherrystudio/ui'
import { usePreference } from '@data/hooks/usePreference'
import ModelAvatar from '@renderer/components/Avatar/ModelAvatar'
import { useTheme } from '@renderer/context/ThemeProvider'
@@ -7,7 +8,7 @@ import { useAssistants, useDefaultAssistant, useDefaultModel } from '@renderer/h
import { useAppDispatch, useAppSelector } from '@renderer/store'
import { setQuickAssistantId } from '@renderer/store/llm'
import HomeWindow from '@renderer/windows/mini/home/HomeWindow'
-import { Button, Select, Switch, Tooltip } from 'antd'
+import { Button, Select, Tooltip } from 'antd'
import type { FC } from 'react'
import { useTranslation } from 'react-i18next'
import styled from 'styled-components'
@@ -72,14 +73,14 @@ const QuickAssistantSettings: FC = () => {
-
+
{enableQuickAssistant && (
<>
{t('settings.quickAssistant.click_tray_to_show')}
-
+
>
)}
@@ -88,7 +89,7 @@ const QuickAssistantSettings: FC = () => {
{t('settings.quickAssistant.read_clipboard_at_startup')}
-
+
>
)}
diff --git a/src/renderer/src/pages/settings/SelectionAssistantSettings/SelectionAssistantSettings.tsx b/src/renderer/src/pages/settings/SelectionAssistantSettings/SelectionAssistantSettings.tsx
index ce6ce7b9bc..1a998bf33e 100644
--- a/src/renderer/src/pages/settings/SelectionAssistantSettings/SelectionAssistantSettings.tsx
+++ b/src/renderer/src/pages/settings/SelectionAssistantSettings/SelectionAssistantSettings.tsx
@@ -1,10 +1,11 @@
+import { Switch } from '@cherrystudio/ui'
import { usePreference } from '@data/hooks/usePreference'
import { isMac, isWin } from '@renderer/config/constant'
import { useTheme } from '@renderer/context/ThemeProvider'
import { getSelectionDescriptionLabel } from '@renderer/i18n/label'
import SelectionToolbar from '@renderer/windows/selection/toolbar/SelectionToolbar'
import type { SelectionFilterMode, SelectionTriggerMode } from '@shared/data/preference/preferenceTypes'
-import { Button, Radio, Row, Slider, Switch, Tooltip } from 'antd'
+import { Button, Radio, Row, Slider, Tooltip } from 'antd'
import { CircleHelp, Edit2 } from 'lucide-react'
import type { FC } from 'react'
import { useEffect, useState } from 'react'
@@ -99,9 +100,9 @@ const SelectionAssistantSettings: FC = () => {
{!isSupportedOS && {t('selection.settings.enable.description')}}
handleEnableCheckboxChange(checked)}
- disabled={!isSupportedOS}
+ isSelected={isSupportedOS && selectionEnabled}
+ onValueChange={handleEnableCheckboxChange}
+ isDisabled={!isSupportedOS}
/>
@@ -160,7 +161,7 @@ const SelectionAssistantSettings: FC = () => {
{t('selection.settings.toolbar.compact_mode.title')}
{t('selection.settings.toolbar.compact_mode.description')}
- setIsCompact(checked)} />
+
@@ -172,7 +173,7 @@ const SelectionAssistantSettings: FC = () => {
{t('selection.settings.window.follow_toolbar.title')}
{t('selection.settings.window.follow_toolbar.description')}
- setIsFollowToolbar(checked)} />
+
@@ -180,7 +181,7 @@ const SelectionAssistantSettings: FC = () => {
{t('selection.settings.window.remember_size.title')}
{t('selection.settings.window.remember_size.description')}
- setIsRemeberWinSize(checked)} />
+
@@ -188,7 +189,7 @@ const SelectionAssistantSettings: FC = () => {
{t('selection.settings.window.auto_close.title')}
{t('selection.settings.window.auto_close.description')}
- setIsAutoClose(checked)} />
+
@@ -196,7 +197,7 @@ const SelectionAssistantSettings: FC = () => {
{t('selection.settings.window.auto_pin.title')}
{t('selection.settings.window.auto_pin.description')}
- setIsAutoPin(checked)} />
+
diff --git a/src/renderer/src/pages/settings/ShortcutSettings.tsx b/src/renderer/src/pages/settings/ShortcutSettings.tsx
index c4c08cad53..20b95aa957 100644
--- a/src/renderer/src/pages/settings/ShortcutSettings.tsx
+++ b/src/renderer/src/pages/settings/ShortcutSettings.tsx
@@ -1,5 +1,6 @@
import { ClearOutlined, UndoOutlined } from '@ant-design/icons'
import { RowFlex } from '@cherrystudio/ui'
+import { Switch } from '@cherrystudio/ui'
import { isMac, isWin } from '@renderer/config/constant'
import { useTheme } from '@renderer/context/ThemeProvider'
import { useShortcuts } from '@renderer/hooks/useShortcuts'
@@ -9,7 +10,7 @@ import { useAppDispatch } from '@renderer/store'
import { initialState, resetShortcuts, toggleShortcut, updateShortcut } from '@renderer/store/shortcuts'
import type { Shortcut } from '@renderer/types'
import type { InputRef } from 'antd'
-import { Button, Input, Switch, Table as AntTable, Tooltip } from 'antd'
+import { Button, Input, Table as AntTable, Tooltip } from 'antd'
import type { ColumnsType } from 'antd/es/table'
import type { FC } from 'react'
import React, { useRef, useState } from 'react'
@@ -397,7 +398,7 @@ const ShortcutSettings: FC = () => {
align: 'right',
width: '50px',
render: (record: Shortcut) => (
- dispatch(toggleShortcut(record.key))} />
+ dispatch(toggleShortcut(record.key))} />
)
}
]
diff --git a/src/renderer/src/pages/settings/WebSearchSettings/BasicSettings.tsx b/src/renderer/src/pages/settings/WebSearchSettings/BasicSettings.tsx
index 95c0749126..804ee2b630 100644
--- a/src/renderer/src/pages/settings/WebSearchSettings/BasicSettings.tsx
+++ b/src/renderer/src/pages/settings/WebSearchSettings/BasicSettings.tsx
@@ -1,8 +1,9 @@
+import { Switch } from '@cherrystudio/ui'
import { useTheme } from '@renderer/context/ThemeProvider'
import { useWebSearchSettings } from '@renderer/hooks/useWebSearchProviders'
import { useAppDispatch } from '@renderer/store'
import { setMaxResult, setSearchWithTime } from '@renderer/store/websearch'
-import { Slider, Switch, Tooltip } from 'antd'
+import { Slider, Tooltip } from 'antd'
import { t } from 'i18next'
import { Info } from 'lucide-react'
import type { FC } from 'react'
@@ -22,7 +23,7 @@ const BasicSettings: FC = () => {
{t('settings.tool.websearch.search_with_time')}
- dispatch(setSearchWithTime(checked))} />
+ dispatch(setSearchWithTime(checked))} />
diff --git a/src/renderer/src/pages/settings/index.tsx b/src/renderer/src/pages/settings/index.tsx
index 31dbb74947..e5c88f83e1 100644
--- a/src/renderer/src/pages/settings/index.tsx
+++ b/src/renderer/src/pages/settings/index.tsx
@@ -1,4 +1,4 @@
-import { cn } from '@heroui/react'
+import { cn } from '@cherrystudio/ui'
import type { ThemeMode } from '@shared/data/preference/preferenceTypes'
import { Divider } from 'antd'
import Link from 'antd/es/typography/Link'
diff --git a/src/renderer/src/pages/translate/TranslateSettings.tsx b/src/renderer/src/pages/translate/TranslateSettings.tsx
index b85179f165..176c2edab0 100644
--- a/src/renderer/src/pages/translate/TranslateSettings.tsx
+++ b/src/renderer/src/pages/translate/TranslateSettings.tsx
@@ -1,6 +1,5 @@
-import { ColFlex, RowFlex } from '@cherrystudio/ui'
+import { ColFlex, RowFlex, Switch } from '@cherrystudio/ui'
import { Flex } from '@cherrystudio/ui'
-import { Switch } from '@heroui/react'
import LanguageSelect from '@renderer/components/LanguageSelect'
import db from '@renderer/databases'
import useTranslate from '@renderer/hooks/useTranslate'
diff --git a/src/renderer/src/windows/dataRefactorTest/components/PreferenceBasicTests.tsx b/src/renderer/src/windows/dataRefactorTest/components/PreferenceBasicTests.tsx
index 4981aa6d1b..9744d3c8de 100644
--- a/src/renderer/src/windows/dataRefactorTest/components/PreferenceBasicTests.tsx
+++ b/src/renderer/src/windows/dataRefactorTest/components/PreferenceBasicTests.tsx
@@ -1,6 +1,7 @@
+import { Switch } from '@cherrystudio/ui'
import { usePreference } from '@renderer/data/hooks/usePreference'
import { type PreferenceKeyType, ThemeMode } from '@shared/data/preference/preferenceTypes'
-import { Button, Input, message, Select, Slider, Space, Switch, Typography } from 'antd'
+import { Button, Input, message, Select, Slider, Space, Typography } from 'antd'
import React, { useState } from 'react'
import styled from 'styled-components'
@@ -144,12 +145,7 @@ const PreferenceBasicTests: React.FC = () => {
{/* Boolean Toggle */}
{selectedKey === 'app.spell_check.enabled' && (
- setValue(checked)}
- checkedChildren="启用"
- unCheckedChildren="禁用"
- />
+ setValue(checked)} />
)}
{/* Language Switch */}