feat: adjusted searchpopup dimensions and added assistant generation checks

This commit is contained in:
kangfenmao 2024-11-19 15:08:04 +08:00
parent 64e70ea918
commit 771b078df9
4 changed files with 22 additions and 5 deletions

View File

@ -32,11 +32,11 @@ const PopupContainer: React.FC<Props> = ({ resolve }) => {
onCancel={onCancel}
afterClose={onClose}
title={null}
width="80vw"
width="75vw"
transitionName="ant-move-down"
styles={{
content: { padding: 0, border: '1px solid var(--color-border)' },
body: { height: '80vh' }
body: { height: '85vh' }
}}
footer={null}>
<HistoryPage />

View File

@ -5,7 +5,7 @@ import useScrollPosition from '@renderer/hooks/useScrollPosition'
import { useSettings } from '@renderer/hooks/useSettings'
import { getAssistantById } from '@renderer/services/AssistantService'
import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService'
import { locateToMessage } from '@renderer/services/MessagesService'
import { isGenerating, locateToMessage } from '@renderer/services/MessagesService'
import NavigationService from '@renderer/services/NavigationService'
import { Topic } from '@renderer/types'
import { Button, Divider, Empty } from 'antd'
@ -30,7 +30,8 @@ const TopicMessages: FC<Props> = ({ topic, ...props }) => {
return null
}
const onContinueChat = (topic: Topic) => {
const onContinueChat = async (topic: Topic) => {
await isGenerating()
SearchPopup.hide()
const assistant = getAssistantById(topic.assistantId)
navigate('/', { state: { assistant, topic } })

View File

@ -442,8 +442,10 @@ const InputContainer = styled.div`
min-height: 95px;
max-height: 95px;
position: relative;
border-top: 1px solid var(--color-border-soft);
border: 1px solid var(--color-border-soft);
transition: all 0.3s ease;
margin: 0 20px 15px 20px;
border-radius: 10px;
`
const Textarea = styled(TextArea)`

View File

@ -1,6 +1,8 @@
import SearchPopup from '@renderer/components/Popups/SearchPopup'
import { DEFAULT_CONTEXTCOUNT } from '@renderer/config/constant'
import { getTopicById } from '@renderer/hooks/useTopic'
import i18n from '@renderer/i18n'
import store from '@renderer/store'
import { Assistant, Message, Topic } from '@renderer/types'
import { uuid } from '@renderer/utils'
import { isEmpty, takeRight } from 'lodash'
@ -43,11 +45,23 @@ export function deleteMessageFiles(message: Message) {
message.files && FileManager.deleteFiles(message.files)
}
export function isGenerating() {
return new Promise((resolve, reject) => {
const generating = store.getState().runtime.generating
generating && window.message.warning({ content: i18n.t('message.switch.disabled'), key: 'switch-assistant' })
generating ? reject(false) : resolve(true)
})
}
export async function locateToMessage(navigate: NavigateFunction, message: Message) {
await isGenerating()
SearchPopup.hide()
const assistant = getAssistantById(message.assistantId)
const topic = await getTopicById(message.topicId)
navigate('/', { state: { assistant, topic } })
setTimeout(() => EventEmitter.emit(EVENT_NAMES.SHOW_TOPIC_SIDEBAR), 0)
setTimeout(() => EventEmitter.emit(EVENT_NAMES.LOCATE_MESSAGE + ':' + message.id), 300)
}