From f033a73187bd014f65e8d4f0a74f8a3426e5ec88 Mon Sep 17 00:00:00 2001 From: Wang Jiyuan <59059173+EurFelux@users.noreply.github.com> Date: Fri, 6 Jun 2025 22:02:48 +0800 Subject: [PATCH] fix: message editor doesn't resize (#6924) * fix: message editor doesn't resize * fix: remove console log * fix: optimize useEffect dependencies and improve textarea resizing logic --------- Co-authored-by: Pleasurecruise <3196812536@qq.com> --- .../src/pages/home/Messages/MessageEditor.tsx | 31 ++++++------------- .../src/pages/settings/AboutSettings.tsx | 4 +-- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/src/renderer/src/pages/home/Messages/MessageEditor.tsx b/src/renderer/src/pages/home/Messages/MessageEditor.tsx index 73a021e22c..698991e92f 100644 --- a/src/renderer/src/pages/home/Messages/MessageEditor.tsx +++ b/src/renderer/src/pages/home/Messages/MessageEditor.tsx @@ -45,16 +45,6 @@ const MessageBlockEditor: FC = ({ message, onSave, onResend, onCancel }) const textareaRef = useRef(null) const attachmentButtonRef = useRef(null) - useEffect(() => { - setTimeout(() => { - resizeTextArea() - if (textareaRef.current) { - textareaRef.current.focus({ cursor: 'end' }) - } - }, 0) - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - const resizeTextArea = useCallback(() => { const textArea = textareaRef.current?.resizableTextArea?.textArea if (textArea) { @@ -63,6 +53,15 @@ const MessageBlockEditor: FC = ({ message, onSave, onResend, onCancel }) } }, []) + useEffect(() => { + setTimeout(() => { + resizeTextArea() + if (textareaRef.current) { + textareaRef.current.focus({ cursor: 'end' }) + } + }, 0) + }, [resizeTextArea]) + const onPaste = useCallback( async (event: ClipboardEvent) => { return await PasteService.handlePaste( @@ -84,13 +83,9 @@ const MessageBlockEditor: FC = ({ message, onSave, onResend, onCancel }) // 添加全局粘贴事件处理 useEffect(() => { - // 注册当前组件的粘贴处理函数 PasteService.registerHandler('messageEditor', onPaste) - - // 在组件加载时将焦点设置为当前组件 PasteService.setLastFocusedComponent('messageEditor') - // 卸载时取消注册 return () => { PasteService.unregisterHandler('messageEditor') } @@ -165,12 +160,6 @@ const MessageBlockEditor: FC = ({ message, onSave, onResend, onCancel }) } } - const autoResizeTextArea = (e: React.ChangeEvent) => { - const textarea = e.target - textarea.style.height = 'auto' - textarea.style.height = `${textarea.scrollHeight}px` - } - return ( e.preventDefault()} onDrop={handleDrop}> {editedBlocks @@ -184,7 +173,7 @@ const MessageBlockEditor: FC = ({ message, onSave, onResend, onCancel }) value={block.content} onChange={(e) => { handleTextChange(block.id, e.target.value) - autoResizeTextArea(e) + resizeTextArea() }} autoFocus contextMenu="true" diff --git a/src/renderer/src/pages/settings/AboutSettings.tsx b/src/renderer/src/pages/settings/AboutSettings.tsx index 0c292497c4..82f11ec7d4 100644 --- a/src/renderer/src/pages/settings/AboutSettings.tsx +++ b/src/renderer/src/pages/settings/AboutSettings.tsx @@ -101,11 +101,9 @@ const AboutSettings: FC = () => { setVersion(appInfo.version) setIsPortable(appInfo.isPortable) }) - - // 初始化设置 setEarlyAccess(earlyAccess) setAutoCheckUpdate(autoCheckUpdate) - }, []) + }, [autoCheckUpdate, earlyAccess, setAutoCheckUpdate, setEarlyAccess]) return (