From a430284aa21e3ae1f0d5654e55b2ad2852519cc2 Mon Sep 17 00:00:00 2001
From: wwf <yearningwang@iqtogether.com>
Date: 星期三, 04 六月 2025 15:17:49 +0800
Subject: [PATCH] 初始化

---
 app/components/base/chat/chat/chat-input-area/index.tsx |   37 +++++++++----------------------------
 1 files changed, 9 insertions(+), 28 deletions(-)

diff --git a/app/components/base/chat/chat/chat-input-area/index.tsx b/app/components/base/chat/chat/chat-input-area/index.tsx
index 14d8185..0d341d1 100644
--- a/app/components/base/chat/chat/chat-input-area/index.tsx
+++ b/app/components/base/chat/chat/chat-input-area/index.tsx
@@ -3,7 +3,7 @@
   useRef,
   useState,
 } from 'react'
-import Textarea from 'react-textarea-autosize'
+import Textarea from 'rc-textarea'
 import { useTranslation } from 'react-i18next'
 import Recorder from 'js-audio-recorder'
 import type {
@@ -40,7 +40,6 @@
   inputsForm?: InputForm[]
   theme?: Theme | null
   isResponding?: boolean
-  disabled?: boolean
 }
 const ChatInputArea = ({
   showFeatureBar,
@@ -54,7 +53,6 @@
   inputsForm = [],
   theme,
   isResponding,
-  disabled,
 }: ChatInputAreaProps) => {
   const { t } = useTranslation()
   const { notify } = useToastContext()
@@ -80,7 +78,6 @@
   const { checkInputsForm } = useCheckInputsForms()
   const historyRef = useRef([''])
   const [currentIndex, setCurrentIndex] = useState(-1)
-  const isComposingRef = useRef(false)
   const handleSend = () => {
     if (isResponding) {
       notify({ type: 'info', message: t('appDebug.errorMessage.waitForResponse') })
@@ -104,21 +101,8 @@
       }
     }
   }
-  const handleCompositionStart = () => {
-    // e: React.CompositionEvent<HTMLTextAreaElement>
-    isComposingRef.current = true
-  }
-  const handleCompositionEnd = () => {
-    // safari or some browsers will trigger compositionend before keydown.
-    // delay 50ms for safari.
-    setTimeout(() => {
-      isComposingRef.current = false
-    }, 50)
-  }
   const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
     if (e.key === 'Enter' && !e.shiftKey && !e.nativeEvent.isComposing) {
-      // if isComposing, exit
-      if (isComposingRef.current) return
       e.preventDefault()
       setQuery(query.replace(/\n$/, ''))
       historyRef.current.push(query)
@@ -169,41 +153,38 @@
     <>
       <div
         className={cn(
-          'relative z-10 rounded-xl border border-components-chat-input-border bg-components-panel-bg-blur pb-[9px] shadow-md',
+          'relative pb-[9px] bg-components-panel-bg-blur border border-components-chat-input-border rounded-xl shadow-md z-10',
           isDragActive && 'border border-dashed border-components-option-card-option-selected-border',
-          disabled && 'pointer-events-none border-components-panel-border opacity-50 shadow-none',
         )}
       >
-        <div className='relative max-h-[158px] overflow-y-auto overflow-x-hidden px-[9px] pt-[9px]'>
+        <div className='relative px-[9px] pt-[9px] max-h-[158px] overflow-x-hidden overflow-y-auto'>
           <FileListInChatInput fileConfig={visionConfig!} />
           <div
             ref={wrapperRef}
             className='flex items-center justify-between'
           >
-            <div className='relative flex w-full grow items-center'>
+            <div className='flex items-center relative grow w-full'>
               <div
                 ref={textValueRef}
-                className='body-lg-regular pointer-events-none invisible absolute h-auto w-auto whitespace-pre p-1 leading-6'
+                className='absolute w-auto h-auto p-1 leading-6 body-lg-regular pointer-events-none whitespace-pre invisible'
               >
                 {query}
               </div>
               <Textarea
-                ref={ref => textareaRef.current = ref as any}
+                ref={textareaRef}
                 className={cn(
-                  'body-lg-regular w-full resize-none bg-transparent p-1 leading-6 text-text-tertiary outline-none',
+                  'p-1 w-full leading-6 body-lg-regular text-text-tertiary outline-none',
                 )}
                 placeholder={t('common.chat.inputPlaceholder') || ''}
                 autoFocus
-                minRows={1}
+                autoSize={{ minRows: 1 }}
                 onResize={handleTextareaResize}
                 value={query}
                 onChange={(e) => {
                   setQuery(e.target.value)
-                  setTimeout(handleTextareaResize, 0)
+                  handleTextareaResize()
                 }}
                 onKeyDown={handleKeyDown}
-                onCompositionStart={handleCompositionStart}
-                onCompositionEnd={handleCompositionEnd}
                 onPaste={handleClipboardPasteFile}
                 onDragEnter={handleDragFileEnter}
                 onDragLeave={handleDragFileLeave}

--
Gitblit v1.8.0