feat: auto switch to topics

This commit is contained in:
kangfenmao 2024-11-18 17:51:17 +08:00
parent 5bffb86d4f
commit c8c58ddcfb
7 changed files with 12 additions and 12 deletions

View File

@ -288,7 +288,7 @@
"data.webdav.backup.button": "Backup to WebDAV", "data.webdav.backup.button": "Backup to WebDAV",
"data.webdav.restore.button": "Restore from WebDAV", "data.webdav.restore.button": "Restore from WebDAV",
"advanced.title": "Advanced Settings", "advanced.title": "Advanced Settings",
"advanced.click_assistant_switch_to_topics": "Auto switch to topic", "advanced.auto_switch_to_topics": "Auto switch to topic",
"provider.api_key": "API Key", "provider.api_key": "API Key",
"provider.api_key.tip": "Multiple keys separated by commas", "provider.api_key.tip": "Multiple keys separated by commas",
"provider.check": "Check", "provider.check": "Check",

View File

@ -288,7 +288,7 @@
"data.webdav.backup.button": "Резервное копирование на WebDAV", "data.webdav.backup.button": "Резервное копирование на WebDAV",
"data.webdav.restore.button": "Восстановление с WebDAV", "data.webdav.restore.button": "Восстановление с WebDAV",
"advanced.title": "Расширенные настройки", "advanced.title": "Расширенные настройки",
"advanced.click_assistant_switch_to_topics": "Автоматически переключаться на топик", "advanced.auto_switch_to_topics": "Автоматически переключаться на топик",
"provider.api_key": "Ключ API", "provider.api_key": "Ключ API",
"provider.api_key.tip": "Несколько ключей, разделенных запятыми", "provider.api_key.tip": "Несколько ключей, разделенных запятыми",
"provider.check": "Проверить", "provider.check": "Проверить",

View File

@ -288,7 +288,7 @@
"data.webdav.backup.button": "备份到 WebDAV", "data.webdav.backup.button": "备份到 WebDAV",
"data.webdav.restore.button": "从 WebDAV 恢复", "data.webdav.restore.button": "从 WebDAV 恢复",
"advanced.title": "高级设置", "advanced.title": "高级设置",
"advanced.click_assistant_switch_to_topics": "点击助手切换到话题", "advanced.auto_switch_to_topics": "自动切换到话题",
"models.default_assistant_model": "默认助手模型", "models.default_assistant_model": "默认助手模型",
"models.topic_naming_model": "话题命名模型", "models.topic_naming_model": "话题命名模型",
"models.translate_model": "翻译模型", "models.translate_model": "翻译模型",

View File

@ -288,7 +288,7 @@
"data.webdav.backup.button": "從 WebDAV 備份", "data.webdav.backup.button": "從 WebDAV 備份",
"data.webdav.restore.button": "從 WebDAV 恢復", "data.webdav.restore.button": "從 WebDAV 恢復",
"advanced.title": "進階設定", "advanced.title": "進階設定",
"advanced.click_assistant_switch_to_topics": "點擊助手切換到話題", "advanced.auto_switch_to_topics": "自動切換到話題",
"models.default_assistant_model": "預設助手模型", "models.default_assistant_model": "預設助手模型",
"models.topic_naming_model": "話題命名模型", "models.topic_naming_model": "話題命名模型",
"models.translate_model": "翻譯模型", "models.translate_model": "翻譯模型",

View File

@ -48,7 +48,8 @@ const Inputbar: FC<Props> = ({ assistant, setActiveTopic }) => {
const [text, setText] = useState(_text) const [text, setText] = useState(_text)
const [inputFocus, setInputFocus] = useState(false) const [inputFocus, setInputFocus] = useState(false)
const { addTopic, model, setModel } = useAssistant(assistant.id) const { addTopic, model, setModel } = useAssistant(assistant.id)
const { sendMessageShortcut, fontSize, pasteLongTextAsFile, showInputEstimatedTokens } = useSettings() const { sendMessageShortcut, fontSize, pasteLongTextAsFile, showInputEstimatedTokens, clickAssistantToShowTopic } =
useSettings()
const [expended, setExpend] = useState(false) const [expended, setExpend] = useState(false)
const [estimateTokenCount, setEstimateTokenCount] = useState(0) const [estimateTokenCount, setEstimateTokenCount] = useState(0)
const [contextCount, setContextCount] = useState(0) const [contextCount, setContextCount] = useState(0)
@ -144,7 +145,9 @@ const Inputbar: FC<Props> = ({ assistant, setActiveTopic }) => {
addTopic(topic) addTopic(topic)
setActiveTopic(topic) setActiveTopic(topic)
}, [addTopic, assistant, setActiveTopic, setModel])
clickAssistantToShowTopic && setTimeout(() => EventEmitter.emit(EVENT_NAMES.SHOW_TOPIC_SIDEBAR), 0)
}, [addTopic, assistant, clickAssistantToShowTopic, setActiveTopic, setModel])
const clearTopic = async () => { const clearTopic = async () => {
if (generating) { if (generating) {

View File

@ -8,7 +8,7 @@ import { useSettings } from '@renderer/hooks/useSettings'
import { useShowAssistants, useShowTopics } from '@renderer/hooks/useStore' import { useShowAssistants, useShowTopics } from '@renderer/hooks/useStore'
import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService' import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService'
import { Assistant, Topic } from '@renderer/types' import { Assistant, Topic } from '@renderer/types'
import { FC, useCallback } from 'react' import { FC } from 'react'
import styled from 'styled-components' import styled from 'styled-components'
import SelectModelButton from './components/SelectModelButton' import SelectModelButton from './components/SelectModelButton'
@ -25,10 +25,7 @@ const HeaderNavbar: FC<Props> = ({ activeAssistant }) => {
const { topicPosition } = useSettings() const { topicPosition } = useSettings()
const { showTopics, toggleShowTopics } = useShowTopics() const { showTopics, toggleShowTopics } = useShowTopics()
const addNewTopic = useCallback(() => { const addNewTopic = () => EventEmitter.emit(EVENT_NAMES.ADD_NEW_TOPIC)
EventEmitter.emit(EVENT_NAMES.ADD_NEW_TOPIC)
setTimeout(() => EventEmitter.emit(EVENT_NAMES.SHOW_TOPIC_SIDEBAR), 0)
}, [])
return ( return (
<Navbar> <Navbar>

View File

@ -210,7 +210,7 @@ const SettingsTab: FC = () => {
{topicPosition === 'left' && ( {topicPosition === 'left' && (
<> <>
<SettingRow> <SettingRow>
<SettingRowTitle>{t('settings.advanced.click_assistant_switch_to_topics')}</SettingRowTitle> <SettingRowTitle>{t('settings.advanced.auto_switch_to_topics')}</SettingRowTitle>
<Switch <Switch
size="small" size="small"
checked={clickAssistantToShowTopic} checked={clickAssistantToShowTopic}