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

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,

View File

@ -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"

View File

@ -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"