From ca3cc28a511892d6c007b8f67bebcdb8c55a6ae1 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Thu, 2 Dec 2021 17:19:27 +0200 Subject: [PATCH] fix undo redo cmd --- wax-prosemirror-components/index.js | 1 + wax-prosemirror-components/src/components/Button.js | 4 +--- .../src/components/SaveButton.js | 8 ++++---- .../src/components/TitleButton.js | 4 +--- .../src/components/various/LeftSideButton.js | 4 +--- .../src/BaseService/RedoService/Redo.js | 12 +++++++++++- .../src/BaseService/SaveService/Save.js | 4 ---- .../src/BaseService/UndoService/Undo.js | 12 +++++++++++- wax-prosemirror-services/src/lib/Tools.js | 2 -- 9 files changed, 30 insertions(+), 21 deletions(-) diff --git a/wax-prosemirror-components/index.js b/wax-prosemirror-components/index.js index 6b8a47e79..7b19bfe9f 100644 --- a/wax-prosemirror-components/index.js +++ b/wax-prosemirror-components/index.js @@ -1,5 +1,6 @@ export { default as Overlay } from './src/components/Overlay'; export { default as Button } from './src/components/Button'; +export { default as UndoRedoButton } from './src/components/UndoRedoButton'; export { default as MenuButton } from './src/ui/buttons/MenuButton'; export { default as icons } from './src/icons/icons'; export { default as TableDropDown } from './src/components/tables/TableDropDown'; diff --git a/wax-prosemirror-components/src/components/Button.js b/wax-prosemirror-components/src/components/Button.js index 14f7c44e6..992be55df 100644 --- a/wax-prosemirror-components/src/components/Button.js +++ b/wax-prosemirror-components/src/components/Button.js @@ -4,7 +4,7 @@ import { WaxContext } from 'wax-prosemirror-core'; import MenuButton from '../ui/buttons/MenuButton'; const Button = ({ view = {}, item }) => { - const { active, icon, label, onlyOnMain, run, select, title } = item; + const { active, icon, label, run, select, title } = item; const { view: { main }, @@ -12,8 +12,6 @@ const Button = ({ view = {}, item }) => { activeView, } = useContext(WaxContext); - if (onlyOnMain) view = main; - const isEditable = main.props.editable(editable => { return editable; }); diff --git a/wax-prosemirror-components/src/components/SaveButton.js b/wax-prosemirror-components/src/components/SaveButton.js index 2d91b820f..fcbcdb459 100644 --- a/wax-prosemirror-components/src/components/SaveButton.js +++ b/wax-prosemirror-components/src/components/SaveButton.js @@ -4,7 +4,7 @@ import { WaxContext } from 'wax-prosemirror-core'; import MenuButton from '../ui/buttons/MenuButton'; const SaveButton = ({ view = {}, item }) => { - const { icon, label, onlyOnMain, select, title } = item; + const { icon, label, select, title } = item; const { view: { main }, @@ -12,8 +12,6 @@ const SaveButton = ({ view = {}, item }) => { activeView, } = useContext(WaxContext); - if (onlyOnMain) view = main; - const { state } = view; const [isSaving, setIsSaving] = useState(false); @@ -57,7 +55,9 @@ const SaveButton = ({ view = {}, item }) => { disabled={isDisabled} iconName={iconTodisplay} label={label} - onMouseDown={e => handleMouseDown(e, view.state, view.dispatch)} + onMouseDown={e => + handleMouseDown(e, main.view.state, main.view.dispatch) + } title={title} /> ), diff --git a/wax-prosemirror-components/src/components/TitleButton.js b/wax-prosemirror-components/src/components/TitleButton.js index 1477ed41f..4e6ada5e7 100644 --- a/wax-prosemirror-components/src/components/TitleButton.js +++ b/wax-prosemirror-components/src/components/TitleButton.js @@ -5,7 +5,7 @@ import { DocumentHelpers } from 'wax-prosemirror-utilities'; import MenuButton from '../ui/buttons/MenuButton'; const TitleButton = ({ view = {}, item }) => { - const { active, icon, label, onlyOnMain, run, select, title } = item; + const { active, icon, label, run, select, title } = item; const { app, @@ -14,8 +14,6 @@ const TitleButton = ({ view = {}, item }) => { activeView, } = useContext(WaxContext); - if (onlyOnMain) view = main; - const { dispatch, state } = view; const titleNode = DocumentHelpers.findChildrenByType( diff --git a/wax-prosemirror-components/src/components/various/LeftSideButton.js b/wax-prosemirror-components/src/components/various/LeftSideButton.js index 61b65e239..9df3369d9 100644 --- a/wax-prosemirror-components/src/components/various/LeftSideButton.js +++ b/wax-prosemirror-components/src/components/various/LeftSideButton.js @@ -13,7 +13,7 @@ const StyledButton = styled(MenuButton)` `; const LeftSideButton = ({ view = {}, item }) => { - const { active, icon, label, onlyOnMain, run, select, title } = item; + const { active, icon, label, run, select, title } = item; const { view: { main }, @@ -21,8 +21,6 @@ const LeftSideButton = ({ view = {}, item }) => { activeView, } = useContext(WaxContext); - if (onlyOnMain) view = main; - const isEditable = main.props.editable(editable => { return editable; }); diff --git a/wax-prosemirror-services/src/BaseService/RedoService/Redo.js b/wax-prosemirror-services/src/BaseService/RedoService/Redo.js index 2c090f96e..eb1f230b2 100644 --- a/wax-prosemirror-services/src/BaseService/RedoService/Redo.js +++ b/wax-prosemirror-services/src/BaseService/RedoService/Redo.js @@ -1,5 +1,8 @@ +import React from 'react'; +import { isEmpty } from 'lodash'; import { redo } from 'prosemirror-history'; import { injectable } from 'inversify'; +import { UndoRedoButton } from 'wax-prosemirror-components'; import Tools from '../../lib/Tools'; export default @@ -7,7 +10,6 @@ export default class Redo extends Tools { title = 'Redo'; icon = 'redo'; - onlyOnMain = true; name = 'Redo'; get run() { @@ -23,4 +25,12 @@ class Redo extends Tools { select(state) { return redo(state); } + + renderTool(view) { + if (isEmpty(view)) return null; + // eslint-disable-next-line no-underscore-dangle + return this._isDisplayed ? ( + <UndoRedoButton item={this.toJSON()} key="Redo" view={view} /> + ) : null; + } } diff --git a/wax-prosemirror-services/src/BaseService/SaveService/Save.js b/wax-prosemirror-services/src/BaseService/SaveService/Save.js index f13d6e901..cd72a2f26 100644 --- a/wax-prosemirror-services/src/BaseService/SaveService/Save.js +++ b/wax-prosemirror-services/src/BaseService/SaveService/Save.js @@ -1,7 +1,6 @@ import React from 'react'; import { isEmpty } from 'lodash'; import { injectable } from 'inversify'; - import { SaveButton, icons } from 'wax-prosemirror-components'; import Tools from '../../lib/Tools'; @@ -10,7 +9,6 @@ export default class Save extends Tools { title = 'Save changes'; icon = 'save'; - onlyOnMain = true; name = 'Save'; content = icons.save; name = 'Save'; @@ -21,8 +19,6 @@ class Save extends Tools { }; } - get enable() {} - renderTool(view) { if (isEmpty(view)) return null; // eslint-disable-next-line no-underscore-dangle diff --git a/wax-prosemirror-services/src/BaseService/UndoService/Undo.js b/wax-prosemirror-services/src/BaseService/UndoService/Undo.js index 50aa7e657..2781908a2 100644 --- a/wax-prosemirror-services/src/BaseService/UndoService/Undo.js +++ b/wax-prosemirror-services/src/BaseService/UndoService/Undo.js @@ -1,5 +1,8 @@ +import React from 'react'; +import { isEmpty } from 'lodash'; import { undo } from 'prosemirror-history'; import { injectable } from 'inversify'; +import { UndoRedoButton } from 'wax-prosemirror-components'; import Tools from '../../lib/Tools'; export default @@ -7,7 +10,6 @@ export default class Undo extends Tools { title = 'Undo'; icon = 'undo'; - onlyOnMain = true; name = 'Undo'; get run() { @@ -23,4 +25,12 @@ class Undo extends Tools { select(state) { return undo(state); } + + renderTool(view) { + if (isEmpty(view)) return null; + // eslint-disable-next-line no-underscore-dangle + return this._isDisplayed ? ( + <UndoRedoButton item={this.toJSON()} key="Undo" view={view} /> + ) : null; + } } diff --git a/wax-prosemirror-services/src/lib/Tools.js b/wax-prosemirror-services/src/lib/Tools.js index 573530f89..f6a92e488 100644 --- a/wax-prosemirror-services/src/lib/Tools.js +++ b/wax-prosemirror-services/src/lib/Tools.js @@ -10,7 +10,6 @@ class Tools { title = 'title'; _isDisplayed = true; _isHiddenInToolGroup = false; - onlyOnMain = false; config = {}; pmplugins = {}; name = 'name'; @@ -48,7 +47,6 @@ class Tools { run: this.run, enable: this.enable, select: this.select, - onlyOnMain: this.onlyOnMain, id: this.id, }; } -- GitLab