Skip to content
Snippets Groups Projects
Button.js 1.9 KiB
Newer Older
chris's avatar
chris committed
import React, { 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 MenuButton from '../ui/buttons/MenuButton';
chris's avatar
chris committed

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

const Button = ({ view = {}, item }) => {
Yannis Barlas's avatar
Yannis Barlas committed
  const { active, enable, icon, onlyOnMain, run, title } = item;

  // let view = {};

chris's avatar
chris committed
  const {
    view: { main },
Yannis Barlas's avatar
Yannis Barlas committed
    // activeViewId,
chris's avatar
chris committed
  } = useContext(WaxContext);
Yannis Barlas's avatar
Yannis Barlas committed

  if (onlyOnMain) view = main;

  const { dispatch, state } = view;

  const handleClick = e => {
    // e.preventDefault();
    run(state, dispatch);
  };

  const isActive = active && active(state);

  const isDisabled = enable && !enable(state);
  // &&
  // item.select &&
  // item.select(view.state, activeViewId);

  // console.log(item);

  // return (
  //   <ButtonStyled
  //     type="button"
  //     isActive={item.active && item.active(view.state)}
  //     title={item.title}
  //     disabled={item.enable && !item.enable(view.state)}
  //     onMouseDown={e => {
  //       e.preventDefault();
  //       item.run(view.state, view.dispatch);
  //     }}
  //     select={item.select && item.select(view.state, activeViewId)}
  //   >
  //     {item.content}
  //   </ButtonStyled>
  // );
  return (
Yannis Barlas's avatar
Yannis Barlas committed
    <MenuButton
      active={isActive}
      disabled={isDisabled}
      iconName={icon}
      onClick={handleClick}
      title={title}
    />
chris's avatar
chris committed

export default Button;