feat: duplicate assistant

This commit is contained in:
kangfenmao 2024-07-06 18:11:18 +08:00
parent f068109e95
commit b61a6015db

View File

@ -5,7 +5,9 @@ import { Assistant } from '@renderer/types'
import { Dropdown, MenuProps } from 'antd'
import { last } from 'lodash'
import AssistantSettingPopup from '@renderer/components/Popups/AssistantSettingPopup'
import { DeleteOutlined, EditOutlined } from '@ant-design/icons'
import { CopyOutlined, DeleteOutlined, EditOutlined } from '@ant-design/icons'
import { uuid } from '@renderer/utils'
import { getDefaultTopic } from '@renderer/services/assistant'
interface Props {
activeAssistant: Assistant
@ -14,7 +16,7 @@ interface Props {
}
const Assistants: FC<Props> = ({ activeAssistant, setActiveAssistant, onCreateAssistant }) => {
const { assistants, removeAssistant, updateAssistant } = useAssistants()
const { assistants, removeAssistant, updateAssistant, addAssistant } = useAssistants()
const targetAssistant = useRef<Assistant | null>(null)
const onDelete = (assistant: Assistant) => {
@ -37,6 +39,16 @@ const Assistants: FC<Props> = ({ activeAssistant, setActiveAssistant, onCreateAs
}
}
},
{
label: 'Duplicate',
key: 'duplicate',
icon: <CopyOutlined />,
async onClick() {
const assistant: Assistant = { ...activeAssistant, id: uuid(), topics: [getDefaultTopic()] }
addAssistant(assistant)
setActiveAssistant(assistant)
}
},
{ type: 'divider' },
{
label: 'Delete',