DownloadDictModal.tsx 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import React, { useState } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import {
  4. Modal, ModalHeader, ModalBody, ModalFooter,
  5. } from 'reactstrap';
  6. type DownloadDictModalProps = {
  7. isModalOpen: boolean
  8. onEnableTextlint?: (isSkipAskingAgainChecked: boolean) => void;
  9. onCancel?: () => void;
  10. };
  11. export const DownloadDictModal = (props: DownloadDictModalProps): JSX.Element => {
  12. const { t } = useTranslation('');
  13. const [isSkipAskingAgainChecked, setIsSkipAskingAgainChecked] = useState(false);
  14. const onCancel = () => {
  15. if (props.onCancel != null) {
  16. props.onCancel();
  17. }
  18. };
  19. const onConfirmEnableTextlint = () => {
  20. if (props.onEnableTextlint != null) {
  21. props.onEnableTextlint(isSkipAskingAgainChecked);
  22. }
  23. };
  24. return (
  25. <Modal isOpen={props.isModalOpen} toggle={onCancel} className="">
  26. <ModalHeader tag="h4" toggle={onCancel} className="bg-warning">
  27. <i className="icon-fw icon-question" />
  28. Warning
  29. </ModalHeader>
  30. <ModalBody>
  31. {t('modal_enable_textlint.confirm_download_dict_and_enable_textlint')}
  32. </ModalBody>
  33. <ModalFooter>
  34. <div className="mr-3 custom-control custom-checkbox custom-checkbox-info">
  35. <input
  36. type="checkbox"
  37. className="custom-control-input"
  38. id="dont-ask-again"
  39. checked={isSkipAskingAgainChecked}
  40. onChange={e => setIsSkipAskingAgainChecked(e.target.checked)}
  41. />
  42. <label className="custom-control-label align-center" htmlFor="dont-ask-again">
  43. {t('modal_enable_textlint.dont_ask_again')}
  44. </label>
  45. </div>
  46. <button
  47. type="button"
  48. className="btn btn-outline-secondary"
  49. onClick={onCancel}
  50. >
  51. {t('Cancel')}
  52. </button>
  53. <button
  54. type="button"
  55. className="btn btn-outline-primary ml-3"
  56. onClick={onConfirmEnableTextlint}
  57. >
  58. {t('modal_enable_textlint.enable_textlint')}
  59. </button>
  60. </ModalFooter>
  61. </Modal>
  62. );
  63. };