var React = require('react/addons') var Snippet = require('../Services/Snippet') var CodeViewer = require('../Components/CodeViewer') var SnippetList = React.createClass({ propTypes: { snippets: React.PropTypes.array, selectSnippet: React.PropTypes.func }, itemClickHandlerFactory: function (snippet) { return function () { this.props.selectSnippet(snippet) }.bind(this) }, render: function () { var snippets = this.props.snippets.map(function (snippet) { var tags = snippet.Tags.map(function (tag) { return ( #{tag.name} ) }) return (
  • {snippet.callSign}
    {snippet.description}
    {snippet.updatedAt}
    {tags}
  • ) }.bind(this)) return (
    ) } }) var SnippetViewer = React.createClass({ propTypes: { snippet: React.PropTypes.object }, render: function () { var snippet = this.props.snippet var content if (snippet != null) { var tags = snippet.Tags.map(function (tag) { return ( #{tag.name} ) }) content = (
    {snippet.callSign} {snippet.updatedAt}
    {snippet.description}
    {tags}
    ) } else { content = (
    Not selected
    ) } return content } }) var SnippetContainer = React.createClass({ propTypes: { params: React.PropTypes.shape({ planetName: React.PropTypes.string }) }, getInitialState: function () { return { snippets: [], curentSnippet: {} } }, componentDidMount: function () { Snippet.getByPlanet(this.props.params.planetName) .then(function (snippets) { this.setState({snippets: snippets, currentSnippet: snippets.length > 0 ? snippets[0] : null}) }.bind(this)) }, selectSnippet: function (snippet) { this.setState({currentSnippet: snippet}) }, render: function () { return (
    ) } }) module.exports = SnippetContainer