From 4d15fa52b87fd2fd4186ff83f0bc849e19a31289 Mon Sep 17 00:00:00 2001 From: dominik-zeglen Date: Thu, 5 Nov 2020 17:32:55 +0100 Subject: [PATCH] Add undo ability --- package-lock.json | 5 +++++ package.json | 1 + src/components/RichTextEditor/RichTextEditor.tsx | 9 ++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index bd2e536dd..99cf8bf48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10350,6 +10350,11 @@ "resolved": "https://registry.npmjs.org/editorjs-inline-tool/-/editorjs-inline-tool-0.4.0.tgz", "integrity": "sha512-Ppb4e8IFPjWuNcoNM4tg9bDSo7FgMYAlqP4UhuV5W2JoJBubV5pUcpLrFrSyGTt1HJVEpbrib134zf4wxO+7VA==" }, + "editorjs-undo": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/editorjs-undo/-/editorjs-undo-0.1.4.tgz", + "integrity": "sha512-YW+5x8tqMXQ+iQD+1OrroqUT1O/erDrysZLJ+8yB+zjls55rwUw9P7hdQCJ0DFm+WDSaRuEXb2p3dQ6VdrkYCg==" + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", diff --git a/package.json b/package.json index a589c198e..f9f472a16 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "draftail": "^1.2.1", "draftjs-to-html": "^0.9.1", "editorjs-inline-tool": "^0.4.0", + "editorjs-undo": "^0.1.4", "fast-array-diff": "^0.2.0", "fuzzaldrin": "^2.1.0", "graphql": "^14.4.2", diff --git a/src/components/RichTextEditor/RichTextEditor.tsx b/src/components/RichTextEditor/RichTextEditor.tsx index f853f205a..cc17b8de8 100644 --- a/src/components/RichTextEditor/RichTextEditor.tsx +++ b/src/components/RichTextEditor/RichTextEditor.tsx @@ -3,6 +3,7 @@ import FormControl from "@material-ui/core/FormControl"; import FormHelperText from "@material-ui/core/FormHelperText"; import InputLabel from "@material-ui/core/InputLabel"; import classNames from "classnames"; +import Undo from "editorjs-undo"; import React from "react"; import { RichTextEditorContentProps, tools } from "./RichTextEditorContent"; @@ -43,7 +44,13 @@ const RichTextEditor: React.FC = ({ const savedData = await api.saver.save(); onChange(savedData); }, - onReady, + onReady: () => { + const undo = new Undo({ editor }); + undo.initialize(data); + if (onReady) { + onReady(); + } + }, readOnly: disabled, tools });