import React from 'react'; import { gettext } from '../../components/constants'; import editUtilties from '../../utils/editor-utilties'; import Loading from '../../components/loading'; import ListView from '../../components/list-view/list-view'; import ListMenu from '../../components/list-view/list-menu'; class DraftsView extends React.Component { constructor(props) { super(props); this.state = { draftList: [], isLoadingDraft: true, isMenuShow: false, menuPosition: {top:'', left: ''}, currentDraft: null, isItemFreezed: false, }; } componentDidMount() { this.initDraftList(); document.addEventListener('click', this.onHideContextMenu); } componentWillUnmount() { document.removeEventListener('click', this.onHideContextMenu); } initDraftList() { this.setState({isLoadingDraft: true}); editUtilties.listDrafts().then(res => { this.setState({ draftList: res.data.data, isLoadingDraft: false, }); }); } onDeleteHandler = () => { let draft = this.state.currentDraft; editUtilties.deleteDraft(draft.id).then(res => { this.initDraftList(); }); } onPublishHandler = () => { let draft = this.state.currentDraft; editUtilties.publishDraft(draft.id).then(res => { this.initDraftList(); }); } 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 }); } render() { return (