ComposeForm: get text from the editorRef instead of component state

Fixes https://gitlab.com/soapbox-pub/soapbox/-/issues/1563
environments/review-main-yi2y9f/deployments/4263^2
Alex Gleason 10 months ago
parent 96dc2b0a3e
commit c7f9a9eb56
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7

@ -1,5 +1,5 @@
import clsx from 'clsx'; import clsx from 'clsx';
import { CLEAR_EDITOR_COMMAND, TextNode, type LexicalEditor } from 'lexical'; import { CLEAR_EDITOR_COMMAND, TextNode, type LexicalEditor, $getRoot } from 'lexical';
import React, { Suspense, useCallback, useEffect, useRef, useState } from 'react'; import React, { Suspense, useCallback, useEffect, useRef, useState } from 'react';
import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
import { Link, useHistory } from 'react-router-dom'; import { Link, useHistory } from 'react-router-dom';
@ -96,13 +96,13 @@ const ComposeForm = <ID extends string>({ id, shouldCondense, autoFocus, clickab
const anyMedia = compose.media_attachments.size > 0; const anyMedia = compose.media_attachments.size > 0;
const [composeFocused, setComposeFocused] = useState(false); const [composeFocused, setComposeFocused] = useState(false);
const [text, setText] = useState(compose.text);
const firstRender = useRef(true); const firstRender = useRef(true);
const formRef = useRef<HTMLDivElement>(null); const formRef = useRef<HTMLDivElement>(null);
const spoilerTextRef = useRef<AutosuggestInput>(null); const spoilerTextRef = useRef<AutosuggestInput>(null);
const editorRef = useRef<LexicalEditor>(null); const editorRef = useRef<LexicalEditor>(null);
const text = editorRef.current?.getEditorState().read(() => $getRoot().getTextContent()) ?? '';
const { isDraggedOver } = useDraggedFiles(formRef); const { isDraggedOver } = useDraggedFiles(formRef);
const getClickableArea = () => { const getClickableArea = () => {
@ -297,7 +297,6 @@ const ComposeForm = <ID extends string>({ id, shouldCondense, autoFocus, clickab
autoFocus={shouldAutoFocus} autoFocus={shouldAutoFocus}
hasPoll={hasPoll} hasPoll={hasPoll}
handleSubmit={handleSubmit} handleSubmit={handleSubmit}
onChange={setText}
onFocus={handleComposeFocus} onFocus={handleComposeFocus}
onPaste={onPaste} onPaste={onPaste}
/> />

Loading…
Cancel
Save