context = window MIX_MODES = context.JK.MIX_MODES AppStore = context.AppStore SessionsActions = @SessionsActions @FindSessionScreen = React.createClass({ mixins: [Reflux.listenTo(@AppStore, "onAppInit"), Reflux.listenTo(@UserStore, "onUserChanged")] LIMIT: 20 instrument_logo_map: context.JK.getInstrumentIconMap24() getInitialState: () -> {activeTab: '', search: '', type: 'user-input', screenActive: false} generateProperties: (tab) -> properties = {} properties['active'] = @state.activeTab == tab properties generateTabClasses: (tab) -> classes = {} classes['find-tab'] = true classes[tab] = true if @state.activeTab == tab classes['active'] = true classNames(classes) tabActivate: (tab) -> @setState({activeTab: tab}) render: () -> myTabClasses = @generateTabClasses('my') openTabClasses = @generateTabClasses('open') upcomingTabClasses = @generateTabClasses('upcoming') myProperties = @generateProperties('my') openProperties = @generateProperties('open') upcomingProperties = @generateProperties('upcoming') search = '' `
For Me Open Jams Upcoming
` componentDidMount: () -> return componentDidUpdate: (prevProps, prevState) -> return beforeShow: () -> @initCustomUrlScheme() return ensuredCallback: (sessionId) -> context.JK.SessionUtils.joinSession(sessionId) joinSession: (sessionId) -> context.JK.SessionUtils.ensureValidClient(AppStore.app, context.JK.GearUtils, @ensuredCallback.bind(this, sessionId)) initCustomUrlScheme: () -> hash = decodeURIComponent(context.location.hash) qStr = hash.substring(hash.lastIndexOf('/') + 1) qParamsArr = qStr.split('|') isCustom = undefined sessionId = undefined qParamsArr.forEach (q) -> qp = q.split('~') if qp[0] == 'custom' isCustom = qp[1] if qp[0] == 'joinSessionId' sessionId = qp[1] if !isCustom || isCustom != 'yes' return unless sessionId return @joinSession(sessionId) afterShow: () -> SessionsActions.watching.trigger(true) if @state.activeTab == '' @setState({activeTab: 'my'}) @setState({screenActive:true}) beforeHide: () -> SessionsActions.watching.trigger(false) SessionsActions.resetSessions.trigger() @setState({screenActive:false}) onAppInit: (@app) -> @EVENTS = context.JK.EVENTS @rest = context.JK.Rest() @logger = context.JK.logger screenBindings = 'beforeShow': @beforeShow 'afterShow': @afterShow 'beforeHide': @beforeHide @app.bindScreen('findSession', screenBindings) onUserChanged: (userState) -> @user = userState?.user })