EmptyTrashModal.jsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import {
  4. Modal, ModalHeader, ModalBody, ModalFooter,
  5. } from 'reactstrap';
  6. import { withTranslation } from 'react-i18next';
  7. import { createSubscribedElement } from './UnstatedUtils';
  8. import AppContainer from '../services/AppContainer';
  9. const EmptyTrashModal = (props) => {
  10. const {
  11. t, isOpen, toggle, onClickSubmit,
  12. } = props;
  13. return (
  14. <Modal isOpen={isOpen} toggle={toggle} className="grw-create-page">
  15. <ModalHeader tag="h4" toggle={toggle} className="bg-danger text-light">
  16. { t('modal_empty.empty_the_trash')}
  17. </ModalHeader>
  18. <ModalBody>
  19. { t('modal_empty.notice')}
  20. </ModalBody>
  21. <ModalFooter>
  22. {/* TODO add error message */}
  23. <button type="button" className="btn btn-danger" onClick={onClickSubmit}>
  24. <i className="icon-trash mr-2" aria-hidden="true"></i>Empty
  25. </button>
  26. </ModalFooter>
  27. </Modal>
  28. );
  29. };
  30. /**
  31. * Wrapper component for using unstated
  32. */
  33. const EmptyTrashModalWrapper = (props) => {
  34. return createSubscribedElement(EmptyTrashModal, props, [AppContainer]);
  35. };
  36. EmptyTrashModal.propTypes = {
  37. t: PropTypes.func.isRequired, // i18next
  38. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  39. isOpen: PropTypes.bool.isRequired,
  40. toggle: PropTypes.func.isRequired,
  41. onClickSubmit: PropTypes.func.isRequired,
  42. };
  43. export default withTranslation()(EmptyTrashModalWrapper);