modal.tsx 894 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import React from 'react';
  2. import {ModalRenderProps} from 'app/actionCreators/modal';
  3. import Button from 'app/components/button';
  4. import ButtonBar from 'app/components/buttonBar';
  5. import {t} from 'app/locale';
  6. type Props = {
  7. onSave: () => void;
  8. title: string;
  9. content: React.ReactElement;
  10. disabled: boolean;
  11. } & ModalRenderProps;
  12. const Modal = ({
  13. title,
  14. onSave,
  15. content,
  16. disabled,
  17. Header,
  18. Body,
  19. Footer,
  20. closeModal,
  21. }: Props) => (
  22. <React.Fragment>
  23. <Header closeButton>
  24. <span data-test-id="modal-title">{title}</span>
  25. </Header>
  26. <Body>{content}</Body>
  27. <Footer>
  28. <ButtonBar gap={1.5}>
  29. <Button onClick={closeModal}>{t('Cancel')}</Button>
  30. <Button onClick={onSave} disabled={disabled} priority="primary">
  31. {t('Save Rule')}
  32. </Button>
  33. </ButtonBar>
  34. </Footer>
  35. </React.Fragment>
  36. );
  37. export default Modal;