Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit dacbf76

Browse files
authored
Disable multiple messages when {enter} is pressed multiple times (#9929)
1 parent e4a9684 commit dacbf76

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

cypress/e2e/composer/composer.spec.ts

+15
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,21 @@ describe("Composer", () => {
126126
cy.contains(".mx_EventTile_body", "my message 1");
127127
});
128128

129+
it("sends only one message when you press Enter multiple times", () => {
130+
// Type a message
131+
cy.get("div[contenteditable=true]").type("my message 0");
132+
// It has not been sent yet
133+
cy.contains(".mx_EventTile_body", "my message 0").should("not.exist");
134+
135+
// Click send
136+
cy.get("div[contenteditable=true]").type("{enter}");
137+
cy.get("div[contenteditable=true]").type("{enter}");
138+
cy.get("div[contenteditable=true]").type("{enter}");
139+
// It has been sent
140+
cy.contains(".mx_EventTile_body", "my message 0");
141+
cy.get(".mx_EventTile_body").should("have.length", 1);
142+
});
143+
129144
it("can write formatted text", () => {
130145
cy.get("div[contenteditable=true]").type("my {ctrl+b}bold{ctrl+b} message");
131146
cy.get('div[aria-label="Send message"]').click();

src/components/views/rooms/MessageComposer.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -334,15 +334,16 @@ export class MessageComposer extends React.Component<IProps, IState> {
334334

335335
if (this.state.isWysiwygLabEnabled) {
336336
const { permalinkCreator, relation, replyToEvent } = this.props;
337-
await sendMessage(this.state.composerContent, this.state.isRichTextEnabled, {
337+
const composerContent = this.state.composerContent;
338+
this.setState({ composerContent: "", initialComposerContent: "" });
339+
await sendMessage(composerContent, this.state.isRichTextEnabled, {
338340
mxClient: this.props.mxClient,
339341
roomContext: this.context,
340342
permalinkCreator,
341343
relation,
342344
replyToEvent,
343345
});
344346
dis.dispatch({ action: Action.ClearAndFocusSendMessageComposer });
345-
this.setState({ composerContent: "", initialComposerContent: "" });
346347
}
347348
};
348349

0 commit comments

Comments
 (0)