react-iframe
Version:
Easy peasy lemon squeezy iframes with react
104 lines (103 loc) • 3.48 kB
JavaScript
"use strict"
Object.defineProperty(exports, "__esModule", { value: true })
var _createClass = (function() {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i]
descriptor.enumerable = descriptor.enumerable || false
descriptor.configurable = true
if ("value" in descriptor) descriptor.writable = true
Object.defineProperty(target, descriptor.key, descriptor)
}
}
return function(Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps)
if (staticProps) defineProperties(Constructor, staticProps)
return Constructor
}
})()
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function")
}
}
function _possibleConstructorReturn(self, call) {
if (!self) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
}
return call && (typeof call === "object" || typeof call === "function") ? call : self
}
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass)
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: { value: subClass, enumerable: false, writable: true, configurable: true }
})
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : (subClass.__proto__ = superClass)
}
var React = require("react")
var PureComponent = React.PureComponent
var PropTypes = require("prop-types")
var objectAssign = require("object-assign")
function noop() {}
var Iframe = (function(_PureComponent) {
_inherits(Iframe, _PureComponent)
function Iframe() {
_classCallCheck(this, Iframe)
return _possibleConstructorReturn(this, (Iframe.__proto__ || Object.getPrototypeOf(Iframe)).apply(this, arguments))
}
_createClass(Iframe, [
{
key: "render",
value: function render() {
var props = {
ref: "iframe",
frameBorder: "0",
src: this.props.url,
target: "_parent",
sandbox: this.props.sandbox || false,
allowFullScreen: this.props.allowFullScreen || false,
style: objectAssign(
{},
{
position: this.props.position || "absolute",
display: this.props.display || "block",
height: this.props.height || "100%",
width: this.props.width || "100%"
},
this.props.styles || {}
),
height: this.props.height || "100%",
name: this.props.name || "",
width: this.props.width || "100%",
onLoad: this.props.onLoad || noop,
onMouseOver: this.props.onMouseOver || noop,
onMouseOut: this.props.onMouseOut || noop
}
return React.createElement(
"iframe",
objectAssign(props, this.props.id ? { id: this.props.id } : {}, this.props.className ? { className: this.props.className } : {})
)
}
}
])
return Iframe
})(PureComponent)
Iframe.propTypes = {
url: PropTypes.string.isRequired,
id: PropTypes.string,
className: PropTypes.string,
width: PropTypes.string,
position: PropTypes.string,
display: PropTypes.string,
name: PropTypes.string,
height: PropTypes.string,
onLoad: PropTypes.func,
sandbox: PropTypes.string,
onMouseOver: PropTypes.func,
onMouseOut: PropTypes.func,
styles: PropTypes.object,
allowFullScreen: PropTypes.bool
}
exports.default = Iframe