fix: default assistant topic id

This commit is contained in:
kangfenmao 2024-07-05 13:51:36 +08:00
parent 1d67845c69
commit 4060010bc3
4 changed files with 17 additions and 8 deletions

View File

@ -1,3 +1,4 @@
import { getDefaultTopic } from '@renderer/services/assistant'
import { useAppDispatch, useAppSelector } from '@renderer/store' import { useAppDispatch, useAppSelector } from '@renderer/store'
import { import {
addTopic as _addTopic, addTopic as _addTopic,
@ -53,7 +54,10 @@ export function useDefaultAssistant() {
const dispatch = useAppDispatch() const dispatch = useAppDispatch()
return { return {
defaultAssistant, defaultAssistant: {
...defaultAssistant,
topics: [getDefaultTopic()]
},
updateDefaultAssistant: (assistant: Assistant) => dispatch(_updateDefaultAssistant({ assistant })) updateDefaultAssistant: (assistant: Assistant) => dispatch(_updateDefaultAssistant({ assistant }))
} }
} }

View File

@ -39,7 +39,11 @@ const HomePage: FC = () => {
</NavbarRight> </NavbarRight>
</Navbar> </Navbar>
<ContentContainer> <ContentContainer>
<Assistants activeAssistant={activeAssistant} onActive={setActiveAssistant} /> <Assistants
activeAssistant={activeAssistant}
setActiveAssistant={setActiveAssistant}
onCreateAssistant={onCreateAssistant}
/>
<Chat assistant={activeAssistant} /> <Chat assistant={activeAssistant} />
</ContentContainer> </ContentContainer>
</Container> </Container>

View File

@ -9,10 +9,11 @@ import { DeleteOutlined, EditOutlined } from '@ant-design/icons'
interface Props { interface Props {
activeAssistant: Assistant activeAssistant: Assistant
onActive: (assistant: Assistant) => void setActiveAssistant: (assistant: Assistant) => void
onCreateAssistant: () => void
} }
const Assistants: FC<Props> = ({ activeAssistant, onActive }) => { const Assistants: FC<Props> = ({ activeAssistant, setActiveAssistant, onCreateAssistant }) => {
const { assistants, removeAssistant, updateAssistant } = useAssistants() const { assistants, removeAssistant, updateAssistant } = useAssistants()
const targetAssistant = useRef<Assistant | null>(null) const targetAssistant = useRef<Assistant | null>(null)
@ -20,7 +21,7 @@ const Assistants: FC<Props> = ({ activeAssistant, onActive }) => {
removeAssistant(assistant.id) removeAssistant(assistant.id)
setTimeout(() => { setTimeout(() => {
const _assistant = last(assistants.filter((a) => a.id !== assistant.id)) const _assistant = last(assistants.filter((a) => a.id !== assistant.id))
_assistant && onActive(_assistant) _assistant ? setActiveAssistant(_assistant) : onCreateAssistant()
}, 0) }, 0)
} }
@ -57,7 +58,7 @@ const Assistants: FC<Props> = ({ activeAssistant, onActive }) => {
trigger={['contextMenu']} trigger={['contextMenu']}
onOpenChange={() => (targetAssistant.current = assistant)}> onOpenChange={() => (targetAssistant.current = assistant)}>
<AssistantItem <AssistantItem
onClick={() => onActive(assistant)} onClick={() => setActiveAssistant(assistant)}
className={assistant.id === activeAssistant?.id ? 'active' : ''}> className={assistant.id === activeAssistant?.id ? 'active' : ''}>
<AssistantName>{assistant.name}</AssistantName> <AssistantName>{assistant.name}</AssistantName>
<AssistantLastMessage>{assistant.description}</AssistantLastMessage> <AssistantLastMessage>{assistant.description}</AssistantLastMessage>

View File

@ -10,7 +10,7 @@ interface Props {
activeAssistant: Assistant activeAssistant: Assistant
} }
const NavigationCenter: FC<Props> = ({ activeAssistant }) => { const Navigation: FC<Props> = ({ activeAssistant }) => {
const providers = useProviders() const providers = useProviders()
const { model, setModel } = useAssistant(activeAssistant.id) const { model, setModel } = useAssistant(activeAssistant.id)
@ -42,4 +42,4 @@ const DropdownMenu = styled(Dropdown)`
margin-left: 10px; margin-left: 10px;
` `
export default NavigationCenter export default Navigation