From c622314effc87a1fe10fb4197406710dab555de6 Mon Sep 17 00:00:00 2001 From: btzr-io Date: Thu, 26 Jul 2018 18:24:00 -0600 Subject: [PATCH] add code-viewer --- package.json | 1 + src/renderer/component/viewers/codeViewer.jsx | 38 +++++++++ .../component/viewers/documentViewer.jsx | 37 +++++---- src/renderer/scss/component/_content.scss | 19 ----- src/renderer/scss/component/_file-render.scss | 81 ++++++++++++++++--- .../scss/component/_markdown-preview.scss | 5 ++ src/renderer/util/getMediaType.js | 3 +- yarn.lock | 4 + 8 files changed, 140 insertions(+), 48 deletions(-) create mode 100644 src/renderer/component/viewers/codeViewer.jsx diff --git a/package.json b/package.json index 0c2724d47..90271c7b2 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "dependencies": { "bluebird": "^3.5.1", "classnames": "^2.2.5", + "codemirror": "^5.39.2", "country-data": "^0.0.31", "dom-scroll-into-view": "^1.2.1", "electron-dl": "^1.11.0", diff --git a/src/renderer/component/viewers/codeViewer.jsx b/src/renderer/component/viewers/codeViewer.jsx new file mode 100644 index 000000000..f37fa64d1 --- /dev/null +++ b/src/renderer/component/viewers/codeViewer.jsx @@ -0,0 +1,38 @@ +// @flow + +import React from 'react'; +import CodeMirror from 'codemirror'; + +type Props = { + value: string, +}; + +class CodeViewer extends React.PureComponent { + constructor(props) { + super(props); + this.codeMirror = null; + this.textarea = React.createRef(); + } + + componentDidMount() { + this.codeMirror = CodeMirror.fromTextArea(this.textarea.current, { + mode: 'markdown', + readOnly: true, + dragDrop: false, + lineNumbers: true, + lineWrapping: true, + }); + } + + render() { + const { value } = this.props; + + return ( +
+