Fix RTE focus behaviour in threads

pull/28217/head
Florian Duros 2023-01-23 15:36:40 +01:00
parent a0a419a3b8
commit 1da78fa6bc
No known key found for this signature in database
GPG Key ID: 9700AA5870258A0B
3 changed files with 8 additions and 2 deletions

View File

@ -336,7 +336,10 @@ export class MessageComposer extends React.Component<IProps, IState> {
const { permalinkCreator, relation, replyToEvent } = this.props;
const composerContent = this.state.composerContent;
this.setState({ composerContent: "", initialComposerContent: "" });
dis.dispatch({ action: Action.ClearAndFocusSendMessageComposer });
dis.dispatch({
action: Action.ClearAndFocusSendMessageComposer,
timelineRenderingType: this.context.timelineRenderingType,
});
await sendMessage(composerContent, this.state.isRichTextEnabled, {
mxClient: this.props.mxClient,
roomContext: this.context,

View File

@ -50,6 +50,9 @@ export function useWysiwygSendActionHandler(
focusComposer(composerElement, context, roomContext, timeoutId);
break;
case Action.ClearAndFocusSendMessageComposer:
// When a thread is opened, prevent the main composer to steal the thread composer focus
if (payload.timelineRenderingType !== roomContext.timelineRenderingType) break;
composerFunctions.clear();
focusComposer(composerElement, context, roomContext, timeoutId);
break;

View File

@ -153,7 +153,7 @@ describe("SendWysiwygComposer", () => {
// When we send the right action
defaultDispatcher.dispatch({
action: Action.ClearAndFocusSendMessageComposer,
context: null,
timelineRenderingType: defaultRoomContext.timelineRenderingType,
});
// Then the component gets the focus