V5PageMigrationModal.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import React, { FC } from 'react';
  2. import {
  3. Modal, ModalHeader, ModalBody, ModalFooter,
  4. } from 'reactstrap';
  5. import { useTranslation } from 'react-i18next';
  6. type V5PageMigrationModalProps = {
  7. isModalOpen: boolean
  8. onConfirm?: () => Promise<void>;
  9. onCancel?: () => void;
  10. };
  11. export const V5PageMigrationModal: FC<V5PageMigrationModalProps> = (props: V5PageMigrationModalProps) => {
  12. const { t } = useTranslation();
  13. const onCancel = () => {
  14. if (props.onCancel != null) {
  15. props.onCancel();
  16. }
  17. };
  18. const onConfirm = () => {
  19. if (props.onConfirm != null) {
  20. props.onConfirm();
  21. }
  22. };
  23. return (
  24. <Modal isOpen={props.isModalOpen} toggle={onCancel} className="">
  25. <ModalHeader tag="h4" toggle={onCancel} className="bg-warning">
  26. <i className="icon-fw icon-question" />
  27. Warning
  28. </ModalHeader>
  29. <ModalBody>
  30. {t('admin:v5_page_migration.modal_migration_warning')}
  31. <br />
  32. <br />
  33. <span className="text-danger">
  34. <i className="icon-exclamation icon-fw"></i>
  35. {t('admin:v5_page_migration.migration_note')}
  36. </span>
  37. </ModalBody>
  38. <ModalFooter>
  39. <button
  40. type="button"
  41. className="btn btn-outline-secondary"
  42. onClick={onCancel}
  43. >
  44. {t('Cancel')}
  45. </button>
  46. <button
  47. type="button"
  48. className="btn btn-outline-primary ml-3"
  49. onClick={onConfirm}
  50. >
  51. {t('admin:v5_page_migration.start_upgrading')}
  52. </button>
  53. </ModalFooter>
  54. </Modal>
  55. );
  56. };