Personal Dashboard

Note.jsx 1.1KB

12345678910111213141516171819202122232425
  1. import React from 'react'
  2. import MarkdownIt from 'markdown-it'
  3. import { DeleteButton, Card } from 'Components'
  4. import { EditableText } from '@blueprintjs/core'
  5. import brace from 'brace'
  6. import AceEditor from 'react-ace'
  7. import 'brace/mode/markdown'
  8. import 'brace/theme/tomorrow'
  9. const md = new MarkdownIt()
  10. const Note = ({ note, update, remove }) =>
  11. <div className="Note">
  12. <DeleteButton className="trash-btn" onConfirm={() => remove(note)} title={`Delete ${note.title}`}>
  13. Do you really want to delete this note ? You won't be able to recover it.
  14. </DeleteButton>
  15. <h2><EditableText value={note.title} onChange={value => update({...note, title: value})} /></h2>
  16. <div className="editor">
  17. <Card noPadding className="source"><AceEditor editorProps={{$blockScrolling: true}} mode="markdown" theme="tomorrow"
  18. value={note.content} height="500px" width="inherit" onChange={value => update({...note, content: value})} /></Card>
  19. <Card className="preview"><div dangerouslySetInnerHTML={{__html: md.render(note.content)}}></div></Card>
  20. </div>
  21. </div>
  22. export default Note