import React from 'react'; import PropTypes from 'prop-types'; import { gettext } from '../../components/constants'; import CommonToolbar from '../../components/toolbar/common-toolbar'; import Loading from '../../components/loading'; import ListView from '../../components/list-view/list-view'; import ListMenu from '../../components/list-view/list-menu'; const propTypes = { isLoadingDraft: PropTypes.bool.isRequired, draftList: PropTypes.array.isRequired, publishDraft: PropTypes.func.isRequired, deleteDraft: PropTypes.func.isRequired }; class MainPanel extends React.Component { constructor(props) { super(props); this.state = { isMenuShow: false, menuPosition: {top:'', left: ''}, currentDraft: null, isItemFreezed: false, }; } componentDidMount() { document.addEventListener('click', this.onHideContextMenu); } componentWillUnmount() { document.removeEventListener('click', this.onHideContextMenu); } onMenuToggleClick = (e, draft) => { if (this.state.isMenuShow) { this.onHideContextMenu(); } else { this.onShowContextMenu(e, draft); } } onShowContextMenu = (e, draft) => { let left = e.clientX - 8*16; let top = e.clientY + 10; let position = {top: top, left: left}; this.setState({ isMenuShow: true, menuPosition: position, currentDraft: draft, isItemFreezed: true }); } onHideContextMenu = () => { this.setState({ isMenuShow: false, currentDraft: null, isItemFreezed: false }); } onPublishHandler = () => { this.props.publishDraft(this.state.currentDraft); } onDeleteHandler = () => { this.props.deleteDraft(this.state.currentDraft); } onSearchedClick = () => { //todos; } render() { return (