mirror of
https://github.com/discourse/discourse.git
synced 2025-02-20 18:58:10 +00:00
DEV: uses resize observer to compute header-offset (#17399)
This commit is contained in:
parent
87353faac6
commit
f00cf7a119
@ -448,6 +448,39 @@ const SiteHeaderComponent = MountWidget.extend(
|
||||
|
||||
export default SiteHeaderComponent.extend({
|
||||
classNames: ["d-header-wrap"],
|
||||
|
||||
init() {
|
||||
this._super(...arguments);
|
||||
|
||||
this._resizeObserver = null;
|
||||
},
|
||||
|
||||
didInsertElement() {
|
||||
this._super(...arguments);
|
||||
|
||||
if ("ResizeObserver" in window) {
|
||||
const header = document.querySelector(".d-header-wrap");
|
||||
|
||||
this._resizeObserver = new ResizeObserver((entries) => {
|
||||
for (let entry of entries) {
|
||||
if (entry.contentRect) {
|
||||
document.documentElement.style.setProperty(
|
||||
"--header-offset",
|
||||
entry.contentRect.height + "px"
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
this._resizeObserver.observe(header);
|
||||
}
|
||||
},
|
||||
|
||||
willDestroyElement() {
|
||||
this._super(...arguments);
|
||||
|
||||
this._resizeObserver?.disconnect();
|
||||
},
|
||||
});
|
||||
|
||||
export function headerTop() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user