@@ -22,6 +22,7 @@ import * as inputValueTracking from './inputValueTracking';
2222import setInnerHTML from './setInnerHTML' ;
2323import setTextContent from './setTextContent' ;
2424import { listenTo , trapBubbledEvent } from '../events/ReactBrowserEventEmitter' ;
25+ import { mediaEventTypes } from '../events/BrowserEventConstants' ;
2526import * as CSSPropertyOperations from '../shared/CSSPropertyOperations' ;
2627import { Namespaces , getIntrinsicNamespace } from '../shared/DOMNamespaces' ;
2728import {
@@ -223,34 +224,6 @@ function getOwnerDocumentFromRootContainer(
223224 : rootContainerElement . ownerDocument ;
224225}
225226
226- // There are so many media events, it makes sense to just
227- // maintain a list rather than create a `trapBubbledEvent` for each
228- const mediaEvents = {
229- topAbort : 'abort' ,
230- topCanPlay : 'canplay' ,
231- topCanPlayThrough : 'canplaythrough' ,
232- topDurationChange : 'durationchange' ,
233- topEmptied : 'emptied' ,
234- topEncrypted : 'encrypted' ,
235- topEnded : 'ended' ,
236- topError : 'error' ,
237- topLoadedData : 'loadeddata' ,
238- topLoadedMetadata : 'loadedmetadata' ,
239- topLoadStart : 'loadstart' ,
240- topPause : 'pause' ,
241- topPlay : 'play' ,
242- topPlaying : 'playing' ,
243- topProgress : 'progress' ,
244- topRateChange : 'ratechange' ,
245- topSeeked : 'seeked' ,
246- topSeeking : 'seeking' ,
247- topStalled : 'stalled' ,
248- topSuspend : 'suspend' ,
249- topTimeUpdate : 'timeupdate' ,
250- topVolumeChange : 'volumechange' ,
251- topWaiting : 'waiting' ,
252- } ;
253-
254227function trapClickOnNonInteractiveElement ( node : HTMLElement ) {
255228 // Mobile Safari does not fire properly bubble click events on
256229 // non-interactive elements, which means delegated click listeners do not
@@ -472,9 +445,9 @@ export function setInitialProperties(
472445 case 'video ':
473446 case 'audio ':
474447 // Create listener for each media event
475- for ( const event in mediaEvents ) {
476- if ( mediaEvents . hasOwnProperty ( event ) ) {
477- trapBubbledEvent ( event , mediaEvents [ event ] , domElement ) ;
448+ for ( const event in mediaEventTypes ) {
449+ if ( mediaEventTypes . hasOwnProperty ( event ) ) {
450+ trapBubbledEvent ( event , mediaEventTypes [ event ] , domElement ) ;
478451 }
479452 }
480453 props = rawProps ;
@@ -859,9 +832,9 @@ export function diffHydratedProperties(
859832 case 'video ':
860833 case 'audio ':
861834 // Create listener for each media event
862- for ( const event in mediaEvents ) {
863- if ( mediaEvents . hasOwnProperty ( event ) ) {
864- trapBubbledEvent ( event , mediaEvents [ event ] , domElement ) ;
835+ for ( const event in mediaEventTypes ) {
836+ if ( mediaEventTypes . hasOwnProperty ( event ) ) {
837+ trapBubbledEvent ( event , mediaEventTypes [ event ] , domElement ) ;
865838 }
866839 }
867840 break ;
0 commit comments