1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import type {Location} from 'history';
- import Feature from 'sentry/components/acl/feature';
- import {Alert} from 'sentry/components/alert';
- import * as Layout from 'sentry/components/layouts/thirds';
- import NoProjectMessage from 'sentry/components/noProjectMessage';
- import {t} from 'sentry/locale';
- import type {Organization} from 'sentry/types';
- import {MetricsCardinalityProvider} from 'sentry/utils/performance/contexts/metricsCardinality';
- import {MEPSettingProvider} from 'sentry/utils/performance/contexts/metricsEnhancedSetting';
- import withOrganization from 'sentry/utils/withOrganization';
- type Props = {
- children: React.ReactNode;
- location: Location;
- organization: Organization;
- };
- function PerformanceContainer({organization, location, children}: Props) {
- function renderNoAccess() {
- return (
- <Layout.Page withPadding>
- <Alert type="warning">{t("You don't have access to this feature")}</Alert>
- </Layout.Page>
- );
- }
- return (
- <Feature
- hookName="feature-disabled:performance-page"
- features="performance-view"
- organization={organization}
- renderDisabled={renderNoAccess}
- >
- <NoProjectMessage organization={organization}>
- <MetricsCardinalityProvider location={location} organization={organization}>
- <MEPSettingProvider>{children}</MEPSettingProvider>
- </MetricsCardinalityProvider>
- </NoProjectMessage>
- </Feature>
- );
- }
- export default withOrganization(PerformanceContainer);
|