context = window MIX_MODES = context.JK.MIX_MODES SessionActions = @SessionActions @SessionScreen = React.createClass({ mixins: [Reflux.listenTo(@AppStore,"onAppInit"), Reflux.listenTo(@SessionActions.allowLeaveSession, "onAllowLeaveSession")] render: () -> videoBtn = null if gon.global.video_available != 'none' videoBtn = `` `
{videoBtn}
` componentDidMount: () -> @logger = context.JK.logger beforeShow: (data) -> @logger.debug("session beforeShow") @allowLeave = false afterShow: (data) -> @logger.debug("session afterShow") SessionActions.joinSession.trigger(data.id) beforeHide: () -> context.JK.HelpBubbleHelper.clearJamTrackGuide(); beforeLeave: (data) -> @logger.debug("session beforeLeave", @allowLeave) if @allowLeave return true else leaveSessionWarningDialog = new context.JK.LeaveSessionWarningDialog(context.JK.app, () => @allowLeave = true SessionActions.leaveSession(hash: data.hash) #context.location.hash = data.hash ) leaveSessionWarningDialog.initialize() @app.layout.showDialog('leave-session-warning') return false beforeDisconnect: () -> @logger.debug("session beforeDisconnect") return { freezeInteraction: true }; onAllowLeaveSession: () -> @allowLeave = true onAppInit: (@app) -> screenBindings = { 'beforeShow': @beforeShow, 'afterShow': @afterShow, 'beforeHide': @beforeHide, 'beforeLeave' : @beforeLeave, 'beforeDisconnect' : @beforeDisconnect, }; @app.bindScreen('session', screenBindings); })