feeles-ide
Version:
The hackable and serializable IDE to make learning material
124 lines (96 loc) • 4.39 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactPlayer = _interopRequireDefault(require("react-player"));
var _CardWindow = _interopRequireDefault(require("../CardWindow"));
var _CardFloatingBar = _interopRequireDefault(require("../CardFloatingBar"));
var defaultPlayerState = {
// https://github.com/CookPete/react-player#props
width: 'initial',
style: {
maxWidth: 500
},
soundcloudConfig: {
clientId: 'iFAPeKCVCOTKeA0nNJCHuVHif2gEBKbl',
showArtwork: true
}
};
var MediaCard =
/*#__PURE__*/
function (_PureComponent) {
(0, _inherits2.default)(MediaCard, _PureComponent);
function MediaCard() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2.default)(this, MediaCard);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(MediaCard)).call.apply(_getPrototypeOf2, [this].concat(args)));
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "state", {
playerState: {}
});
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleMedia", function (event) {
var value = event.data.value;
if (value) {
// feeles.openMedia()
_this.setState({
playerState: value
});
_this.props.setCardVisibility('MediaCard', true);
} else {
// feeles.closeMedia()
_this.props.setCardVisibility('MediaCard', false);
}
});
return _this;
}
(0, _createClass2.default)(MediaCard, [{
key: "componentDidMount",
value: function componentDidMount() {
var globalEvent = this.props.globalEvent;
globalEvent.on('message.media', this.handleMedia);
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
var visible = prevProps.cardPropsBag.visible;
if (visible && !this.props.cardPropsBag.visible) {
// カードが close されたとき動画を止める
this.setState({
playerState: (0, _objectSpread2.default)({}, this.state.playerState, {
playing: false
})
});
}
}
}, {
key: "render",
value: function render() {
var playerState = (0, _objectSpread2.default)({}, defaultPlayerState, this.state.playerState);
return _react.default.createElement(_CardWindow.default, this.props.cardPropsBag, _react.default.createElement(_CardFloatingBar.default, null, this.props.localization.mediaCard.title), this.state.playerState.url ? _react.default.createElement(_reactPlayer.default, playerState) : _react.default.createElement("div", null, "URL not given"));
}
}]);
return MediaCard;
}(_react.PureComponent);
exports.default = MediaCard;
(0, _defineProperty2.default)(MediaCard, "propTypes", {
cardPropsBag: _propTypes.default.object.isRequired,
setCardVisibility: _propTypes.default.func.isRequired,
localization: _propTypes.default.object.isRequired,
globalEvent: _propTypes.default.object.isRequired
});