Skip to content

Commit

Permalink
Support beforetoggle/toggle events for dialog (facebook#32479)
Browse files Browse the repository at this point in the history
  • Loading branch information
keithamus authored Mar 5, 2025
1 parent 6b1ae49 commit aac177c
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
2 changes: 2 additions & 0 deletions packages/react-dom-bindings/src/client/ReactDOMComponent.js
Original file line number Diff line number Diff line change
Expand Up @@ -1280,6 +1280,8 @@ export function setInitialProperties(
return;
}
case 'dialog': {
listenToNonDelegatedEvent('beforetoggle', domElement);
listenToNonDelegatedEvent('toggle', domElement);
listenToNonDelegatedEvent('cancel', domElement);
listenToNonDelegatedEvent('close', domElement);
break;
Expand Down
32 changes: 32 additions & 0 deletions packages/react-dom/src/__tests__/ReactDOMEventPropagation-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1302,6 +1302,38 @@ describe('ReactDOMEventListener', () => {
});
});

it('onBeforeToggle Dialog API', async () => {
await testEmulatedBubblingEvent({
type: 'dialog',
reactEvent: 'onBeforeToggle',
reactEventType: 'beforetoggle',
nativeEvent: 'beforetoggle',
dispatch(node) {
const e = new Event('beforetoggle', {
bubbles: false,
cancelable: true,
});
node.dispatchEvent(e);
},
});
});

it('onToggle Dialog API', async () => {
await testEmulatedBubblingEvent({
type: 'dialog',
reactEvent: 'onToggle',
reactEventType: 'toggle',
nativeEvent: 'toggle',
dispatch(node) {
const e = new Event('toggle', {
bubbles: false,
cancelable: true,
});
node.dispatchEvent(e);
},
});
});

it('onVolumeChange', async () => {
await testEmulatedBubblingEvent({
type: 'video',
Expand Down

0 comments on commit aac177c

Please sign in to comment.