context = window EventActions = context.EventActions context.EventPage = React.createClass({ mixins: [Reflux.listenTo(EventStore, "onEventsChanged")], once: false, getInitialState: function () { return {submitting: false, error: null, event: null} }, parseSlug: function () { var path = window.location.pathname var pathPart = path.substring('/events/'.length) var query = pathPart.indexOf('?') if (query > -1) { var slug = pathPart.substring(0, query) } else { var slug = pathPart } return slug; }, componentDidMount: function () { EventActions.single(this.parseSlug()) // new Plyr('#video'); }, componentDidUpdate: function () { if((this.isReady() || this.isErrored()) && !this.once) { if(!this.isErrored()) { try { if (this.isWhiteLabel()) { const player = new Plyr('#player', { controls: ['play-large', 'play', 'progress', 'current-time', 'mute', 'volume', 'settings', 'pip', 'airplay', 'fullscreen'], pip: true, fullscreen: { enabled: true, fallback: true, iosNative: false }, title: this.title() }); player.pip = true player.playsinline = true } } catch(e) { console.log("error initializing video player", e) } } if(this.isAuthorized()) { var listing = document.getElementById("body-content") var chatElement = document.getElementById("rt-e617b4394e0e49e1c234c63161bb2e15") chatElement.style.overflow = 'visible' listing.appendChild(chatElement) } else { var chatElement = document.getElementById("rt-e617b4394e0e49e1c234c63161bb2e15") chatElement.parentNode.removeChild(chatElement) } this.once = true } }, authorizeDone: function (response) { this.setState({submitting: false}) EventActions.addAuthorization(response) }, authorizeFailed: function (e) { if (e instanceof SyntaxError) { this.setState({error: 'Server error. Please try again or contact support@jamkazam.com.'}) } else if (e instanceof Error) { this.setState({error: 'Please enter a valid Eventbrite Order ID'}) } else { console.log("heheh", e) } this.setState({submitting: false}) }, handleSubmit: function (event) { var value = document.getElementById("order-input").value if (value) { context.JK.Rest2.authorizeLiveStream({order: value}).then((response) => { if (!response.ok) { throw Error(response.statusText); } return response.json() }).then((response) => this.authorizeDone(response)).catch((jqXHR) => this.authorizeFailed(jqXHR)) this.setState({submitting: true, error: null}) } event.preventDefault(); }, isErrored() { return !!this.state.error }, isReady() { return !!this.state.event }, isAuthorized() { return this.isReady() ? (this.state.event.authorization || this.state.event.allow_in) : false }, isNotAuthorized() { return false }, videoCode() { return this.state.event.youtube_code }, isWhiteLabel() { return this.state.event.white_label_player }, title() { return this.state.event.title ? this.state.event.title : 'Unknown title' }, description() { return this.state.event.description ? this.state.event.description : null }, startsAt() { return this.state.event.starts_at ? "Starts at " + new Date(this.state.event.starts_at).toLocaleString() : null }, header() { if (this.isErrored()) { return