Skip to content

Commit 17f568f

Browse files
vaadin-botjouni
andauthored
fix: resize app layout drawer based on content (#9261) (#9279)
Co-authored-by: Jouni Koivuviita <jouni@vaadin.com>
1 parent 57afeb5 commit 17f568f

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

packages/app-layout/src/vaadin-app-layout-mixin.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ export const AppLayoutMixin = (superclass) =>
166166
});
167167
this._navbarSizeObserver.observe(this.$.navbarTop);
168168
this._navbarSizeObserver.observe(this.$.navbarBottom);
169+
this._navbarSizeObserver.observe(this.$.drawer);
169170

170171
window.addEventListener('close-overlay-drawer', this.__closeOverlayDrawerListener);
171172
window.addEventListener('keydown', this.__onDrawerKeyDown);

packages/app-layout/test/app-layout.test.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,23 @@ describe('vaadin-app-layout', () => {
302302

303303
expect(width).to.be.equal(100);
304304
});
305+
306+
it('should update content offset when drawer width changes', async () => {
307+
// Allow drawer size based on content
308+
layout.style.setProperty('--vaadin-app-layout-drawer-width', 'auto');
309+
const drawerContent = document.querySelector('section[slot="drawer"]');
310+
drawerContent.style.width = '200px';
311+
await nextResize(layout);
312+
await nextRender();
313+
const initialOffset = parseInt(getComputedStyle(layout).getPropertyValue('padding-inline-start'));
314+
expect(initialOffset).to.equal(200);
315+
// Decrease drawer content size and measure decrease
316+
drawerContent.style.width = '100px';
317+
await nextResize(layout);
318+
await nextRender();
319+
const updatedOffset = parseInt(getComputedStyle(layout).getPropertyValue('padding-inline-start'));
320+
expect(updatedOffset).to.equal(100);
321+
});
305322
});
306323

307324
describe('mobile layout', () => {

0 commit comments

Comments
 (0)