import {useState} from 'react'; import {browserHistory} from 'react-router'; import styled from '@emotion/styled'; import {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 PageFiltersContainer from 'sentry/components/organizations/pageFilters/container'; import SentryDocumentTitle from 'sentry/components/sentryDocumentTitle'; import {Tabs} from 'sentry/components/tabs'; import {t} from 'sentry/locale'; import {Organization, Project} from 'sentry/types'; import {defined} from 'sentry/utils'; import EventView from 'sentry/utils/discover/eventView'; import {useMetricsCardinalityContext} from 'sentry/utils/performance/contexts/metricsCardinality'; import {PerformanceEventViewProvider} from 'sentry/utils/performance/contexts/performanceEventViewContext'; import {decodeScalar} from 'sentry/utils/queryString'; import {normalizeUrl} from 'sentry/utils/withDomainRequired'; import {getTransactionName} from '../../utils'; import TransactionHeader from '../header'; import usePageTabs from '../pageLayout/usePageTabs'; import {TransactionThresholdMetric} from '../transactionThresholdModal'; import Tab from './tabs'; type Props = { children: React.ReactNode; organization: Organization; project: undefined | Project; tab: Tab; title: string; }; function PageLayout({children, tab, title, organization, project}: Props) { return ( { setTransactionThreshold(threshold); setTransactionThresholdMetric(metric); }} metricsCardinality={metricsCardinality} /> {defined(error) && ( {error} )} {children} ); } function NoAccess() { return {t("You don't have access to this feature")}; } const StyledAlert = styled(Alert)` grid-column: 1/3; margin: 0; `; export default PageLayout;