react-toolbox/source/app.cjsx

46 lines
1.1 KiB
CoffeeScript

"use strict"
SPArouter = require "spa-router"
# -- Models
Session = require "./models/session"
# -- Screens
ScreenSession = require "./screens/session"
ScreenConsole = require "./screens/console"
App = React.createClass
# -- States & Properties
getInitialState: ->
session : null
context : "campaigns"
# -- Lifecycle
componentWillMount: ->
SPArouter.listen
"/session/:id" : (id) =>
@setState session: false, context: id
"/:context/:area/:element" : (context, area, element) =>
@setState session: true, context: context
"/:context/:area" : (context, area) =>
@setState session: true, context: context
"/:context" : (context) =>
@setState session: true, context: context
# -- Events
onSessionSuccess: (data) ->
@setState session: true
SPArouter.path "console"
# -- Render
render: ->
<app>
{
if @state.session
<ScreenConsole context={@state.context}/>
else
<ScreenSession context={@state.context} onSuccess={@onSessionSuccess} />
}
</app>
React.render <App />, document.body