DeleteSlackBotSettingsModal.jsx 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import React 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 DeleteSlackBotSettingsModal = React.memo((props) => {
  8. const { t } = useTranslation();
  9. function closeModal() {
  10. if (props.onClose == null) {
  11. return;
  12. }
  13. props.onClose();
  14. }
  15. function deleteSlackCredentialsHandler() {
  16. if (props.onClickDeleteButton == null) {
  17. return;
  18. }
  19. props.onClickDeleteButton();
  20. closeModal();
  21. }
  22. function closeButtonHandler() {
  23. closeModal();
  24. }
  25. return (
  26. <Modal isOpen={props.isOpen} toggle={closeButtonHandler} className="page-comment-delete-modal">
  27. <ModalHeader tag="h4" toggle={closeButtonHandler} className="bg-danger text-light">
  28. <span>
  29. {props.isResetAll && (
  30. <>
  31. <i className="icon-fw icon-fire" />
  32. {t('admin:slack_integration.reset_all_settings')}
  33. </>
  34. )}
  35. {!props.isResetAll && (
  36. <>
  37. <i className="icon-trash mr-1" />
  38. {t('admin:slack_integration.delete_slackbot_settings')}
  39. </>
  40. )}
  41. </span>
  42. </ModalHeader>
  43. <ModalBody>
  44. {props.isResetAll && (
  45. <span
  46. // eslint-disable-next-line react/no-danger
  47. dangerouslySetInnerHTML={{ __html: t('admin:slack_integration.all_settings_of_the_bot_will_be_reset') }}
  48. />
  49. )}
  50. {!props.isResetAll && (
  51. <span
  52. // eslint-disable-next-line react/no-danger
  53. dangerouslySetInnerHTML={{ __html: t('admin:slack_integration.slackbot_settings_notice') }}
  54. />
  55. )}
  56. </ModalBody>
  57. <ModalFooter>
  58. <Button onClick={closeButtonHandler}>{t('Cancel')}</Button>
  59. <Button color="danger" onClick={deleteSlackCredentialsHandler}>
  60. {props.isResetAll && (
  61. <>
  62. <i className="icon icon-fire"></i>
  63. {t('admin:slack_integration.reset')}
  64. </>
  65. )}
  66. {!props.isResetAll && (
  67. <>
  68. <i className="icon-trash mr-1" />
  69. {t('admin:slack_integration.delete')}
  70. </>
  71. )}
  72. </Button>
  73. </ModalFooter>
  74. </Modal>
  75. );
  76. });
  77. DeleteSlackBotSettingsModal.propTypes = {
  78. isResetAll: PropTypes.bool.isRequired,
  79. isOpen: PropTypes.bool.isRequired,
  80. onClose: PropTypes.func,
  81. onClickDeleteButton: PropTypes.func,
  82. };
  83. DeleteSlackBotSettingsModal.displayName = 'DeleteSlackBotSettingsModal';
  84. export default DeleteSlackBotSettingsModal;