All files / modules/10-common/components/AccountSideNav AccountSideNav.tsx

100% Statements 14/14
100% Branches 7/7
100% Functions 1/1
100% Lines 14/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49              9x 9x 9x   9x   9x 9x 9x 9x 9x   9x 6x 6x   6x   6x                                              
/*
 * Copyright 2021 Harness Inc. All rights reserved.
 * Use of this source code is governed by the PolyForm Shield 1.0.0 license
 * that can be found in the licenses directory at the root of this repository, also available at
 * https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt.
 */
 
import React from 'react'
import { useParams } from 'react-router-dom'
import { Layout } from '@wings-software/uicore'
 
import routes from '@common/RouteDefinitions'
import type { AccountPathProps } from '@common/interfaces/RouteInterfaces'
import { SidebarLink } from '@common/navigation/SideNav/SideNav'
import { useStrings } from 'framework/strings'
import { returnLaunchUrl } from '@common/utils/routeUtils'
import { useFeatureFlags } from '@common/hooks/useFeatureFlag'
import { LaunchButton } from '../LaunchButton/LaunchButton'
 
export default function AccountSideNav(): React.ReactElement {
  const { getString } = useStrings()
  const { accountId } = useParams<AccountPathProps>()
  const { NG_LICENSES_ENABLED, OPA_PIPELINE_GOVERNANCE, OPA_FF_GOVERNANCE, AUDIT_TRAIL_WEB_INTERFACE } =
    useFeatureFlags()
 
  return (
    <Layout.Vertical spacing="small" margin={{ top: 'xxxlarge' }}>
      <SidebarLink exact label={getString('overview')} to={routes.toAccountSettingsOverview({ accountId })} />
      <SidebarLink label={getString('authentication')} to={routes.toAuthenticationSettings({ accountId })} />
      <SidebarLink label={getString('common.accountResources')} to={routes.toAccountResources({ accountId })} />
      {(OPA_PIPELINE_GOVERNANCE || OPA_FF_GOVERNANCE) && (
        <SidebarLink label={getString('common.governance')} to={routes.toGovernance({ accountId })} />
      )}
      <SidebarLink to={routes.toAccessControl({ accountId })} label={getString('accessControl')} />
      {NG_LICENSES_ENABLED && (
        <SidebarLink exact label={getString('common.subscriptions.title')} to={routes.toSubscriptions({ accountId })} />
      )}
      {AUDIT_TRAIL_WEB_INTERFACE && (
        <SidebarLink label={getString('common.auditTrail')} to={routes.toAuditTrail({ accountId })} />
      )}
      <SidebarLink label={getString('orgsText')} to={routes.toOrganizations({ accountId })} />
      <LaunchButton
        launchButtonText={getString('common.cgLaunchText')}
        redirectUrl={returnLaunchUrl(`#/account/${accountId}/dashboard`)}
      />
    </Layout.Vertical>
  )
}