Files
2024-02-15 17:01:50 +00:00

45 lines
1.5 KiB
TypeScript

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);