UNPKG

mozaik-ext-github

Version:
69 lines (54 loc) 1.87 kB
import React, { Component, PropTypes } from 'react'; import reactMixin from 'react-mixin'; import { ListenerMixin } from 'reflux'; import Mozaik from 'mozaik/browser'; import StatusIcon from './StatusIcon.jsx'; import StatusTimestamp from './StatusTimestamp.jsx'; class Status extends Component { constructor(props) { super(props); this.state = { status: null }; } getApiRequest() { return { id: 'github.status' }; } onApiData(status) { this.setState({ status }); } render() { const { status } = this.state; let content = null; if (status) { let messageNode = null; if (status.status !== 'good') { messageNode = ( <span className="github__status__current__message"> {status.body} </span> ); } content = ( <div className="github__status__current"> <StatusIcon status={status.status} message={status.body} /> {messageNode} <StatusTimestamp timestamp={status.created_on} /> </div> ); } return ( <div> <div className="widget__header"> Github <span className="widget__header__subject">Status</span> <i className="fa fa-github-alt" /> </div> <div className="widget__body"> {content} </div> </div> ); } } Status.displayName = 'Status'; reactMixin(Status.prototype, ListenerMixin); reactMixin(Status.prototype, Mozaik.Mixin.ApiConsumer); export default Status;