diff --git a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx index 17739c171c..ec67d2cd3e 100644 --- a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx +++ b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx @@ -37,7 +37,12 @@ import { Assistant, FileType, FileTypes, KnowledgeBase, KnowledgeItem, Model, To import type { MessageInputBaseParams } from '@renderer/types/newMessage' import { classNames, delay, formatFileSize, getFileExtension } from '@renderer/utils' import { formatQuotedText } from '@renderer/utils/formats' -import { getFilesFromDropEvent, getSendMessageShortcutLabel, isSendMessageKeyPressed } from '@renderer/utils/input' +import { + getFilesFromDropEvent, + getSendMessageShortcutLabel, + getTextFromDropEvent, + isSendMessageKeyPressed +} from '@renderer/utils/input' import { getLanguageByLangcode } from '@renderer/utils/translate' import { documentExts, imageExts, textExts } from '@shared/config/constant' import { IpcChannel } from '@shared/IpcChannel' @@ -567,6 +572,10 @@ const Inputbar: FC = ({ assistant: _assistant, setActiveTopic, topic }) = e.stopPropagation() setIsFileDragging(false) + const data = await getTextFromDropEvent(e) + + setText(text + data) + const files = await getFilesFromDropEvent(e).catch((err) => { logger.error('handleDrop:', err) return null @@ -591,7 +600,7 @@ const Inputbar: FC = ({ assistant: _assistant, setActiveTopic, topic }) = } } }, - [supportedExts, t] + [supportedExts, t, text] ) const onTranslated = (translatedText: string) => { diff --git a/src/renderer/src/utils/input.ts b/src/renderer/src/utils/input.ts index 53af52252a..85eb804255 100644 --- a/src/renderer/src/utils/input.ts +++ b/src/renderer/src/utils/input.ts @@ -5,6 +5,10 @@ import { FileMetadata } from '@renderer/types' const logger = loggerService.withContext('Utils:Input') +export const getTextFromDropEvent = async (e: React.DragEvent): Promise => { + return e.dataTransfer.getData('text') +} + export const getFilesFromDropEvent = async (e: React.DragEvent): Promise => { if (e.dataTransfer.files.length > 0) { // 使用新的API获取文件路径