mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-10 23:59:45 +08:00
refactor: topic component code
This commit is contained in:
parent
ea654fc455
commit
e2052956e2
@ -1,31 +1,31 @@
|
|||||||
import { EVENT_NAMES, EventEmitter } from '@renderer/services/event'
|
|
||||||
import { Assistant, Message, Topic } from '@renderer/types'
|
|
||||||
import { estimateInputTokenCount, uuid } from '@renderer/utils'
|
|
||||||
import { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
|
||||||
import styled from 'styled-components'
|
|
||||||
import { MoreOutlined } from '@ant-design/icons'
|
|
||||||
import { Button, Popconfirm, Tooltip } from 'antd'
|
|
||||||
import { useShowRightSidebar } from '@renderer/hooks/useStore'
|
|
||||||
import { useAssistant } from '@renderer/hooks/useAssistant'
|
|
||||||
import {
|
import {
|
||||||
ClearOutlined,
|
ClearOutlined,
|
||||||
ControlOutlined,
|
ControlOutlined,
|
||||||
FullscreenExitOutlined,
|
FullscreenExitOutlined,
|
||||||
FullscreenOutlined,
|
FullscreenOutlined,
|
||||||
HistoryOutlined,
|
HistoryOutlined,
|
||||||
|
MoreOutlined,
|
||||||
PauseCircleOutlined,
|
PauseCircleOutlined,
|
||||||
PlusCircleOutlined
|
PlusCircleOutlined
|
||||||
} from '@ant-design/icons'
|
} from '@ant-design/icons'
|
||||||
import TextArea, { TextAreaRef } from 'antd/es/input/TextArea'
|
import { useAssistant } from '@renderer/hooks/useAssistant'
|
||||||
import { debounce, isEmpty } from 'lodash'
|
|
||||||
import SendMessageSetting from './SendMessageSetting'
|
|
||||||
import { useSettings } from '@renderer/hooks/useSettings'
|
import { useSettings } from '@renderer/hooks/useSettings'
|
||||||
import dayjs from 'dayjs'
|
import { useShowRightSidebar } from '@renderer/hooks/useStore'
|
||||||
import store, { useAppSelector } from '@renderer/store'
|
|
||||||
import { getDefaultTopic } from '@renderer/services/assistant'
|
import { getDefaultTopic } from '@renderer/services/assistant'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { EVENT_NAMES, EventEmitter } from '@renderer/services/event'
|
||||||
|
import store, { useAppSelector } from '@renderer/store'
|
||||||
import { setGenerating } from '@renderer/store/runtime'
|
import { setGenerating } from '@renderer/store/runtime'
|
||||||
|
import { Assistant, Message, Topic } from '@renderer/types'
|
||||||
|
import { estimateInputTokenCount, uuid } from '@renderer/utils'
|
||||||
|
import { Button, Popconfirm, Tooltip } from 'antd'
|
||||||
|
import TextArea, { TextAreaRef } from 'antd/es/input/TextArea'
|
||||||
|
import dayjs from 'dayjs'
|
||||||
|
import { debounce, isEmpty } from 'lodash'
|
||||||
|
import { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||||
|
import { useTranslation } from 'react-i18next'
|
||||||
|
import styled from 'styled-components'
|
||||||
import AssistantSettings from './AssistantSettings'
|
import AssistantSettings from './AssistantSettings'
|
||||||
|
import SendMessageSetting from './SendMessageSetting'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
assistant: Assistant
|
assistant: Assistant
|
||||||
@ -41,7 +41,6 @@ const Inputbar: FC<Props> = ({ assistant, setActiveTopic }) => {
|
|||||||
const [estimateTokenCount, setEstimateTokenCount] = useState(0)
|
const [estimateTokenCount, setEstimateTokenCount] = useState(0)
|
||||||
const generating = useAppSelector((state) => state.runtime.generating)
|
const generating = useAppSelector((state) => state.runtime.generating)
|
||||||
const inputRef = useRef<TextAreaRef>(null)
|
const inputRef = useRef<TextAreaRef>(null)
|
||||||
|
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
|
|
||||||
const sendMessage = () => {
|
const sendMessage = () => {
|
||||||
@ -86,7 +85,7 @@ const Inputbar: FC<Props> = ({ assistant, setActiveTopic }) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const addNewTopic = useCallback(() => {
|
const addNewTopic = useCallback(() => {
|
||||||
const topic: Topic = getDefaultTopic()
|
const topic = getDefaultTopic()
|
||||||
addTopic(topic)
|
addTopic(topic)
|
||||||
setActiveTopic(topic)
|
setActiveTopic(topic)
|
||||||
}, [addTopic, setActiveTopic])
|
}, [addTopic, setActiveTopic])
|
||||||
|
|||||||
@ -19,9 +19,9 @@ interface Props {
|
|||||||
setActiveTopic: (topic: Topic) => void
|
setActiveTopic: (topic: Topic) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
const Topics: FC<Props> = ({ assistant, activeTopic, setActiveTopic }) => {
|
const Topics: FC<Props> = ({ assistant: _assistant, activeTopic, setActiveTopic }) => {
|
||||||
const { showRightSidebar } = useShowRightSidebar()
|
const { showRightSidebar } = useShowRightSidebar()
|
||||||
const { removeTopic, updateTopic, removeAllTopics, updateTopics } = useAssistant(assistant.id)
|
const { assistant, removeTopic, updateTopic, removeAllTopics, updateTopics } = useAssistant(_assistant.id)
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const generating = useAppSelector((state) => state.runtime.generating)
|
const generating = useAppSelector((state) => state.runtime.generating)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user