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