Advertisement
Guest User

Untitled

a guest
Jul 31st, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. var React = require('react')
  2. var ForecastActions = require('../../actions/forecast-actions')
  3. var ForecastStore = require('../../stores/forecast-store')
  4. var Day = require('../../components/output/day')
  5.  
  6. function success(){
  7. return {'errorMessage':'','forecast':ForecastStore.getForecast()}
  8. }
  9. function error(){
  10. return {'errorMessage':ForecastStore.getForecast(),'forecast':null}
  11. }
  12.  
  13. class ForecastResults extends React.Component {
  14. constructor(props){
  15. super(props)
  16. this.state = {forecast:null,errorMessage:''}
  17. }
  18.  
  19. _onSuccess(){
  20. console.log('_onSuccess',success());
  21. this.setState(success())
  22. }
  23. _onError(){
  24. this.setState(error())
  25. }
  26. componentWillMount(){
  27. ForecastStore.addSuccessListener(this._onSuccess.bind(this))
  28. ForecastStore.addErrorListener(this._onError.bind(this))
  29.  
  30. }
  31. componentWillUnmount(){
  32. ForecastStore.removeSuccessListener(this._onSuccess.bind(this))
  33. ForecastStore.removeSuccessListener(this._onError.bind(this))
  34. }
  35. render() {
  36. var days = "Choose a city and # of days."
  37. var heading = ""
  38. var forecast = this.state.forecast
  39. if(this.state.forecast != null){
  40. var days = forecast.list.map((v,i)=><Day key={i} num={i} data={v}/>)
  41. var heading = <h2 className="row">{forecast.city.name} - {forecast.cnt} day forecast</h2>
  42. }
  43. return(
  44. <div className="results">
  45. <div className="row">
  46. <div className="col-md-12 errorMessage">{this.state.errorMessage}</div>
  47. </div>
  48. <div className="row"></div>
  49. {heading}
  50. {days}
  51. </div>
  52. )
  53. }
  54. }
  55.  
  56. module.exports = ForecastResults
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement