import React, { PropTypes } from 'react' import ReactDOM from 'react-dom' import MarkdownPreview from 'browser/components/MarkdownPreview' import CodeEditor from 'browser/components/CodeEditor' export const PREVIEW_MODE = 'PREVIEW_MODE' export const EDIT_MODE = 'EDIT_MODE' export default class ArticleEditor extends React.Component { constructor (props) { super(props) this.isMouseDown = false this.state = { status: PREVIEW_MODE } } componentWillReceiveProps (nextProps) { } switchPreviewMode () { this.setState({ status: PREVIEW_MODE }) } switchEditMode () { this.setState({ status: EDIT_MODE }, function () { this.refs.editor.editor.focus() }) } handlePreviewMouseDown (e) { if (e.button === 2) return true this.isDrag = false this.isMouseDown = true } handlePreviewMouseMove () { if (this.isMouseDown) this.isDrag = true } handlePreviewMouseUp () { this.isMouseDown = false if (!this.isDrag) { this.switchEditMode() } } handleBlurCodeEditor () { if (this.props.mode === 'markdown') { this.switchPreviewMode() } } render () { let showPreview = this.props.mode === 'markdown' && this.state.status === PREVIEW_MODE if (showPreview) { return (