You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.4 KiB
44 lines
1.4 KiB
/** |
|
* Copyright 2013-2015, Facebook, Inc. |
|
* All rights reserved. |
|
* |
|
* This source code is licensed under the BSD-style license found in the |
|
* LICENSE file in the root directory of this source tree. An additional grant |
|
* of patent rights can be found in the PATENTS file in the same directory. |
|
* |
|
* @providesModule ReactDOMImg |
|
*/ |
|
|
|
'use strict'; |
|
|
|
var EventConstants = require("./EventConstants"); |
|
var LocalEventTrapMixin = require("./LocalEventTrapMixin"); |
|
var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin"); |
|
var ReactClass = require("./ReactClass"); |
|
var ReactElement = require("./ReactElement"); |
|
|
|
var img = ReactElement.createFactory('img'); |
|
|
|
/** |
|
* Since onLoad doesn't bubble OR capture on the top level in IE8, we need to |
|
* capture it on the <img> element itself. There are lots of hacks we could do |
|
* to accomplish this, but the most reliable is to make <img> a composite |
|
* component and use `componentDidMount` to attach the event handlers. |
|
*/ |
|
var ReactDOMImg = ReactClass.createClass({ |
|
displayName: 'ReactDOMImg', |
|
tagName: 'IMG', |
|
|
|
mixins: [ReactBrowserComponentMixin, LocalEventTrapMixin], |
|
|
|
render: function() { |
|
return img(this.props); |
|
}, |
|
|
|
componentDidMount: function() { |
|
this.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load'); |
|
this.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error'); |
|
} |
|
}); |
|
|
|
module.exports = ReactDOMImg;
|
|
|