fix: Improve topic context in history search and messages

Update SearchMessage and TopicMessages components to pass topic context to MessageItem, ensuring proper rendering of messages with their associated topics
This commit is contained in:
kangfenmao
2025-03-09 22:04:30 +08:00
parent 9d98bcccd6
commit 2d7b5d9cf5
3 changed files with 22 additions and 6 deletions
+2 -2
View File
@@ -69,7 +69,7 @@ class FileStorage {
origin_name: file,
name: file + ext,
path: storedFilePath,
created_at: storedStats.birthtime,
created_at: storedStats.birthtime.toISOString(),
size: storedStats.size,
ext,
type: getFileType(ext),
@@ -108,7 +108,7 @@ class FileStorage {
origin_name: path.basename(filePath),
name: path.basename(filePath),
path: filePath,
created_at: stats.birthtime,
created_at: stats.birthtime.toISOString(),
size: stats.size,
ext: ext,
type: fileType,
@@ -1,12 +1,14 @@
import { ArrowRightOutlined } from '@ant-design/icons'
import { HStack } from '@renderer/components/Layout'
import { useSettings } from '@renderer/hooks/useSettings'
import { getTopicById } from '@renderer/hooks/useTopic'
import { default as MessageItem } from '@renderer/pages/home/Messages/Message'
import { locateToMessage } from '@renderer/services/MessagesService'
import NavigationService from '@renderer/services/NavigationService'
import { Message } from '@renderer/types'
import { Message, Topic } from '@renderer/types'
import { runAsyncFunction } from '@renderer/utils'
import { Button } from 'antd'
import { FC } from 'react'
import { FC, useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
import styled from 'styled-components'
@@ -18,15 +20,29 @@ const SearchMessage: FC<Props> = ({ message, ...props }) => {
const navigate = NavigationService.navigate!
const { messageStyle } = useSettings()
const { t } = useTranslation()
const [topic, setTopic] = useState<Topic | null>(null)
useEffect(() => {
runAsyncFunction(async () => {
if (message?.topicId) {
const topic = await getTopicById(message.topicId)
setTopic(topic)
}
})
}, [message])
if (!message) {
return null
}
if (!topic) {
return null
}
return (
<MessagesContainer {...props} className={messageStyle}>
<ContainerWrapper style={{ paddingTop: 20, paddingBottom: 20, position: 'relative' }}>
<MessageItem message={message} />
<MessageItem message={message} topic={topic} />
<Button
type="text"
size="middle"
@@ -43,7 +43,7 @@ const TopicMessages: FC<Props> = ({ topic, ...props }) => {
<ContainerWrapper style={{ paddingTop: 30, paddingBottom: 30 }}>
{topic?.messages.map((message) => (
<div key={message.id} style={{ position: 'relative' }}>
<MessageItem message={message} />
<MessageItem message={message} topic={topic} />
<Button
type="text"
size="middle"