index.tsx 798 B

1234567891011121314151617181920212223242526272829
  1. import {cloneElement, Fragment, isValidElement} from 'react';
  2. import type {RouteComponentProps} from 'react-router';
  3. import Access from 'sentry/components/acl/access';
  4. import {Organization} from 'sentry/types';
  5. interface Props
  6. extends RouteComponentProps<{organizationId: string; projectId: string}, {}> {
  7. children: React.ReactNode;
  8. organization: Organization;
  9. }
  10. function ProjectAlerts({children, organization}: Props) {
  11. return (
  12. <Access organization={organization} access={['project:write']}>
  13. {({hasAccess}) => (
  14. <Fragment>
  15. {isValidElement(children) &&
  16. cloneElement<any>(children, {
  17. organization,
  18. canEditRule: hasAccess,
  19. })}
  20. </Fragment>
  21. )}
  22. </Access>
  23. );
  24. }
  25. export default ProjectAlerts;