Skip to content
Snippets Groups Projects
CreateTable.js 2.51 KiB
Newer Older
chris's avatar
chris committed
/* eslint react/prop-types: 0 */
import React, { useState, useContext } from 'react';
Yannis Barlas's avatar
Yannis Barlas committed
// import styled from 'styled-components';
// import { ButtonStyles } from 'wax-prosemirror-themes';
chris's avatar
chris committed
import { WaxContext } from 'wax-prosemirror-core';
Yannis Barlas's avatar
Yannis Barlas committed

import Dropdown from '../../ui/buttons/Dropdown';
chris's avatar
chris committed
import InsertTableTool from '../../ui/tables/InsertTableTool';

Yannis Barlas's avatar
Yannis Barlas committed
// const ButtonStyled = styled.button`
//   ${ButtonStyles};
//   opacity: ${props => (props.select ? 1 : 0.4)};
//   pointer-events: ${props => (props.select ? 'default' : 'none')};
//   color: ${props => (props.isActive ? 'white' : props.theme.colorButton)};
//   background-color: ${props =>
//     props.isActive ? props.theme.colorPrimary : 'transparent'};
//   &:hover {
//     background-color: ${props =>
//       props.isActive ? props.theme.colorPrimary : 'transparent'};
//   }
// `;
chris's avatar
chris committed

Yannis Barlas's avatar
Yannis Barlas committed
// const InsertTableToolContainer = styled.div`
//   display: block !important;
//   height: auto;
//   top: 53px;
//   left: 556px;
//   position: absolute;
// `;
chris's avatar
chris committed

const CreateTable = ({ view = {}, item }) => {
  const {
    view: { main },
Yannis Barlas's avatar
Yannis Barlas committed
    // activeViewId,
chris's avatar
chris committed
  } = useContext(WaxContext);
  if (item.onlyOnMain) {
    view = main;
  }

  const { state, dispatch } = view;
  const [isTableToolDisplayed, setTableToolDisplay] = useState(false);

Yannis Barlas's avatar
Yannis Barlas committed
  // const CreateButton = (
  //   <ButtonStyled
  //     type="button"
  //     isActive={isTableToolDisplayed}
  //     title={item.title}
  //     disabled={item.enable && !item.enable(view.state)}
  //     onMouseDown={e => {
  //       e.preventDefault();
  //       setTableToolDisplay(!isTableToolDisplayed);
  //     }}
  //     select={item.select && item.select(view.state, activeViewId)}
  //   >
  //     {item.content}
  //   </ButtonStyled>
  // );
  // return isTableToolDisplayed ? (
  //   <>
  //     {CreateButton}
  //     <InsertTableToolContainer>
  //       <InsertTableTool
  //         onGridSelect={colRows => {
  //           item.run(colRows, state, dispatch);
  //         }}
  //       />
  //     </InsertTableToolContainer>
  //   </>
  // ) : (
  //   <>{CreateButton}</>
  // );

  // select pending
  return (
    <Dropdown
      active={isTableToolDisplayed}
      dropComponent={
chris's avatar
chris committed
        <InsertTableTool
          onGridSelect={colRows => {
chris's avatar
chris committed
            item.run(colRows, state, dispatch);
chris's avatar
chris committed
          }}
        />
Yannis Barlas's avatar
Yannis Barlas committed
      }
      iconName={item.icon}
      disabled={item.enable && !item.enable(view.state)}
      onClick={() => setTableToolDisplay(!isTableToolDisplayed)}
      title={item.title}
    />
chris's avatar
chris committed
  );
};

export default CreateTable;