diff --git a/browser/main/Components/MarkdownPreview.jsx b/browser/main/Components/MarkdownPreview.jsx new file mode 100644 index 00000000..80df45c5 --- /dev/null +++ b/browser/main/Components/MarkdownPreview.jsx @@ -0,0 +1,43 @@ +var React = require('react') + +var Markdown = require('../Mixins/Markdown') +var ExternalLink = require('../Mixins/ExternalLink') + +module.exports = React.createClass({ + mixins: [Markdown, ExternalLink], + propTypes: { + className: React.PropTypes.string, + content: React.PropTypes.string + }, + componentDidMount: function () { + this.addListener() + }, + componentDidUpdate: function () { + this.addListener() + }, + componentWillUnmount: function () { + this.removeListener() + }, + componentWillUpdate: function () { + this.removeListener() + }, + addListener: function () { + var anchors = React.findDOMNode(this).querySelectorAll('a') + + for (var i = 0; i < anchors.length; i++) { + anchors[i].addEventListener('click', this.openExternal) + } + }, + removeListener: function () { + var anchors = React.findDOMNode(this).querySelectorAll('a') + + for (var i = 0; i < anchors.length; i++) { + anchors[i].removeEventListener('click', this.openExternal) + } + }, + render: function () { + return ( +
+ ) + } +}) diff --git a/browser/main/Components/NoteForm.jsx b/browser/main/Components/NoteForm.jsx index 867250d9..0f805dbb 100644 --- a/browser/main/Components/NoteForm.jsx +++ b/browser/main/Components/NoteForm.jsx @@ -10,6 +10,7 @@ var Markdown = require('../Mixins/Markdown') var PlanetStore = require('../Stores/PlanetStore') var CodeEditor = require('./CodeEditor') +var MarkdownPreview = require('./MarkdownPreview') var getOptions = function (input, callback) { Hq.searchTag(input) @@ -33,7 +34,7 @@ var EDIT_MODE = 0 var PREVIEW_MODE = 1 module.exports = React.createClass({ - mixins: [LinkedState, ReactRouter.State, Markdown], + mixins: [LinkedState, Markdown], propTypes: { planet: React.PropTypes.object, close: React.PropTypes.func, @@ -108,7 +109,7 @@ module.exports = React.createClass({ ) : (