import {cloneElement, isValidElement} from 'react'; import type {RouteComponentProps} from 'sentry/types/legacyReactRouter'; import type {Organization} from 'sentry/types/organization'; import type {Project} from 'sentry/types/project'; import useRouteAnalyticsParams from 'sentry/utils/routeAnalytics/useRouteAnalyticsParams'; import withOrganization from 'sentry/utils/withOrganization'; import ProjectContext from 'sentry/views/projects/projectContext'; import SettingsLayout from 'sentry/views/settings/components/settingsLayout'; import ProjectSettingsNavigation from 'sentry/views/settings/project/projectSettingsNavigation'; type Props = { children: React.ReactNode; organization: Organization; } & RouteComponentProps<{projectId: string}, {}>; type InnerProps = Props & {project: Project}; function InnerProjectSettingsLayout({ params, routes, project, organization, children, ...props }: InnerProps) { // set analytics params for route based analytics useRouteAnalyticsParams({ project_id: project.id, project_platform: project.platform, }); return ( } > {children && isValidElement(children) ? cloneElement(children, {organization, project}) : children} ); } function ProjectSettingsLayout({organization, params, ...props}: Props) { return ( {({project}) => ( )} ); } export default withOrganization(ProjectSettingsLayout);