import { UISref, UISrefActive } from '@uirouter/react'; import classNames from 'classnames'; import React from 'react'; import { LoadBalancerClusterContainer } from './LoadBalancerClusterContainer'; import type { Application } from '../application/application.model'; import { CloudProviderRegistry } from '../cloudProvider'; import type { ILoadBalancer, ILoadBalancerGroup, IServerGroup } from '../domain'; import { EntityNotifications } from '../entityTag/notifications/EntityNotifications'; import { HealthCounts } from '../healthCounts/HealthCounts'; import { ManagedResourceStatusIndicator } from '../managed'; export interface ILoadBalancerProps { application: Application; grouping: ILoadBalancerGroup; loadBalancer: ILoadBalancer; serverGroups: IServerGroup[]; showServerGroups?: boolean; showInstances?: boolean; } export class LoadBalancer extends React.Component { public static defaultProps: Partial = { showServerGroups: true, showInstances: false, }; public render(): React.ReactElement { const { application, grouping, loadBalancer, serverGroups, showInstances, showServerGroups } = this.props; const config = CloudProviderRegistry.getValue(loadBalancer.provider || loadBalancer.cloudProvider, 'loadBalancer'); const ClusterContainer = config.ClusterContainer || LoadBalancerClusterContainer; const showManagedIndicator = !grouping.isManaged && loadBalancer.isManaged; const params = { application: application.name, region: loadBalancer.region, accountId: loadBalancer.account, name: loadBalancer.name, vpcId: loadBalancer.vpcId, provider: loadBalancer.cloudProvider, }; return (
  {(loadBalancer.region || '').toUpperCase()}
{showManagedIndicator && ( )} application.loadBalancers.refresh()} />
); } }