Skip to content

Commit e71099a

Browse files
committed
Prevent collapsing when clicking the decoration icon
1 parent e4b7f64 commit e71099a

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

dev/vscode-collapsible/actions-stop-propagation.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ <h1>Component demo</h1>
4646
aria-role="button"
4747
id="btn-refresh"
4848
title="Refresh"
49-
slot="actions"
49+
slot="decorations"
5050
></vscode-icon>
5151
<p>Lorem ipsum</p>
5252
<p>Lorem ipsum</p>

src/vscode-collapsible/vscode-collapsible.test.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,4 +120,21 @@ describe('vscode-collapsible', () => {
120120

121121
expect(el.open).to.be.true;
122122
});
123+
124+
it('prevents collapse on decoration icon click', async () => {
125+
const el = await fixture<VscodeCollapsible>(html`
126+
<vscode-collapsible always-show-header-actions open
127+
><vscode-icon
128+
name="file"
129+
slot="decorations"
130+
id="action-icon"
131+
></vscode-icon>
132+
</vscode-collapsible>
133+
`);
134+
135+
const actionIcon = $('#action-icon');
136+
await clickOnElement(actionIcon);
137+
138+
expect(el.open).to.be.true;
139+
});
123140
});

src/vscode-collapsible/vscode-collapsible.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ export class VscodeCollapsible extends VscElement {
8484
}
8585
}
8686

87-
private _onActionClick(event: PointerEvent) {
87+
private _onHeaderSlotClick(event: PointerEvent) {
8888
event.stopPropagation();
8989
}
9090

@@ -127,9 +127,11 @@ export class VscodeCollapsible extends VscElement {
127127
<h3 class="title">${heading}${descriptionMarkup}</h3>
128128
<div class="header-slots">
129129
<div class=${classMap(actionsClasses)}>
130-
<slot name="actions" @click=${this._onActionClick}></slot>
130+
<slot name="actions" @click=${this._onHeaderSlotClick}></slot>
131+
</div>
132+
<div class="decorations">
133+
<slot name="decorations" @click=${this._onHeaderSlotClick}></slot>
131134
</div>
132-
<div class="decorations"><slot name="decorations"></slot></div>
133135
</div>
134136
</div>
135137
<div class="collapsible-body" part="body">

0 commit comments

Comments
 (0)