react-jodit-editor

React WYSIWYG Editor Which Uses Jodit & Jodit-React In A Simplified Component. Offers both predefined and customizable features to easily include in your project with little effort. Features Include:

Usage no npm install needed!

<script type="module">
  import reactJoditEditor from 'https://cdn.skypack.dev/react-jodit-editor';
</script>

README

React-Jodit-Editor

React WYSIWYG Editor Which Uses Jodit & Jodit-React In A Simplified Component. Offers both predefined and customizable features to easily include in your project with little effort. Features Include:

  • Copy & Pasting HTML content/images to editor.
  • Editor is by default, an iframe editor so content will automatically get sanitized and stay inside editor.
  • Option to manually upload files from local storage and stored in state to use.
  • Option to Drag and drop files on editor which will also add to the stored state for files.
  • Fullsize option with close on escape key.

Demo: https://react-jodit-editor.netlify.app/

Installation

npm install react-jodit-editor --save

Props

Prop Description Type Default
initialValue The initial markdown string string ""
darkMode Changes theme of editor to dark mode boolean false
readOnly Turns editor into a viewer boolean false
height Height of the editor, measure in pixels by default integer 600
customToolbar Toolbar options on editor string "undo,redo,|,bold,italic,underline,strikethrough,|,font,fontsize,brush,|,indent,outdent,|,ul,ol,|,superscript,subscript,eraser,|,table,|,fullsize,print"
overrides Can overwrite any prop in the jodit config see https://xdsoft.net/jodit/doc/options/ object undefined
onChange Change Event For Editor Text function
uploadFiles Files can be attached by dropping on editor or manually upload from local storage function
files State for files to keep track of what is dropped and uploaded to editor can be attached by dropping on editor or manual upload array undefined

Example

import HTMLEditor from "react-jodit-editor";
import ReactDOM from "react-dom";
import React, { useState } from "react";

export default function Test() {
  let [text, setText] = useState("");
  let [files, setFiles] = useState([]);

  console.log(files);
  console.log(text);

  return <HTMLEditor initialValue="Test" onChange={setText} uploadFiles={setFiles} files={files} />;
}

ReactDOM.render(<Test />, document.getElementById("root"));