From 2df4f38a97ba9c2f2fabc4934d2b2d44ce0b4cf6 Mon Sep 17 00:00:00 2001 From: Kelv Date: Tue, 14 May 2024 00:12:38 +0800 Subject: [PATCH] FIX: restore docked body document from glimmer site header (#27003) --- .../discourse/app/components/glimmer-site-header.gjs | 2 +- spec/system/header_spec.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/discourse/app/components/glimmer-site-header.gjs b/app/assets/javascripts/discourse/app/components/glimmer-site-header.gjs index e6bccbc3c41..c7d81ad1894 100644 --- a/app/assets/javascripts/discourse/app/components/glimmer-site-header.gjs +++ b/app/assets/javascripts/discourse/app/components/glimmer-site-header.gjs @@ -243,7 +243,7 @@ export default class GlimmerSiteHeader extends Component { @bind dockCheck() { - if (this._docAt === null) { + if (this._docAt === undefined || this._docAt === null) { if (!this.headerElement) { return; } diff --git a/spec/system/header_spec.rb b/spec/system/header_spec.rb index 3bf987da3ae..c0d00a53d4b 100644 --- a/spec/system/header_spec.rb +++ b/spec/system/header_spec.rb @@ -89,6 +89,18 @@ RSpec.describe "Glimmer Header", type: :system do expect(header.get_computed_style_value(".d-header", "--header-offset")).to eq("60px") end + it "body document is permanently docked regardless of scroll positioning" do + Fabricate.times(20, :topic) + sign_in(current_user) + visit "/" + + expect(page).to have_selector("body.docked") + page.execute_script("window.scrollBy(0, 1000)") + expect(page).to have_selector("body.docked") + page.execute_script("window.scrollTo(0, 0)") + expect(page).to have_selector("body.docked") + end + it "moves focus between tabs using arrow keys" do sign_in(current_user) visit "/"