Skip to content

Commit e11f2fb

Browse files
material-web-copybaraasyncliz
authored andcommitted
chore: internal change
PiperOrigin-RevId: 879890011
1 parent 005b4b8 commit e11f2fb

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

iconbutton/internal/icon-button.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,9 @@ export class IconButton extends iconButtonBaseClass implements FormSubmitter {
267267

268268
private renderRipple() {
269269
const isRippleDisabled = !this.href && (this.disabled || this.softDisabled);
270+
// TODO(b/310046938): use the same id for both elements
270271
return html`<md-ripple
271-
.control=${this}
272+
for=${this.href ? 'link' : nothing}
272273
?disabled="${isRippleDisabled}"></md-ripple>`;
273274
}
274275

internal/events/dispatch-hooks.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ export function setupDispatchHooks(
154154
// Re-dispatch the event. We can't reuse `redispatchEvent()` since we
155155
// need to add the hooks to the copy before it's dispatched.
156156
isRedispatching = true;
157-
const dispatched = element.dispatchEvent(eventCopy);
157+
const dispatched = event.composedPath()[0].dispatchEvent(eventCopy);
158158
isRedispatching = false;
159159
if (!dispatched) {
160160
event.preventDefault();

internal/events/dispatch-hooks_test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,21 @@ describe('dispatch hooks', () => {
3939
.withContext('element.addEventListener')
4040
.toHaveBeenCalledTimes(3);
4141
});
42+
43+
it('triggers internal event listeners when a composed element is the source of the event', () => {
44+
const shadowRoot = element.attachShadow({mode: 'open'});
45+
const composedElement = document.createElement('button');
46+
shadowRoot.appendChild(composedElement);
47+
const innerClickListener = jasmine.createSpy('innerClickListener');
48+
composedElement.addEventListener('click', innerClickListener);
49+
50+
setupDispatchHooks(element, 'click');
51+
composedElement.click();
52+
53+
expect(innerClickListener)
54+
.withContext('innerClickListener')
55+
.toHaveBeenCalledTimes(1);
56+
});
4257
});
4358

4459
describe('afterDispatch()', () => {

0 commit comments

Comments
 (0)