From 0ede6e1dca695a11bc8504078ccc750cea2200c9 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Wed, 21 May 2025 22:22:01 +0800 Subject: [PATCH] refactor: enhance multi-selection handling in Inputbar and MessageEditor - Integrated `useAppSelector` in Inputbar to manage multi-selection state. - Updated Inputbar to conditionally render based on multi-selection mode. - Modified MessageEditor to display the resend button only for assistant messages, improving UI clarity. --- .../src/components/Popups/MultiSelectionPopup.tsx | 4 ---- src/renderer/src/pages/home/Inputbar/Inputbar.tsx | 7 ++++++- .../src/pages/home/Messages/MessageEditor.tsx | 12 +++++++----- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/renderer/src/components/Popups/MultiSelectionPopup.tsx b/src/renderer/src/components/Popups/MultiSelectionPopup.tsx index d0c4c68509..f021b631f9 100644 --- a/src/renderer/src/components/Popups/MultiSelectionPopup.tsx +++ b/src/renderer/src/components/Popups/MultiSelectionPopup.tsx @@ -53,14 +53,10 @@ const MultiSelectActionPopup: FC = ({ topic }) => { } const Container = styled.div` - position: absolute; - bottom: 0; - left: 0; width: 100%; padding: 36px 20px; background-color: var(--color-background); border-top: 1px solid var(--color-border); - z-index: 10; ` const ActionBar = styled.div` diff --git a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx index 9ca2f0b191..5c3288d025 100644 --- a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx +++ b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx @@ -27,7 +27,7 @@ import PasteService from '@renderer/services/PasteService' import { estimateTextTokens as estimateTxtTokens, estimateUserPromptUsage } from '@renderer/services/TokenService' import { translateText } from '@renderer/services/TranslateService' import WebSearchService from '@renderer/services/WebSearchService' -import { useAppDispatch } from '@renderer/store' +import { useAppDispatch, useAppSelector } from '@renderer/store' import { setSearching } from '@renderer/store/runtime' import { sendMessage as _sendMessage } from '@renderer/store/thunk/messageThunk' import { Assistant, FileType, KnowledgeBase, KnowledgeItem, Model, Topic } from '@renderer/types' @@ -127,6 +127,7 @@ const Inputbar: FC = ({ assistant: _assistant, setActiveTopic, topic }) = const supportExts = useMemo(() => [...textExts, ...documentExts, ...(isVision ? imageExts : [])], [isVision]) const { activedMcpServers } = useMCPServers() const { bases: knowledgeBases } = useKnowledgeBases() + const isMultiSelectMode = useAppSelector((state) => state.runtime.chat.isMultiSelectMode) const quickPanel = useQuickPanel() @@ -869,6 +870,10 @@ const Inputbar: FC = ({ assistant: _assistant, setActiveTopic, topic }) = const isExpended = expended || !!textareaHeight const showThinkingButton = isSupportedThinkingTokenModel(model) || isSupportedReasoningEffortModel(model) + if (isMultiSelectMode) { + return null + } + return ( = ({ message, onSave, onResend, onCancel }) - - handleClick(true)}> - - - + {message.role === 'assistant' && ( + + handleClick(true)}> + + + + )}