mozaik-ext-github
Version:
Mozaik github widgets
69 lines (54 loc) • 1.87 kB
JSX
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;