DeleteAllShareLinksModal.jsx 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import React, { useCallback } from 'react';
  2. import { useTranslation } from 'next-i18next';
  3. import PropTypes from 'prop-types';
  4. import {
  5. Button, Modal, ModalHeader, ModalBody, ModalFooter,
  6. } from 'reactstrap';
  7. const DeleteAllShareLinksModal = React.memo((props) => {
  8. const { t, onClickDeleteButton, onClose } = props;
  9. const deleteAllLinkHandler = useCallback(() => {
  10. onClickDeleteButton?.();
  11. onClose?.();
  12. }, [onClickDeleteButton, onClose]);
  13. const closeButtonHandler = useCallback(() => {
  14. onClose?.();
  15. }, [onClose]);
  16. return (
  17. <Modal isOpen={props.isOpen} toggle={closeButtonHandler} className="page-comment-delete-modal">
  18. <ModalHeader tag="h4" toggle={closeButtonHandler} className="bg-danger text-light">
  19. <span className="d-flex align-items-center">
  20. <span className="material-symbols-outlined me-1">delete_forever</span>
  21. {t('security_settings.delete_all_share_links')}
  22. </span>
  23. </ModalHeader>
  24. <ModalBody>
  25. { t('security_settings.share_link_notice')}
  26. </ModalBody>
  27. <ModalFooter>
  28. <Button onClick={closeButtonHandler}>{t('Cancel')}</Button>
  29. <Button color="danger" onClick={deleteAllLinkHandler} className="d-flex">
  30. <span className="material-symbols-outlined">delete_forever</span>{t('Delete')}
  31. </Button>
  32. </ModalFooter>
  33. </Modal>
  34. );
  35. });
  36. DeleteAllShareLinksModal.displayName = 'DeleteAllShareLinksModal';
  37. DeleteAllShareLinksModal.propTypes = {
  38. t: PropTypes.func.isRequired, // i18next
  39. isOpen: PropTypes.bool.isRequired,
  40. onClose: PropTypes.func,
  41. onClickDeleteButton: PropTypes.func,
  42. };
  43. // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
  44. const DeleteAllShareLinksModalWrapperFC = (props) => {
  45. const { t } = useTranslation('admin');
  46. return <DeleteAllShareLinksModal t={t} {...props} />;
  47. };
  48. export default DeleteAllShareLinksModalWrapperFC;