Skip to content
Snippets Groups Projects
Button.js 1.44 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 }) => {
  const { active, enable, icon, label, onlyOnMain, run, title } = item;
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;

Yannis Barlas's avatar
Yannis Barlas committed
  const handleMouseDown = e => {
chris's avatar
chris committed
    e.preventDefault();
Yannis Barlas's avatar
Yannis Barlas committed
    run(state, dispatch);
  };

  const isActive = active && active(state);

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

  return (
Yannis Barlas's avatar
Yannis Barlas committed
    <MenuButton
      active={isActive}
      disabled={isDisabled}
      iconName={icon}
      label={label}
Yannis Barlas's avatar
Yannis Barlas committed
      onMouseDown={handleMouseDown}
Yannis Barlas's avatar
Yannis Barlas committed
      title={title}
    />
chris's avatar
chris committed

export default Button;