@@ -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 {
@@ -222,34 +223,6 @@ function getOwnerDocumentFromRootContainer(
222223 : rootContainerElement . ownerDocument ;
223224}
224225
225- // There are so many media events, it makes sense to just
226- // maintain a list rather than create a `trapBubbledEvent` for each
227- const mediaEvents = {
228- topAbort : 'abort' ,
229- topCanPlay : 'canplay' ,
230- topCanPlayThrough : 'canplaythrough' ,
231- topDurationChange : 'durationchange' ,
232- topEmptied : 'emptied' ,
233- topEncrypted : 'encrypted' ,
234- topEnded : 'ended' ,
235- topError : 'error' ,
236- topLoadedData : 'loadeddata' ,
237- topLoadedMetadata : 'loadedmetadata' ,
238- topLoadStart : 'loadstart' ,
239- topPause : 'pause' ,
240- topPlay : 'play' ,
241- topPlaying : 'playing' ,
242- topProgress : 'progress' ,
243- topRateChange : 'ratechange' ,
244- topSeeked : 'seeked' ,
245- topSeeking : 'seeking' ,
246- topStalled : 'stalled' ,
247- topSuspend : 'suspend' ,
248- topTimeUpdate : 'timeupdate' ,
249- topVolumeChange : 'volumechange' ,
250- topWaiting : 'waiting' ,
251- } ;
252-
253226function trapClickOnNonInteractiveElement ( node : HTMLElement ) {
254227 // Mobile Safari does not fire properly bubble click events on
255228 // non-interactive elements, which means delegated click listeners do not
@@ -471,9 +444,9 @@ export function setInitialProperties(
471444 case 'video ':
472445 case 'audio ':
473446 // Create listener for each media event
474- for ( const event in mediaEvents ) {
475- if ( mediaEvents . hasOwnProperty ( event ) ) {
476- trapBubbledEvent ( event , mediaEvents [ event ] , domElement ) ;
447+ for ( const event in mediaEventTypes ) {
448+ if ( mediaEventTypes . hasOwnProperty ( event ) ) {
449+ trapBubbledEvent ( event , mediaEventTypes [ event ] , domElement ) ;
477450 }
478451 }
479452 props = rawProps ;
@@ -847,9 +820,9 @@ export function diffHydratedProperties(
847820 case 'video ':
848821 case 'audio ':
849822 // Create listener for each media event
850- for ( const event in mediaEvents ) {
851- if ( mediaEvents . hasOwnProperty ( event ) ) {
852- trapBubbledEvent ( event , mediaEvents [ event ] , domElement ) ;
823+ for ( const event in mediaEventTypes ) {
824+ if ( mediaEventTypes . hasOwnProperty ( event ) ) {
825+ trapBubbledEvent ( event , mediaEventTypes [ event ] , domElement ) ;
853826 }
854827 }
855828 break ;
0 commit comments