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 5c4f0e8e8e
commit db636e4b5a
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"