/** @jsx React.DOM */ var Addresses = React.createClass({ render: function() { var addrs = this.props.values || null; var value; if (addrs == null) { return (); } else if (Array.isArray(addrs)) { value = addrs.map(function(t) { return t.Address; }).join(", "); } else { value = addrs.Address; } return (

{this.props.headerName}: {value}

) } }); var MainView = React.createClass({ getInitialState: function() { return { body: "" }; }, componentWillReceiveProps: function(nextProps) { this.setMessageHash(nextProps.message.Hash); }, componentDidMount: function() { this.setMessageHash(this.props.message.Hash); }, setMessageHash: function(hash) { $.get("/raw/" + hash , function(data) { var body = data.substring(data.indexOf('\n\n')+2); this.setState({body: body}); }.bind(this)); }, render: function() { // TODO: // - trim 'Re:' from messages and group/thread them. var m = this.props.message; var tos = (m.To||[]).map(function(t) { return t.Address; }).join(', '); var ccs = (m.Cc||[]).map(function(t) { return t.Address; }).join(', '); return (

{m.Subject}

Date: {m.Date.toLocaleString()}

X-Xinu-Hash: {m.Hash}

Original
{this.state.body}
); } });