diff --git a/editors/demo/package.json b/editors/demo/package.json index ce8eafc3658f72e0b83a0d6288c773d759cbecd7..d9bcaec31918f95c6c3a622f76da4874cc27815f 100644 --- a/editors/demo/package.json +++ b/editors/demo/package.json @@ -6,7 +6,6 @@ "@guardian/prosemirror-invisibles": "^1.2.0", "@pubsweet/ui-toolkit": "^2.3.1", "fontsource-merriweather": "^3.0.9", - "prosemirror-tables": "^1.1.1", "react": "^16.13.1", "react-dom": "^16.13.1", "react-panelgroup": "^1.0.10", diff --git a/wax-prosemirror-components/index.js b/wax-prosemirror-components/index.js index 035796f961edca2a9de90e9da1d5b10b4062acab..c17751b53d88fa5d3b3f7727f295940b2b85189c 100644 --- a/wax-prosemirror-components/index.js +++ b/wax-prosemirror-components/index.js @@ -3,12 +3,10 @@ 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 Icon } from './src/helpers/Icon'; -export { default as TableDropDown } from './src/components/tables/TableDropDown'; export { default as TitleButton } from './src/components/TitleButton'; export { default as ToolGroupComponent } from './src/components/ToolGroupComponent'; export { default as ToolGroups } from './src/components/ToolGroups'; -export { default as CreateTable } from './src/components/tables/CreateTable'; export { default as Tabs } from './src/ui/tabs/Tabs'; export { default as BlockLevelTools } from './src/ui/tabs/BlockLevelTools'; export { default as EditorInfoTool } from './src/components/EditorInfo/CounterInfo/EditorInfoTool'; diff --git a/wax-prosemirror-components/src/helpers/useOnClickOutside.js b/wax-prosemirror-components/src/helpers/useOnClickOutside.js deleted file mode 100644 index 25dffb0b9611c8214b26e0949efdf18f33336967..0000000000000000000000000000000000000000 --- a/wax-prosemirror-components/src/helpers/useOnClickOutside.js +++ /dev/null @@ -1,25 +0,0 @@ -import { useEffect } from 'react'; - -// Hook -const useOnClickOutside = (ref, handler) => { - useEffect(() => { - const listener = event => { - /* Do nothing if clicking ref's element or descendent elements */ - if (!ref.current || ref.current.contains(event.target)) { - return; - } - - handler(event); - }; - - document.addEventListener('mousedown', listener); - document.addEventListener('touchstart', listener); - - return () => { - document.removeEventListener('mousedown', listener); - document.removeEventListener('touchstart', listener); - }; - }, [ref, handler]); -}; - -export default useOnClickOutside; diff --git a/wax-prosemirror-services/package.json b/wax-prosemirror-services/package.json index 4b53308fa85ff0d8a45de137f23e589517b33379..61da46e69f6aca4037890faad6220b88540b7fba 100644 --- a/wax-prosemirror-services/package.json +++ b/wax-prosemirror-services/package.json @@ -37,7 +37,8 @@ "wax-prosemirror-components": "^0.6.5", "wax-prosemirror-core": "^0.6.5", "@pubsweet/ui-toolkit": "^2.3.1", - "prop-types": "^15.7.2" + "prop-types": "^15.7.2", + "prosemirror-tables": "^1.1.1" }, "peerDependencies": { "react": "^16.13.1", diff --git a/wax-prosemirror-services/src/TablesService/EditTableService/TableDropDownOptions.js b/wax-prosemirror-services/src/TablesService/EditTableService/TableDropDownOptions.js index ea2150b28da1b23d7e769068c6acaf4b30a762e0..eb7de94ed06613ad2c12d55b3dc31da8e3f0eed8 100644 --- a/wax-prosemirror-services/src/TablesService/EditTableService/TableDropDownOptions.js +++ b/wax-prosemirror-services/src/TablesService/EditTableService/TableDropDownOptions.js @@ -3,8 +3,8 @@ import React from 'react'; import { v4 as uuidv4 } from 'uuid'; import { injectable } from 'inversify'; import { isEmpty } from 'lodash'; -import { TableDropDown } from 'wax-prosemirror-components'; import { Commands, Tools } from 'wax-prosemirror-core'; +import TableDropDown from '../components/TableDropDown'; @injectable() export default class TableDropDownOptions extends Tools { @@ -31,7 +31,7 @@ export default class TableDropDownOptions extends Tools { renderTool(view) { if (isEmpty(view)) return null; return this._isDisplayed ? ( - <TableDropDown key={uuidv4()} item={this.toJSON()} view={view} /> + <TableDropDown item={this.toJSON()} key={uuidv4()} view={view} /> ) : null; } } diff --git a/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js b/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js index bec9a069215b67a7a20b4f7f0df3206b2354a6fe..1c66b83f5ea40c87a0506c97d243638705eb53e1 100644 --- a/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js +++ b/wax-prosemirror-services/src/TablesService/InsertTableService/Table.js @@ -2,8 +2,8 @@ import React from 'react'; import { isEmpty } from 'lodash'; import { v4 as uuidv4 } from 'uuid'; import { injectable } from 'inversify'; -import { CreateTable } from 'wax-prosemirror-components'; import { Commands, Tools } from 'wax-prosemirror-core'; +import CreateTable from '../components/CreateTable'; @injectable() export default class Table extends Tools { @@ -36,8 +36,9 @@ export default class Table extends Tools { renderTool(view) { if (isEmpty(view)) return null; + // eslint-disable-next-line no-underscore-dangle return this._isDisplayed ? ( - <CreateTable key={uuidv4()} item={this.toJSON()} view={view} /> + <CreateTable item={this.toJSON()} key={uuidv4()} view={view} /> ) : null; } } diff --git a/wax-prosemirror-components/src/components/tables/CreateTable.js b/wax-prosemirror-services/src/TablesService/components/CreateTable.js similarity index 93% rename from wax-prosemirror-components/src/components/tables/CreateTable.js rename to wax-prosemirror-services/src/TablesService/components/CreateTable.js index 8d16978214cd2ec6b81a2de687b6afd326a02f4b..c5bed82141e75c9489fca3a02f3d867d9cdd579d 100644 --- a/wax-prosemirror-components/src/components/tables/CreateTable.js +++ b/wax-prosemirror-services/src/TablesService/components/CreateTable.js @@ -3,8 +3,8 @@ import React, { useState, useContext, useMemo, useRef } from 'react'; import { WaxContext, useOnClickOutside } from 'wax-prosemirror-core'; import styled from 'styled-components'; import { grid } from '@pubsweet/ui-toolkit'; -import MenuButton from '../../ui/buttons/MenuButton'; -import InsertTableTool from '../../ui/tables/InsertTableTool'; +import { MenuButton } from 'wax-prosemirror-components'; +import InsertTableTool from './InsertTableTool'; const Wrapper = styled.div` font-size: 0; diff --git a/wax-prosemirror-components/src/ui/tables/InsertTableTool.js b/wax-prosemirror-services/src/TablesService/components/InsertTableTool.js similarity index 100% rename from wax-prosemirror-components/src/ui/tables/InsertTableTool.js rename to wax-prosemirror-services/src/TablesService/components/InsertTableTool.js diff --git a/wax-prosemirror-components/src/components/tables/TableDropDown.js b/wax-prosemirror-services/src/TablesService/components/TableDropDown.js similarity index 100% rename from wax-prosemirror-components/src/components/tables/TableDropDown.js rename to wax-prosemirror-services/src/TablesService/components/TableDropDown.js