From db636e4b5a861dc157ce9f905b7d80f0bbadbc88 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Sun, 9 Mar 2025 22:04:30 +0800 Subject: [PATCH] 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 --- src/main/services/FileStorage.ts | 4 ++-- .../history/components/SearchMessage.tsx | 22 ++++++++++++++++--- .../history/components/TopicMessages.tsx | 2 +- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main/services/FileStorage.ts b/src/main/services/FileStorage.ts index b24e930a..38ad6576 100644 --- a/src/main/services/FileStorage.ts +++ b/src/main/services/FileStorage.ts @@ -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, diff --git a/src/renderer/src/pages/history/components/SearchMessage.tsx b/src/renderer/src/pages/history/components/SearchMessage.tsx index 41cc99ed..cc0c3663 100644 --- a/src/renderer/src/pages/history/components/SearchMessage.tsx +++ b/src/renderer/src/pages/history/components/SearchMessage.tsx @@ -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 = ({ message, ...props }) => { const navigate = NavigationService.navigate! const { messageStyle } = useSettings() const { t } = useTranslation() + const [topic, setTopic] = useState(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 ( - +