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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 2x 2x 9x | /* * Copyright 2022 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, { useEffect, useState } from 'react' import { useParams, useLocation } from 'react-router-dom' import { TabNavigation } from '@wings-software/uicore' import { NGBreadcrumbs } from '@common/components/NGBreadcrumbs/NGBreadcrumbs' import { Page } from '@common/exports' import ScopedTitle from '@common/components/Title/ScopedTitle' import { Scope } from '@common/interfaces/SecretsInterface' import routes from '@common/RouteDefinitions' import type { ProjectPathProps, PipelineType } from '@common/interfaces/RouteInterfaces' import { getLinkForAccountResources } from '@common/utils/BreadcrumbUtils' import type { GetDelegateGroupsNGV2WithFilterQueryParams } from 'services/portal' import { useListDelegateConfigsNgV2WithFilter } from 'services/cd-ng' import type { DelegateProfileDetailsNg } from 'services/cd-ng' import { useStrings } from 'framework/strings' const DelegatesPage: React.FC = ({ children }) => { const params = useParams<PipelineType<ProjectPathProps>>() const { accountId, orgIdentifier, projectIdentifier, module } = params const { getString } = useStrings() const { pathname } = useLocation() const [profiles, setProfiles] = useState<DelegateProfileDetailsNg[]>([]) const isDelTokensPage = pathname.indexOf( routes.toDelegateTokens({ accountId: params.accountId, orgIdentifier, projectIdentifier, module }) ) !== -1 const { mutate: getDelegateProfiles } = useListDelegateConfigsNgV2WithFilter({ accountId, queryParams: { orgId: orgIdentifier, projectId: projectIdentifier } }) const getDelegates = async () => { const delProfilesResponse = await getDelegateProfiles( { filterType: 'DelegateProfile' }, { queryParams: { accountId, module, pageSize: 10, searchTerm: '' } as GetDelegateGroupsNGV2WithFilterQueryParams } ) const resource = delProfilesResponse?.resource as any setProfiles(resource?.response || []) } useEffect(() => { getDelegates() }, [getDelegateProfiles]) const links = [ { label: getString('delegate.delegates'), to: routes.toDelegateList({ accountId, orgIdentifier, projectIdentifier, module }) } ] if (profiles.length > 0) { links.push({ label: getString('delegate.delegateConfigurations'), to: routes.toDelegateConfigs({ accountId, orgIdentifier, projectIdentifier, module }) }) } links.push({ label: getString('common.tokens'), to: routes.toDelegateTokens({ accountId, orgIdentifier, projectIdentifier, module }) }) return ( <> <Page.Header breadcrumbs={ <NGBreadcrumbs links={getLinkForAccountResources({ accountId, orgIdentifier, projectIdentifier, getString })} /> } title={ <ScopedTitle title={{ [Scope.PROJECT]: isDelTokensPage ? getString('delegates.tokens.delegateTokens') : getString('delegate.delegates'), [Scope.ORG]: isDelTokensPage ? getString('delegates.tokens.delegateTokensTitle') : getString('delegates.delegatesTitle'), [Scope.ACCOUNT]: isDelTokensPage ? getString('delegates.tokens.delegateTokensTitle') : getString('delegates.delegatesTitle') }} /> } toolbar={<TabNavigation size={'small'} links={links} />} /> <Page.Body>{children}</Page.Body> </> ) } export default DelegatesPage |