Skip to content

Commit 5e0011a

Browse files
committed
Prevent collapse on action icon click
1 parent a9ba7c6 commit 5e0011a

File tree

2 files changed

+69
-1
lines changed

2 files changed

+69
-1
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>VSCode Elements</title>
7+
<link
8+
rel="stylesheet"
9+
href="/node_modules/@vscode/codicons/dist/codicon.css"
10+
id="vscode-codicon-stylesheet"
11+
>
12+
<script
13+
type="module"
14+
src="/node_modules/@vscode-elements/webview-playground/dist/index.js"
15+
></script>
16+
<script type="module" src="/dist/main.js"></script>
17+
<script>
18+
const logEvents = (selector, eventType) => {
19+
document.querySelector(selector).addEventListener(eventType, (ev) => {
20+
console.log(ev);
21+
});
22+
};
23+
</script>
24+
</head>
25+
26+
<body>
27+
<h1>Component demo</h1>
28+
<main>
29+
<vscode-demo>
30+
<vscode-collapsible
31+
always-show-header-actions
32+
heading="Test"
33+
style="display: block; width: 500px"
34+
>
35+
<vscode-icon
36+
name="file-add"
37+
action-icon
38+
aria-role="button"
39+
id="btn-file-add"
40+
title="New File"
41+
slot="actions"
42+
></vscode-icon>
43+
<vscode-icon
44+
name="refresh"
45+
action-icon
46+
aria-role="button"
47+
id="btn-refresh"
48+
title="Refresh"
49+
slot="actions"
50+
></vscode-icon>
51+
<p>Lorem ipsum</p>
52+
<p>Lorem ipsum</p>
53+
<p>Lorem ipsum</p>
54+
<p>Lorem ipsum</p>
55+
<p>Lorem ipsum</p>
56+
</vscode-collapsible>
57+
</vscode-demo>
58+
<script>
59+
logEvents('#btn-file-add', 'click');
60+
logEvents('#btn-refresh', 'click');
61+
</script>
62+
</main>
63+
</body>
64+
</html>

src/vscode-collapsible/vscode-collapsible.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ export class VscodeCollapsible extends VscElement {
8484
}
8585
}
8686

87+
private _onActionClick(event: PointerEvent) {
88+
event.stopPropagation();
89+
}
90+
8791
override render(): TemplateResult {
8892
const classes = {collapsible: true, open: this.open};
8993
const actionsClasses = {
@@ -123,7 +127,7 @@ export class VscodeCollapsible extends VscElement {
123127
<h3 class="title">${heading}${descriptionMarkup}</h3>
124128
<div class="header-slots">
125129
<div class=${classMap(actionsClasses)}>
126-
<slot name="actions"></slot>
130+
<slot name="actions" @click=${this._onActionClick}></slot>
127131
</div>
128132
<div class="decorations"><slot name="decorations"></slot></div>
129133
</div>

0 commit comments

Comments
 (0)