UX: disables composer auto focus on drawer (#20751)

This behavior was interfering with topics shortcuts.
This commit is contained in:
Joffrey JAFFEUX 2023-03-20 22:24:12 +01:00 committed by GitHub
parent d5c7b9f8df
commit 53cadac4b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 40 additions and 0 deletions

View File

@ -1245,6 +1245,10 @@ export default class ChatLivePane extends Component {
@bind
_autoFocus(event) {
if (this.chatStateManager.isDrawerActive) {
return;
}
const { key, metaKey, ctrlKey, code, target } = event;
if (

View File

@ -42,6 +42,17 @@ RSpec.describe "Shortcuts | drawer", type: :system, js: true do
end
end
context "when pressing a letter" do
it "doesnt intercept the event" do
drawer.open_channel(channel_1)
find(".header-sidebar-toggle").click # simple way to ensure composer is not focused
page.send_keys("e")
expect(find(".chat-composer-input").value).to eq("")
end
end
context "when using Up/Down arrows" do
it "navigates through the channels" do
drawer.open_channel(channel_1)

View File

@ -0,0 +1,25 @@
# frozen_string_literal: true
RSpec.describe "Shortcuts | full page", type: :system, js: true do
fab!(:channel_1) { Fabricate(:chat_channel) }
fab!(:current_user) { Fabricate(:user) }
let(:chat) { PageObjects::Pages::Chat.new }
before do
chat_system_bootstrap
channel_1.add(current_user)
sign_in(current_user)
end
context "when pressing a letter" do
it "intercepts the event and propagates it to the composer" do
chat.visit_channel(channel_1)
find(".header-sidebar-toggle").click # simple way to ensure composer is not focused
page.send_keys("e")
expect(find(".chat-composer-input").value).to eq("e")
end
end
end