diff --git a/index.html b/index.html index e548be7..1b94e31 100644 --- a/index.html +++ b/index.html @@ -3,6 +3,7 @@ + diff --git a/react/react.js b/react/react.js index 34c2bc7..0542be6 100644 --- a/react/react.js +++ b/react/react.js @@ -11,10 +11,13 @@ var IssueList = React.createClass({ body={issue.body} createdAt={issue.created_at} updatedAt={issue.updated_at} + closedAt={issue.closed_at} url={issue.html_url} labels={issue.labels} milestone={issue.milestone} number={issue.number} + comments={issue.comments} + pullRequest={issue.pull_request} state={issue.state} title={issue.title} />); }); @@ -28,10 +31,7 @@ var IssueList = React.createClass({ }); var IssueRow = React.createClass({ - render: function() { - var converter = new Showdown.converter(); - var dangerousHtml = converter.makeHtml(this.props.body.toString()); - + getInitialState: function() { var state = this.props.state; var classString = 'issue ' + state; var tagList = ''; @@ -44,14 +44,39 @@ var IssueRow = React.createClass({ title={tag.name} />); }); + return { + classString: classString, + state: state, + tagList: tagList, + tags: tags, + }; + }, + toggleExpanded: function(ev) { + var newClassString = this.state.classString; + var expandedClass = ' expanded'; + + if (this.state.classString.indexOf(expandedClass) > 0) { + newClassString = this.state.classString.replace(expandedClass, ''); + } else { + newClassString += expandedClass; + } + + this.setState({ + classString: newClassString, + }); + }, + render: function() { + var converter = new Showdown.converter(); + var dangerousHtml = converter.makeHtml(this.props.body.toString()); + return ( -
{state}
+{this.state.state}
{tags}
+{this.state.tags}
+