DEV: uses resize observer to compute header-offset (#17399)

This commit is contained in:
Joffrey JAFFEUX 2022-07-11 14:50:52 +02:00 committed by GitHub
parent 87353faac6
commit f00cf7a119
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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() {