Skip to content

Commit fbce2d5

Browse files
authored
Fix #21972: Add onResize event to video elements (#21973)
* Fix #21972: Add `onResize` event to video elements This is a simple fix for #21972 that adds support for the `onResize` media event. I created a separate `videoEventTypes` array since I doubt anyone will want to add `onResize` to an audio event. It would simplify the code a bit to just add `resize` to the `mediaEventTypes` array, if that’s preferred. Pre-commit checklist ([source](https://reactjs.org/docs/how-to-contribute.html#sending-a-pull-request)) ✅ Fork the repository and create your branch from `main`. ✅ Run `yarn` in the repository root. ✅ If you’ve fixed a bug or added code that should be tested, add tests! ✅ Ensure the test suite passes (`yarn test`). Tip: `yarn test --watch TestName` is helpful in development. ✅ Run `yarn test --prod` to test in the production environment. ✅ If you need a debugger, run `yarn debug-test --watch TestName`, open chrome://inspect, and press “Inspect”. ✅ Format your code with prettier (`yarn prettier`). ✅ Make sure your code lints (`yarn lint`). Tip: `yarn linc` to only check changed files. ✅ Run the Flow typechecks (`yarn flow`). ✅ If you haven’t already, complete the CLA. * Consolidate `videoEventTypes` array into `mediaEventTypes`
1 parent 2f156ea commit fbce2d5

File tree

10 files changed

+26
-0
lines changed

10 files changed

+26
-0
lines changed

fixtures/dom/src/components/fixtures/media-events/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export default class MediaEvents extends React.Component {
2121
onPlaying: false,
2222
onProgress: false,
2323
onRateChange: false,
24+
onResize: false,
2425
onSeeked: false,
2526
onSeeking: false,
2627
onSuspend: false,

packages/react-dom/src/__tests__/ReactDOMEventListener-test.js

+2
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ describe('ReactDOMEventListener', () => {
388388
onPlaying() {},
389389
onProgress() {},
390390
onRateChange() {},
391+
onResize() {},
391392
onSeeked() {},
392393
onSeeking() {},
393394
onStalled() {},
@@ -430,6 +431,7 @@ describe('ReactDOMEventListener', () => {
430431
case 'playing':
431432
case 'progress':
432433
case 'ratechange':
434+
case 'resize':
433435
case 'seeked':
434436
case 'seeking':
435437
case 'stalled':

packages/react-dom/src/__tests__/ReactDOMEventPropagation-test.js

+16
Original file line numberDiff line numberDiff line change
@@ -1095,6 +1095,22 @@ describe('ReactDOMEventListener', () => {
10951095
});
10961096
});
10971097

1098+
it('onResize', () => {
1099+
testEmulatedBubblingEvent({
1100+
type: 'video',
1101+
reactEvent: 'onResize',
1102+
reactEventType: 'resize',
1103+
nativeEvent: 'resize',
1104+
dispatch(node) {
1105+
const e = new Event('resize', {
1106+
bubbles: false,
1107+
cancelable: true,
1108+
});
1109+
node.dispatchEvent(e);
1110+
},
1111+
});
1112+
});
1113+
10981114
it('onSeeked', () => {
10991115
testEmulatedBubblingEvent({
11001116
type: 'video',

packages/react-dom/src/__tests__/__snapshots__/ReactTestUtils-test.js.snap

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ Array [
6969
"progress",
7070
"rateChange",
7171
"reset",
72+
"resize",
7273
"scroll",
7374
"seeked",
7475
"seeking",

packages/react-dom/src/events/DOMEventNames.js

+1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ export type DOMEventName =
8686
| 'progress'
8787
| 'ratechange'
8888
| 'reset'
89+
| 'resize'
8990
| 'scroll'
9091
| 'seeked'
9192
| 'seeking'

packages/react-dom/src/events/DOMEventProperties.js

+1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ const simpleEventPluginEvents = [
8686
'progress',
8787
'rateChange',
8888
'reset',
89+
'resize',
8990
'seeked',
9091
'seeking',
9192
'stalled',

packages/react-dom/src/events/DOMPluginEventSystem.js

+1
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ export const mediaEventTypes: Array<DOMEventName> = [
192192
'playing',
193193
'progress',
194194
'ratechange',
195+
'resize',
195196
'seeked',
196197
'seeking',
197198
'stalled',

packages/react-dom/src/events/ReactDOMEventListener.js

+1
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@ export function getEventPriority(domEventName: DOMEventName): * {
321321
case 'pointerup':
322322
case 'ratechange':
323323
case 'reset':
324+
case 'resize':
324325
case 'seeked':
325326
case 'submit':
326327
case 'touchcancel':

packages/react-dom/src/events/TopLevelEventTypes.js

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ export type TopLevelType =
7171
| 'progress'
7272
| 'ratechange'
7373
| 'reset'
74+
| 'resize'
7475
| 'scroll'
7576
| 'seeked'
7677
| 'seeking'

packages/react-dom/src/test-utils/ReactTestUtils.js

+1
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,7 @@ const simulatedEventTypes = [
642642
'pointerUp',
643643
'rateChange',
644644
'reset',
645+
'resize',
645646
'seeked',
646647
'submit',
647648
'touchCancel',

0 commit comments

Comments
 (0)