modal.tsx 847 B

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