From 6a52853d6ff4ae727dc33195447f03424e690f17 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Sat, 19 Nov 2022 17:53:40 +0200
Subject: [PATCH] move tables

---
 editors/demo/package.json                     |  1 -
 wax-prosemirror-components/index.js           |  2 --
 .../src/helpers/useOnClickOutside.js          | 25 -------------------
 wax-prosemirror-services/package.json         |  3 ++-
 .../EditTableService/TableDropDownOptions.js  |  4 +--
 .../TablesService/InsertTableService/Table.js |  5 ++--
 .../TablesService/components}/CreateTable.js  |  4 +--
 .../components}/InsertTableTool.js            |  0
 .../components}/TableDropDown.js              |  0
 9 files changed, 9 insertions(+), 35 deletions(-)
 delete mode 100644 wax-prosemirror-components/src/helpers/useOnClickOutside.js
 rename {wax-prosemirror-components/src/components/tables => wax-prosemirror-services/src/TablesService/components}/CreateTable.js (93%)
 rename {wax-prosemirror-components/src/ui/tables => wax-prosemirror-services/src/TablesService/components}/InsertTableTool.js (100%)
 rename {wax-prosemirror-components/src/components/tables => wax-prosemirror-services/src/TablesService/components}/TableDropDown.js (100%)

diff --git a/editors/demo/package.json b/editors/demo/package.json
index ce8eafc36..d9bcaec31 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 035796f96..c17751b53 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 25dffb0b9..000000000
--- 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 4b53308fa..61da46e69 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 ea2150b28..eb7de94ed 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 bec9a0692..1c66b83f5 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 8d1697821..c5bed8214 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
-- 
GitLab