import React from 'react';
import PropTypes from 'prop-types';
import { withTranslation } from 'react-i18next';
import { format } from 'date-fns';
import { createSubscribedElement } from '../../UnstatedUtils';
import AppContainer from '../../../services/AppContainer';
// import { toastSuccess, toastError } from '../../../util/apiNotification';
class ZipFileTable extends React.Component {
constructor(props) {
super(props);
this.deleteZipFile = this.deleteZipFile.bind(this);
}
async deleteZipFile(zipFile) {
// TODO use appContainer.apiv3.delete
await this.props.appContainer.apiRequest('delete', `/v3/export/${zipFile}`, {});
this.props.removeZipFileStat(zipFile);
// TODO toastSuccess, toastError
}
render() {
// const { t } = this.props;
return (
| File |
Growi Version |
Collections |
Exported At |
|
{this.props.zipFileStats.map(({ meta, fileName, fileStats }) => {
return (
| {fileName} |
{meta.version} |
{fileStats.map(fileStat => fileStat.collectionName).join(', ')} |
{meta.exportedAt ? format(new Date(meta.exportedAt), 'yyyy/MM/dd HH:mm:ss') : ''} |
|
);
})}
);
}
}
ZipFileTable.propTypes = {
t: PropTypes.func.isRequired, // i18next
appContainer: PropTypes.instanceOf(AppContainer).isRequired,
zipFileStats: PropTypes.arrayOf(PropTypes.object).isRequired,
removeZipFileStat: PropTypes.func.isRequired,
};
/**
* Wrapper component for using unstated
*/
const ZipFileTableWrapper = (props) => {
return createSubscribedElement(ZipFileTable, props, [AppContainer]);
};
export default withTranslation()(ZipFileTableWrapper);