[react-dom] Add support for `onFullscreenChange` and `onFullscreenError` events (#34621)
chirokas committed
Feb 18, 2026 at 09:34 UTC
4842fbea02c48fa5cfcb28eb6ceaec12f6f41a45
4 files changed
+38
packages/react-dom-bindings/src/events/DOMEventNames.js
+1
@@ -51,6 +51,7 @@ export type DOMEventName =
51
| 'focusin'
52
| 'focusout'
53
| 'fullscreenchange'
54
+ | 'fullscreenerror'
55
| 'gotpointercapture'
56
| 'hashchange'
57
| 'input'
packages/react-dom-bindings/src/events/DOMEventProperties.js
+2
@@ -62,6 +62,8 @@ const simpleEventPluginEvents = [
62
'encrypted',
63
'ended',
64
'error',
65
+ 'fullscreenChange',
66
+ 'fullscreenError',
67
'gotPointerCapture',
68
'input',
69
'invalid',
packages/react-dom-bindings/src/events/ReactDOMEventListener.js
+1
@@ -362,6 +362,7 @@ export function getEventPriority(domEventName: DOMEventName): EventPriority {
362
case 'beforeinput':
363
case 'blur':
364
case 'fullscreenchange':
365
+ case 'fullscreenerror':
366
case 'focus':
367
case 'hashchange':
368
case 'popstate':
packages/react-dom/src/__tests__/ReactDOMEventPropagation-test.js
+34
@@ -834,6 +834,40 @@ describe('ReactDOMEventListener', () => {
834
},
835
});
836
});
837
+
838
+ it('onFullscreenChange', async () => {
839
+ await testNativeBubblingEvent({
840
+ type: 'div',
841
+ reactEvent: 'onFullscreenChange',
842
+ reactEventType: 'fullscreenchange',
843
+ nativeEvent: 'fullscreenchange',
844
+ dispatch(node) {
845
+ node.dispatchEvent(
846
+ new Event('fullscreenchange', {
847
+ bubbles: true,
848
+ cancelable: false,
849
+ }),
850
+ );
851
+ },
852
+ });
853
+ });
854
+
855
+ it('onFullscreenError', async () => {
856
+ await testNativeBubblingEvent({
857
+ type: 'div',
858
+ reactEvent: 'onFullscreenError',
859
+ reactEventType: 'fullscreenerror',
860
+ nativeEvent: 'fullscreenerror',
861
+ dispatch(node) {
862
+ node.dispatchEvent(
863
+ new Event('fullscreenerror', {
864
+ bubbles: true,
865
+ cancelable: false,
866
+ }),
867
+ );
868
+ },
869
+ });
870
+ });
871
});
872
873
describe('non-bubbling events that bubble in React', () => {