opentok-react-incode
Version:
React components for OpenTok.js
70 lines (54 loc) • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = OTStreams;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _OTSubscriberContext = require('./OTSubscriberContext');
var _OTSubscriberContext2 = _interopRequireDefault(_OTSubscriberContext);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function OTStreams(props, context) {
var session = props.session || context.session || null;
var streams = props.streams || context.streams || null;
if (!session) {
return null;
}
var child = _react.Children.only(props.children);
console.log(props.loading, 'uwu');
var childrenWithContextWrapper = Array.isArray(streams) && streams.length > 0 ? streams.map(function (stream) {
return _react2.default.createElement(
_OTSubscriberContext2.default,
{ stream: stream, key: stream.id },
(0, _react.cloneElement)(child)
);
}) : props.loading;
return _react2.default.createElement(
_react.Fragment,
null,
childrenWithContextWrapper
);
}
OTStreams.propTypes = {
children: _propTypes2.default.element.isRequired,
session: _propTypes2.default.shape({
publish: _propTypes2.default.func,
subscribe: _propTypes2.default.func
}),
streams: _propTypes2.default.arrayOf(_propTypes2.default.object)
};
OTStreams.defaultProps = {
session: null,
streams: null,
loading: null
};
OTStreams.contextTypes = {
session: _propTypes2.default.shape({
publish: _propTypes2.default.func,
subscribe: _propTypes2.default.func
}),
streams: _propTypes2.default.arrayOf(_propTypes2.default.object),
loading: _propTypes2.default.element
};