lib/carte/client/views/cards.cjsx in carte-server-0.0.14 vs lib/carte/client/views/cards.cjsx in carte-server-0.0.15
- old
+ new
@@ -1,8 +1,9 @@
# @cjsx React.DOM
React = require('react')
Card = require('./card')
+Message = require('./message')
module.exports = React.createClass
displayName: 'Cards'
getInitialState: ()->
@@ -14,38 +15,28 @@
if @props.card
@props.card.on 'error', (model, response)=>
@setState error: response
@forceUpdate.bind(@, null)
+ componentWillReceiveProps: (nextProps)->
+ console.log 'component did mount'
+ nextProps.cards.on 'sync', @forceUpdate.bind(@, null)
+ if nextProps.card
+ nextProps.card.on 'error', (model, response)=>
+ @setState error: response
+ @forceUpdate.bind(@, null)
+
render: ->
console.log 'render cards', @props.cards, @state
- if @state.error
- <div className='row'>
- {
- for i in [1..9]
- <div className='col-sm-4' style={padding:'5px'} onMouseOver={@onMouseOver} onMouseLeave={@onMouseLeave}>
- <div className='list-group'style={margin:'0px',padding:'0px'}>
- <div className='list-group-item' style={height:'220px'}>
- <i className='glyphicon glyphicon-alert' /> {@state.error.status} {@state.error.statusText}
- </div>
- </div>
- </div>
- }
- </div>
- else if !@props.cards.fetching
+ if @props.cards.fetching
+ console.log 'cards loading'
+ <Message>
+ <i className='glyphicon glyphicon-refresh glyphicon-refresh-animate' /> Loading ...
+ </Message>
+ else if @state.error
+ <Message>
+ <i className='glyphicon glyphicon-alert' /> {@state.error.status} {@state.error.statusText}
+ </Message>
+ else
console.log 'cards loaded'
cards = @props.cards.map (card)-> <Card key={card.get("title")} card={card} />
<div className='row'>{cards}</div>
- else
- console.log 'cards loading'
- <div className='row'>
- {
- for i in [1..9]
- <div className='col-sm-4' style={padding:'5px'} onMouseOver={@onMouseOver} onMouseLeave={@onMouseLeave}>
- <div className='list-group'style={margin:'0px',padding:'0px'}>
- <div className='list-group-item' style={height:'220px'}>
- <i className='glyphicon glyphicon-refresh glyphicon-refresh-animate' /> Loading ...
- </div>
- </div>
- </div>
- }
- </div>