From 0f24a5f15deb732b86bf51a66ce7dd942972f30c Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Wed, 7 Apr 2021 16:34:51 +0300
Subject: [PATCH] fix tables

---
 wax-prosemirror-components/package.json       |  2 +-
 .../src/components/TableDropDown.js           | 48 +++++++++++--------
 wax-prosemirror-core/package.json             |  2 +-
 wax-prosemirror-plugins/package.json          |  2 +-
 wax-prosemirror-schema/package.json           |  2 +-
 wax-prosemirror-services/package.json         |  2 +-
 wax-prosemirror-utilities/package.json        |  2 +-
 7 files changed, 35 insertions(+), 25 deletions(-)

diff --git a/wax-prosemirror-components/package.json b/wax-prosemirror-components/package.json
index 1d120e4e3..591526e91 100644
--- a/wax-prosemirror-components/package.json
+++ b/wax-prosemirror-components/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror UI components",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],
diff --git a/wax-prosemirror-components/src/components/TableDropDown.js b/wax-prosemirror-components/src/components/TableDropDown.js
index 5fa779bc5..919af7c56 100644
--- a/wax-prosemirror-components/src/components/TableDropDown.js
+++ b/wax-prosemirror-components/src/components/TableDropDown.js
@@ -1,6 +1,5 @@
 /* eslint react/prop-types: 0 */
-import React, { useMemo, useContext, useState } from 'react';
-import { TextSelection } from 'prosemirror-state';
+import React, { useMemo, useContext, useState, useEffect } from 'react';
 import styled from 'styled-components';
 import * as tablesFn from 'prosemirror-tables';
 import { WaxContext } from 'wax-prosemirror-core';
@@ -37,26 +36,37 @@ const DropdownStyled = styled(Dropdown)`
   }
 `;
 
-const dropDownOptions = [
-  { label: 'add column before', value: 'addColumnBefore' },
-  { label: 'add column after', value: 'addColumnAfter' },
-  { label: 'Delete column', value: 'deleteColumn' },
-  { label: 'Insert row before', value: 'addRowBefore' },
-  { label: 'Insert row after', value: 'addRowAfter' },
-  { label: 'Delete row', value: 'deleteRow' },
-  { label: 'Delete table', value: 'deleteTable' },
-  { label: 'Merge cells', value: 'mergeCells' },
-  { label: 'Split cell', value: 'splitCell' },
-  { label: 'Toggle header column', value: 'toggleHeaderColumn' },
-  { label: 'Toggle header row', value: 'toggleHeaderRow' },
-  { label: 'Toggle header cells', value: 'toggleHeaderCell' },
-];
-
 const TableDropDown = ({ item }) => {
+  const dropDownOptions = [
+    { label: 'Add column before', value: 'addColumnBefore' },
+    { label: 'Add column after', value: 'addColumnAfter' },
+    { label: 'Delete column', value: 'deleteColumn' },
+    { label: 'Insert row before', value: 'addRowBefore' },
+    { label: 'Insert row after', value: 'addRowAfter' },
+    { label: 'Delete row', value: 'deleteRow' },
+    { label: 'Delete table', value: 'deleteTable' },
+    { label: 'Merge cells', value: 'mergeCells' },
+    { label: 'Split cell', value: 'splitCell' },
+    { label: 'Toggle header column', value: 'toggleHeaderColumn' },
+    { label: 'Toggle header row', value: 'toggleHeaderRow' },
+    { label: 'Toggle header cells', value: 'toggleHeaderCell' },
+  ];
+
   const { activeView } = useContext(WaxContext);
   const [selectedOption, setSelectedOption] = useState('');
+  const appliedDropDownOptions = [];
 
+  dropDownOptions.forEach(option => {
+    if (tablesFn[option.value](activeView.state)) {
+      appliedDropDownOptions.push(option);
+    }
+  });
   const isDisabled = item.select(activeView.state);
+
+  useEffect(() => {
+    console.log('useEfe');
+  }, [selectedOption]);
+
   const TableDropDownComponent = useMemo(
     () => (
       <DropdownStyled
@@ -72,12 +82,12 @@ const TableDropDown = ({ item }) => {
             activeView.focus();
           });
         }}
-        options={dropDownOptions}
+        options={appliedDropDownOptions}
         placeholder="Table Options"
         select={isDisabled}
       />
     ),
-    [isDisabled, selectedOption],
+    [isDisabled, selectedOption, appliedDropDownOptions],
   );
 
   return TableDropDownComponent;
diff --git a/wax-prosemirror-core/package.json b/wax-prosemirror-core/package.json
index a62b2a816..9c567257e 100644
--- a/wax-prosemirror-core/package.json
+++ b/wax-prosemirror-core/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror core",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],
diff --git a/wax-prosemirror-plugins/package.json b/wax-prosemirror-plugins/package.json
index 1c7f813ed..932bdabec 100644
--- a/wax-prosemirror-plugins/package.json
+++ b/wax-prosemirror-plugins/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror plugins",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],
diff --git a/wax-prosemirror-schema/package.json b/wax-prosemirror-schema/package.json
index 0b8d338fb..aff9089ee 100644
--- a/wax-prosemirror-schema/package.json
+++ b/wax-prosemirror-schema/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror schema",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],
diff --git a/wax-prosemirror-services/package.json b/wax-prosemirror-services/package.json
index f9491b3e2..84ffa4980 100644
--- a/wax-prosemirror-services/package.json
+++ b/wax-prosemirror-services/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror services",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],
diff --git a/wax-prosemirror-utilities/package.json b/wax-prosemirror-utilities/package.json
index 8374e65e9..603640748 100644
--- a/wax-prosemirror-utilities/package.json
+++ b/wax-prosemirror-utilities/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.42",
   "description": "Wax prosemirror utilities",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "files": [
     "dist"
   ],
-- 
GitLab