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 | 2x 2x 2x 2x 2x 2x 2x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x | /*
* 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, { useState } from 'react'
import set from 'lodash-es/set'
import { useParams } from 'react-router-dom'
import { Button, Layout, Container, Heading, Text } from '@wings-software/uicore'
import { Color } from '@harness/design-system'
import { useStrings } from 'framework/strings'
import type { DelegateProfileDetailsNg } from 'services/cd-ng'
import type { ProjectPathProps } from '@common/interfaces/RouteInterfaces'
import type { dataObj } from '../CreateDelegateConfigWizard'
import css from './DelegateConfigSteps.module.scss'
interface DelegateConfigScopeStepProps {
name: string
previousStep?: (data: dataObj) => void
onFinish: (data: DelegateProfileDetailsNg) => void
closeModal?: () => void
onSuccess?: () => void
prevStepData?: dataObj
}
const DelegateConfigScopeStep: React.FC<DelegateConfigScopeStepProps> = ({ previousStep, onFinish, prevStepData }) => {
const { getString } = useStrings()
const { orgIdentifier, projectIdentifier } = useParams<ProjectPathProps>()
const [script, setScript] = useState(prevStepData?.script || '')
const onPreviousStep = (): void => {
previousStep?.({ ...prevStepData, script })
}
const createDelegateProfile = () => {
const delegateProfileData = {
identifier: prevStepData?.identifier,
name: prevStepData?.name,
description: prevStepData?.description,
selectors: Object.keys(prevStepData?.tags || {}),
startupScript: script
}
Iif (orgIdentifier) {
set(delegateProfileData, 'orgIdentifier', orgIdentifier)
}
Iif (projectIdentifier) {
set(delegateProfileData, 'projectIdentifier', projectIdentifier)
}
onFinish(delegateProfileData)
}
return (
<Layout.Vertical className={css.stepContainer} padding="xxlarge">
<Container>
<Heading level={2} color={Color.GREY_800} margin={{ bottom: 'xxlarge' }}>
{getString('delegates.newDelegateConfigWizard.scriptTitle')}
</Heading>
<Text>{getString('script')}</Text>
<textarea className={css.scriptTextarea} onChange={event => setScript(event.target.value)} value={script} />
</Container>
<Layout.Horizontal spacing="xsmall">
<Button type="button" text={getString('back')} onClick={onPreviousStep} />
<Button type="button" intent="primary" text={getString('finish')} onClick={createDelegateProfile} />
</Layout.Horizontal>
</Layout.Vertical>
)
}
export default DelegateConfigScopeStep
|