Skip to content

Commit c26fb9d

Browse files
authored
refactor: make card size itself synchronously on first render (#10385)
1 parent 589e75e commit c26fb9d

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

packages/card/src/vaadin-card.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,12 @@ class Card extends ElementMixin(ThemableMixin(PolylitMixin(LumoInjectionMixin(Li
126126
`;
127127
}
128128

129+
/** @protected */
130+
firstUpdated() {
131+
super.firstUpdated();
132+
this._onSlotChange();
133+
}
134+
129135
/** @private */
130136
_onSlotChange() {
131137
this.toggleAttribute('_m', this.querySelector(':scope > [slot="media"]'));

packages/card/test/card.test.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,20 @@ describe('vaadin-card', () => {
9999
expect(getCustomTitleElement()).to.exist;
100100
});
101101
});
102+
103+
describe('sizing', () => {
104+
it('should size synchronously', async () => {
105+
const template = `
106+
<vaadin-card>
107+
<div slot="title">New Message from Olivia</div>
108+
</vaadin-card>`;
109+
110+
card = fixtureSync(template);
111+
await nextRender();
112+
const height = card.offsetHeight;
113+
114+
card = fixtureSync(template);
115+
expect(card.offsetHeight).to.equal(height);
116+
});
117+
});
102118
});

0 commit comments

Comments
 (0)