@lahzenegar/video-react
Version:
Video-React is a web video player built from the ground up for an HTML5 world using React library.
122 lines (92 loc) • 3.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _MenuButton = require('../menu/MenuButton');
var _MenuButton2 = _interopRequireDefault(_MenuButton);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var QualityPicker = function (_Component) {
(0, _inherits3.default)(QualityPicker, _Component);
function QualityPicker(props, context) {
(0, _classCallCheck3.default)(this, QualityPicker);
var _this = (0, _possibleConstructorReturn3.default)(this, (QualityPicker.__proto__ || (0, _getPrototypeOf2.default)(QualityPicker)).call(this, props, context));
_this.handleSelectItem = _this.handleSelectItem.bind(_this);
return _this;
}
(0, _createClass3.default)(QualityPicker, [{
key: 'handleSelectItem',
value: function handleSelectItem(index) {
var _props = this.props,
tracks = _props.tracks,
actions = _props.actions;
if (index >= -1 && index < tracks.length) {
actions.handleTrackChange(index - 1);
}
}
}, {
key: 'render',
value: function render() {
var _props2 = this.props,
className = _props2.className,
realActiveTrack = _props2.realActiveTrack,
switchingTrack = _props2.switchingTrack,
activeTrack = _props2.activeTrack,
tracks = _props2.tracks;
var realActiveTrackLabel = tracks.filter(function (item) {
return item.id === realActiveTrack;
})[0];
var activeTrackLabel = tracks.filter(function (item) {
return item.id === activeTrack;
})[0];
var items = tracks.map(function (item, index) {
return {
label: item.label,
value: index
};
});
var selectedIndex = activeTrackLabel.id === -1 ? 0 : activeTrackLabel.id;
return _react2.default.createElement(
_MenuButton2.default,
{
items: items,
selectedIndex: selectedIndex,
onSelectItem: this.handleSelectItem,
className: (0, _classnames2.default)(className, {
'video-react-settings-control': true,
'video-react-control': true,
'video-react-button': true,
'video-react-icon-settings': true,
'video-react-icon-spin': switchingTrack
}) },
_react2.default.createElement(
'div',
{ className: 'video-react-active-track-label' },
realActiveTrackLabel.label
)
);
}
}]);
return QualityPicker;
}(_react.Component);
QualityPicker.propTypes = {
activeTrack: _propTypes2.default.number,
tracks: _propTypes2.default.array,
onSetTrack: _propTypes2.default.func
};
exports.default = QualityPicker;