import React from 'react';
import PropTypes from 'prop-types';
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { gettext, siteRoot } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import moment from 'moment';
import editorUtilities from '../../utils/editor-utilities';
import toaster from '../../components/toast';
import { Utils } from '../../utils/utils';
import Draft from '../../models/draft';
const propTypes = {
repoID: PropTypes.string.isRequired,
toggle: PropTypes.func.isRequired,
};
class ListRepoDraftsDialog extends React.Component {
constructor(props) {
super(props);
this.state = {
drafts: [],
};
}
componentDidMount() {
seafileAPI.listRepoDrafts(this.props.repoID).then(res => {
let drafts = res.data.drafts.map(item => {
let draft = new Draft(item);
return draft;
});
this.setState({
drafts: drafts
});
});
}
onDeleteDraftItem = (draft) => {
editorUtilities.deleteDraft(draft.id).then(() => {
let drafts = this.state.drafts.filter(item => {
return item.id !== draft.id;
});
this.setState({drafts: drafts});
let msg = gettext('Successfully deleted draft %(draft)s.');
msg = msg.replace('%(draft)s', draft.draftFilePath);
toaster.success(msg);
}).catch(() => {
let msg = gettext('Failed to delete draft %(draft)s.');
msg = msg.replace('%(draft)s', draft.draftFilePath);
toaster.danger(msg);
});
}
toggle = () => {
this.props.toggle();
}
render() {
return (
{this.state.drafts.map((item, index) => {
return (
{gettext('Name')}
{gettext('Owner')}
{gettext('Last Update')}