FIX: cancel editing should clear the composer (#21011)

This commit is contained in:
Joffrey JAFFEUX 2023-04-07 09:55:55 +02:00 committed by GitHub
parent 9d50e8189e
commit 79cacba948
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 6 deletions

View File

@ -10,7 +10,7 @@
<ChatComposerMessageDetails
@message={{this.composerService.editingMessage}}
@icon="pencil-alt"
@action={{action "cancelEditing"}}
@action={{this.cancelEditing}}
/>
{{/if}}

View File

@ -191,14 +191,12 @@ export default Component.extend(TextareaTextManipulation, {
this.paneService?.editLastMessageRequested();
}
if (event.keyCode === 27) {
// keyCode for 'Escape'
if (event.key === "Escape") {
if (this.composerService?.replyToMsg) {
this.set("value", "");
this.composerService?.setReplyTo(null);
return false;
} else if (this.composerService?.editingMessage) {
this.set("value", "");
this.cancelEditing();
return false;
} else {
@ -719,6 +717,7 @@ export default Component.extend(TextareaTextManipulation, {
@action
cancelEditing() {
this.composerService?.cancelEditing();
this.set("value", "");
this._focusTextArea({ ensureAtEnd: true, resizeTextarea: true });
},

View File

@ -79,7 +79,6 @@
{{#if (or @channel.isDraft @channel.isFollowing)}}
<ChatComposer
@sendMessage={{this.sendMessage}}
@onCancelEditing={{this.cancelEditing}}
@chatChannel={{@channel}}
@composerService={{this.chatChannelComposer}}
@paneService={{this.chatChannelPane}}

View File

@ -49,7 +49,6 @@
{{else}}
<ChatComposer
@sendMessage={{this.sendMessage}}
@onCancelEditing={{this.cancelEditing}}
@chatChannel={{this.channel}}
@composerService={{this.chatChannelThreadComposer}}
@paneService={{this.chatChannelThreadPane}}

View File

@ -72,6 +72,18 @@ RSpec.describe "Chat composer", type: :system, js: true do
find(".chat-composer-input").send_keys(:escape)
expect(page).to have_no_selector(".chat-composer-message-details .chat-reply__username")
expect(find(".chat-composer-input").value).to eq("")
end
end
context "when closing edited message" do
it "cancels editing" do
chat.visit_channel(channel_1)
channel.edit_message(message_2)
find(".cancel-message-action").click
expect(page).to have_no_selector(".chat-composer-message-details .chat-reply__username")
expect(find(".chat-composer-input").value).to eq("")
end
end
end