feat: Add direct topic deletion shortcut

This commit is contained in:
ousugo 2025-02-20 10:36:14 +08:00 committed by 亢奋猫
parent 3a936e0f26
commit 0d236a94ab
6 changed files with 38 additions and 12 deletions

View File

@ -140,6 +140,7 @@
"topics.title": "Topics", "topics.title": "Topics",
"topics.unpinned": "Unpinned Topics", "topics.unpinned": "Unpinned Topics",
"topics.delete.title": "Are you sure you want to delete this topic? This action cannot be undone", "topics.delete.title": "Are you sure you want to delete this topic? This action cannot be undone",
"topics.delete.shortcut": "Hold {{key}} to delete directly",
"translate": "Translate", "translate": "Translate",
"topics.prompt": "Topic Prompts", "topics.prompt": "Topic Prompts",
"topics.prompt.tips": "Topic Prompts: Additional supplementary prompts provided for the current topic", "topics.prompt.tips": "Topic Prompts: Additional supplementary prompts provided for the current topic",

View File

@ -140,6 +140,7 @@
"topics.title": "トピック", "topics.title": "トピック",
"topics.unpinned": "固定解除", "topics.unpinned": "固定解除",
"topics.delete.title": "このトピックを削除してもよろしいですか?この操作は元に戻せません", "topics.delete.title": "このトピックを削除してもよろしいですか?この操作は元に戻せません",
"topics.delete.shortcut": "{{key}}キーを押しながらで直接削除",
"translate": "翻訳", "translate": "翻訳",
"topics.prompt": "トピック提示語", "topics.prompt": "トピック提示語",
"topics.prompt.tips": "トピック提示語:現在のトピックに対して追加の補足提示語を提供", "topics.prompt.tips": "トピック提示語:現在のトピックに対して追加の補足提示語を提供",

View File

@ -140,6 +140,7 @@
"topics.title": "Топики", "topics.title": "Топики",
"topics.unpinned": "Открепленные темы", "topics.unpinned": "Открепленные темы",
"topics.delete.title": "Вы уверены, что хотите удалить этот топик? Это действие нельзя отменить", "topics.delete.title": "Вы уверены, что хотите удалить этот топик? Это действие нельзя отменить",
"topics.delete.shortcut": "Удерживайте {{key}} для мгновенного удаления",
"translate": "Перевести", "translate": "Перевести",
"topics.prompt": "Тематические подсказки", "topics.prompt": "Тематические подсказки",
"topics.prompt.tips": "Тематические подсказки: Дополнительные подсказки, предоставленные для текущей темы", "topics.prompt.tips": "Тематические подсказки: Дополнительные подсказки, предоставленные для текущей темы",

View File

@ -142,10 +142,10 @@
"topics.title": "话题", "topics.title": "话题",
"topics.unpinned": "取消固定", "topics.unpinned": "取消固定",
"topics.delete.title": "确定要删除此话题吗?此操作无法撤销", "topics.delete.title": "确定要删除此话题吗?此操作无法撤销",
"topics.delete.shortcut": "按住 {{key}} 可直接删除",
"translate": "翻译", "translate": "翻译",
"topics.prompt": "话题提示词", "topics.prompt": "话题提示词",
"topics.prompt.tips": "话题提示词: 针对当前话题提供额外的补充提示词", "topics.prompt.tips": "话题提示词: 针对当前话题提供额外的补充提示词"
"topics.prompt.edit.title": "编辑话题提示词"
}, },
"common": { "common": {
"add": "添加", "add": "添加",

View File

@ -140,6 +140,7 @@
"topics.title": "話題", "topics.title": "話題",
"topics.unpinned": "取消固定", "topics.unpinned": "取消固定",
"topics.delete.title": "確定要刪除此話題嗎?此操作無法撤銷", "topics.delete.title": "確定要刪除此話題嗎?此操作無法撤銷",
"topics.delete.shortcut": "按住 {{key}} 可直接刪除",
"translate": "翻譯", "translate": "翻譯",
"topics.prompt": "話題提示詞", "topics.prompt": "話題提示詞",
"topics.prompt.tips": "話題提示詞:針對目前話題提供額外的補充提示詞", "topics.prompt.tips": "話題提示詞:針對目前話題提供額外的補充提示詞",

View File

@ -11,6 +11,7 @@ import {
import DragableList from '@renderer/components/DragableList' import DragableList from '@renderer/components/DragableList'
import PromptPopup from '@renderer/components/Popups/PromptPopup' import PromptPopup from '@renderer/components/Popups/PromptPopup'
import Scrollbar from '@renderer/components/Scrollbar' import Scrollbar from '@renderer/components/Scrollbar'
import { isMac } from '@renderer/config/constant'
import { useAssistant, useAssistants } from '@renderer/hooks/useAssistant' import { useAssistant, useAssistants } from '@renderer/hooks/useAssistant'
import { modelGenerating } from '@renderer/hooks/useRuntime' import { modelGenerating } from '@renderer/hooks/useRuntime'
import { useSettings } from '@renderer/hooks/useSettings' import { useSettings } from '@renderer/hooks/useSettings'
@ -260,16 +261,37 @@ const Topics: FC<Props> = ({ assistant: _assistant, activeTopic, setActiveTopic
removeTopic(topic) removeTopic(topic)
}} }}
onCancel={(e) => e?.stopPropagation()}> onCancel={(e) => e?.stopPropagation()}>
<MenuButton <Tooltip
className="menu" placement="bottom"
onClick={(e) => { mouseEnterDelay={0.7}
e.stopPropagation() title={
if (assistant.topics.length === 1) { <div>
return onClearMessages() <div style={{ fontSize: '12px', opacity: 0.8, fontStyle: 'italic' }}>
} {t('chat.topics.delete.shortcut', {
}}> key: isMac ? '⌘' : 'Ctrl'
<CloseOutlined /> })}
</MenuButton> </div>
</div>
}>
<MenuButton
className="menu"
onClick={async (e) => {
e.stopPropagation()
if (assistant.topics.length === 1) {
return onClearMessages()
}
if (e.ctrlKey || e.metaKey) {
await modelGenerating()
const index = findIndex(assistant.topics, (t) => t.id === topic.id)
setActiveTopic(
assistant.topics[index + 1 === assistant.topics.length ? index - 1 : index + 1]
)
removeTopic(topic)
}
}}>
<CloseOutlined />
</MenuButton>
</Tooltip>
</Popconfirm> </Popconfirm>
)} )}
</TopicListItem> </TopicListItem>