DeleteSlackBotSettingsModal.tsx 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import React, { useCallback } from 'react';
  2. import { useTranslation } from 'next-i18next';
  3. import {
  4. Button, Modal, ModalHeader, ModalBody, ModalFooter,
  5. } from 'reactstrap';
  6. type DeleteSlackBotSettingsModalProps = {
  7. isResetAll: boolean,
  8. isOpen: boolean,
  9. onClose?: () => void,
  10. onClickDeleteButton?: () => void,
  11. }
  12. export const DeleteSlackBotSettingsModal = React.memo((props: DeleteSlackBotSettingsModalProps) => {
  13. const { t } = useTranslation();
  14. const {
  15. isResetAll, isOpen, onClose, onClickDeleteButton,
  16. } = props;
  17. const deleteSlackCredentialsHandler = useCallback(() => {
  18. onClickDeleteButton?.();
  19. onClose?.();
  20. }, [onClickDeleteButton, onClose]);
  21. const closeButtonHandler = useCallback(() => {
  22. onClose?.();
  23. }, [onClose]);
  24. return (
  25. <Modal isOpen={isOpen} toggle={closeButtonHandler} className="page-comment-delete-modal">
  26. <ModalHeader tag="h4" toggle={closeButtonHandler} className="text-danger">
  27. <span>
  28. {isResetAll && (
  29. <>
  30. <span className="material-symbols-outlined">delete_forever</span>
  31. {t('admin:slack_integration.reset_all_settings')}
  32. </>
  33. )}
  34. {!isResetAll && (
  35. <>
  36. <span className="material-symbols-outlined">delete</span>
  37. {t('admin:slack_integration.delete_slackbot_settings')}
  38. </>
  39. )}
  40. </span>
  41. </ModalHeader>
  42. <ModalBody>
  43. {isResetAll && (
  44. <span
  45. // eslint-disable-next-line react/no-danger
  46. dangerouslySetInnerHTML={{ __html: t('admin:slack_integration.all_settings_of_the_bot_will_be_reset') }}
  47. />
  48. )}
  49. {!isResetAll && (
  50. <span
  51. // eslint-disable-next-line react/no-danger
  52. dangerouslySetInnerHTML={{ __html: t('admin:slack_integration.slackbot_settings_notice') }}
  53. />
  54. )}
  55. </ModalBody>
  56. <ModalFooter>
  57. <Button onClick={closeButtonHandler}>{t('Cancel')}</Button>
  58. <Button color="danger" onClick={deleteSlackCredentialsHandler}>
  59. {isResetAll && (
  60. <>
  61. <span className="material-symbols-outlined">delete_forever</span>
  62. {t('admin:slack_integration.reset')}
  63. </>
  64. )}
  65. {!isResetAll && (
  66. <>
  67. <span className="material-symbols-outlined">delete</span>
  68. {t('admin:slack_integration.delete')}
  69. </>
  70. )}
  71. </Button>
  72. </ModalFooter>
  73. </Modal>
  74. );
  75. });
  76. DeleteSlackBotSettingsModal.displayName = 'DeleteSlackBotSettingsModal';