diff --git a/wax-prosemirror-components/index.js b/wax-prosemirror-components/index.js index 6b8a47e799e03e47d805fc978d278ee760cfeac8..7b19bfe9f1327858e92167fb76f6dda11112b42b 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 14f7c44e6d8772075e4f4b76d4c7e6b4190377b3..992be55df97356fd3ee82b1c747f7bb701a1fe37 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 2d91b820f7f6013a89740e4cd1571d61a7474e9f..fcbcdb459a570ecca38fa5b77bef65d2d3a90968 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 1477ed41f912985ff94ba4ac477f1237cfdf724c..4e6ada5e7beff42e2e825690e6de06e1ab9ba10f 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 61b65e239a4c3fa3084a07d68c3b0507a0960c8a..9df3369d954320d25d919ae9820774655451d5d2 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 2c090f96ec1c86b1b236199808397ae71f8949ef..eb1f230b2263141e3fa72b58d9242d74d78bae49 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 f13d6e90139e4aa9997f36a8ff723e4c478d4215..cd72a2f265fe214602062d2bd1478991570b101d 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 50aa7e657a0a9707db09790da3391f6397f0a057..2781908a212d88b10a4f1421545a9228166069ba 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 573530f898baeb16638a8b135c077491feb3b050..f6a92e4883432a844e3380e150f7f41d5611eabf 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, }; }