diff --git a/web/src/components/MessageComposer.tsx b/web/src/components/MessageComposer.tsx index ea78885..89ce035 100644 --- a/web/src/components/MessageComposer.tsx +++ b/web/src/components/MessageComposer.tsx @@ -37,6 +37,7 @@ export function MessageComposer() { const pointerMoveHandlerRef = useRef<((event: globalThis.PointerEvent) => void) | null>(null); const pointerUpHandlerRef = useRef<((event: globalThis.PointerEvent) => void) | null>(null); const recordingStateRef = useRef("idle"); + const lastEditingMessageIdRef = useRef(null); const [isUploading, setIsUploading] = useState(false); const [uploadProgress, setUploadProgress] = useState(0); @@ -73,20 +74,22 @@ export function MessageComposer() { if (text !== "") { setText(""); } + lastEditingMessageIdRef.current = null; return; } if (editingMessage) { - const editingText = editingMessage.text ?? ""; - if (text !== editingText) { - setText(editingText); + if (lastEditingMessageIdRef.current !== editingMessage.id) { + setText(editingMessage.text ?? ""); } + lastEditingMessageIdRef.current = editingMessage.id; return; } + lastEditingMessageIdRef.current = null; const draft = draftsByChat[activeChatId] ?? ""; if (draft !== text) { setText(draft); } - }, [activeChatId, draftsByChat, text, editingMessage]); + }, [activeChatId, draftsByChat, editingMessage, text]); useEffect(() => { return () => {