diff --git a/src/renderer/src/pages/home/Messages/Message.tsx b/src/renderer/src/pages/home/Messages/Message.tsx index 9421bce445..0e86e9b232 100644 --- a/src/renderer/src/pages/home/Messages/Message.tsx +++ b/src/renderer/src/pages/home/Messages/Message.tsx @@ -14,6 +14,7 @@ import { estimateMessageUsage } from '@renderer/services/TokenService' import { Assistant, Topic } from '@renderer/types' import type { Message, MessageBlock } from '@renderer/types/newMessage' import { classNames } from '@renderer/utils' +import { isMessageProcessing } from '@renderer/utils/messageUtils/is' import { Divider } from 'antd' import React, { Dispatch, FC, memo, SetStateAction, useCallback, useEffect, useRef } from 'react' import { useTranslation } from 'react-i18next' @@ -115,7 +116,8 @@ const MessageItem: FC = ({ const isLastMessage = index === 0 || !!isGrouped const isAssistantMessage = message.role === 'assistant' - const showMenubar = !hideMenuBar && !isEditing + const isProcessing = isMessageProcessing(message) + const showMenubar = !hideMenuBar && !isEditing && !isProcessing const messageHighlightHandler = useCallback( (highlight: boolean = true) => { diff --git a/src/renderer/src/utils/messageUtils/is.ts b/src/renderer/src/utils/messageUtils/is.ts index 7b2535e518..b874f08ae2 100644 --- a/src/renderer/src/utils/messageUtils/is.ts +++ b/src/renderer/src/utils/messageUtils/is.ts @@ -1,10 +1,12 @@ import { + AssistantMessageStatus, type CitationMessageBlock, type CodeMessageBlock, type ErrorMessageBlock, type FileMessageBlock, type ImageMessageBlock, type MainTextMessageBlock, + Message, type MessageBlock, MessageBlockType, type PlaceholderMessageBlock, @@ -147,3 +149,11 @@ export function isCitationBlock(block: MessageBlock): block is CitationMessageBl export function isPlaceholderBlock(block: MessageBlock): block is PlaceholderMessageBlock { return block.type === MessageBlockType.UNKNOWN } + +export function isMessageProcessing(message: Message): boolean { + return ( + message.status === AssistantMessageStatus.PROCESSING || + message.status === AssistantMessageStatus.PENDING || + message.status === AssistantMessageStatus.SEARCHING + ) +}