var React = require('react/addons') var moment = require('moment') var CodeViewer = require('./CodeViewer') var CodeEditModal = require('./CodeEditModal') var CodeDeleteModal = require('./CodeDeleteModal') var NoteEditModal = require('./NoteEditModal') var NoteDeleteModal = require('./NoteDeleteModal') var MarkdownPreview = require('./MarkdownPreview') var ProfileImage = require('./ProfileImage') var Modal = require('../Mixins/Modal') var ForceUpdate = require('../Mixins/ForceUpdate') module.exports = React.createClass({ mixins: [ForceUpdate(60000), Modal], propTypes: { article: React.PropTypes.object, showOnlyWithTag: React.PropTypes.func, planet: React.PropTypes.object }, getInitialState: function () { return { isEditModalOpen: false } }, openEditModal: function () { if (this.props.article == null) return switch (this.props.article.type) { case 'code' : this.openModal(CodeEditModal, {code: this.props.article, planet: this.props.planet}) break case 'note' : this.openModal(NoteEditModal, {note: this.props.article, planet: this.props.planet}) } }, openDeleteModal: function () { if (this.props.article == null) return switch (this.props.article.type) { case 'code' : this.openModal(CodeDeleteModal, {code: this.props.article, planet: this.props.planet}) break case 'note' : this.openModal(NoteDeleteModal, {note: this.props.article, planet: this.props.planet}) } }, render: function () { var article = this.props.article if (article == null) { return (
Nothing selected
) } var tags = article.Tags.length > 0 ? article.Tags.map(function (tag) { return ( #{tag.name} ) }.bind(this)) : ( Not tagged yet ) if (article.type === 'code') { return (
{moment(article.updatedAt).fromNow()} by {article.User.profileName}
{article.description}
{tags}
) } return (
{moment(article.updatedAt).fromNow()} by {article.User.profileName}
{article.title}
{tags}
) } })