ArchiveFilesTableMenu.jsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. import { withUnstatedContainers } from '../../UnstatedUtils';
  5. import AppContainer from '~/client/services/AppContainer';
  6. // import { toastSuccess, toastError } from '~/client/util/apiNotification';
  7. class ArchiveFilesTableMenu extends React.Component {
  8. render() {
  9. const { t } = this.props;
  10. return (
  11. <div className="btn-group admin-user-menu dropdown">
  12. <button type="button" className="btn btn-sm btn-outline-secondary dropdown-toggle" data-toggle="dropdown">
  13. <i className="icon-settings"></i> <span className="caret"></span>
  14. </button>
  15. <ul className="dropdown-menu" role="menu">
  16. <li className="dropdown-header">{t('admin:export_management.export_menu')}</li>
  17. <button type="button" className="dropdown-item" onClick={() => { window.location.href = `/admin/export/${this.props.fileName}` }}>
  18. <i className="icon-cloud-download" /> {t('admin:export_management.download')}
  19. </button>
  20. <button type="button" className="dropdown-item" role="button" onClick={() => this.props.onZipFileStatRemove(this.props.fileName)}>
  21. <span className="text-danger"><i className="icon-trash" /> {t('admin:export_management.delete')}</span>
  22. </button>
  23. </ul>
  24. </div>
  25. );
  26. }
  27. }
  28. ArchiveFilesTableMenu.propTypes = {
  29. t: PropTypes.func.isRequired, // i18next
  30. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  31. fileName: PropTypes.string.isRequired,
  32. onZipFileStatRemove: PropTypes.func.isRequired,
  33. };
  34. /**
  35. * Wrapper component for using unstated
  36. */
  37. const ArchiveFilesTableMenuWrapper = withUnstatedContainers(ArchiveFilesTableMenu, [AppContainer]);
  38. export default withTranslation()(ArchiveFilesTableMenuWrapper);