import React from 'react'; import type { Application, IRouterInjectedProps, IServerGroupManagerDetailsProps, IServerGroupManagerStateParams, } from '@spinnaker/core'; import { CloudProviderLogo, Details, EntityNotifications, IfFeatureEnabled, withRouter } from '@spinnaker/core'; import { ServerGroupManagerActions } from './ServerGroupManagerActions'; import { ServerGroupManagerAnnotationCustomSection, ServerGroupManagerArtifactsSection, ServerGroupManagerEventsSection, ServerGroupManagerInformationSection, ServerGroupManagerLabelsSection, ServerGroupManagerManifestConditionSection, ServerGroupManagerManifestStatusSection, } from './sections'; import { useKubernetesServerGroupManagerDetails } from './useKubernetesServerGroupManagerDetails'; export interface IKubernetesServerGroupManagerDetailsProps extends IServerGroupManagerDetailsProps { app: Application; serverGroupManager: IServerGroupManagerStateParams; } export function closeServerGroupManagerDetails(stateService: IRouterInjectedProps['stateService']): void { stateService.params.allowModalToStayOpen = true; stateService.go('^', null, { location: 'replace' }); } export function ServerGroupManagerDetailsComponent( props: IKubernetesServerGroupManagerDetailsProps & IRouterInjectedProps, ) { const autoClose = () => closeServerGroupManagerDetails(props.stateService); const [serverGroupManager, manifest, loading] = useKubernetesServerGroupManagerDetails(props, autoClose); if (loading || !serverGroupManager || !manifest) return
; return (
} name={serverGroupManager.displayName} notifications={ props.app.serverGroupManagers.refresh()} /> } /> } actions={ } />
); } export const ServerGroupManagerDetails = withRouter(ServerGroupManagerDetailsComponent);