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 { permalinkCreator, relation, replyToEvent } = this.props;
const composerContent = this.state.composerContent; const composerContent = this.state.composerContent;
this.setState({ composerContent: "", initialComposerContent: "" }); this.setState({ composerContent: "", initialComposerContent: "" });
dis.dispatch({ action: Action.ClearAndFocusSendMessageComposer }); dis.dispatch({
action: Action.ClearAndFocusSendMessageComposer,
timelineRenderingType: this.context.timelineRenderingType,
});
await sendMessage(composerContent, this.state.isRichTextEnabled, { await sendMessage(composerContent, this.state.isRichTextEnabled, {
mxClient: this.props.mxClient, mxClient: this.props.mxClient,
roomContext: this.context, roomContext: this.context,

View File

@ -50,6 +50,9 @@ export function useWysiwygSendActionHandler(
focusComposer(composerElement, context, roomContext, timeoutId); focusComposer(composerElement, context, roomContext, timeoutId);
break; break;
case Action.ClearAndFocusSendMessageComposer: 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(); composerFunctions.clear();
focusComposer(composerElement, context, roomContext, timeoutId); focusComposer(composerElement, context, roomContext, timeoutId);
break; break;

View File

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