You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

43 lines
985 B

/*jshint ignore:start */
var CodeBox = React.createClass({
getInitialState: function() {
return {
html: ''
};
},
componentDidMount: function() {
this.props.src = this.props.src.replace(/\.md$/, '.html');
$.get('/' + this.props.src).then(function(data) {
var item = $(data);
item.find('.highlight').appendTo(item);
this.setState({
html: item.html()
});
}.bind(this));
},
handleClick: function(e) {
if (!$(e.target).hasClass('collapse')) {
return;
}
$(e.target).parent().parent().find('.highlight').slideToggle(150);
},
render: function() {
var html = this.state.html;
return (
<div className="code-box"
onClick={this.handleClick}
dangerouslySetInnerHTML={{__html: html}}>
</div>
);
}
});
var CodeBoxes = React.createClass({
render: function() {
return (
<div className="code-boxes">
{this.props.children}
</div>
);
}
});