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 110 111 112 | 233x 233x 233x 233x 233x 233x 233x 233x 17x 17x 17x 17x 17x 2x 28x 2x 1x 233x | /* * 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 * as Yup from 'yup' import { Button, Container, Formik, FormikForm, FormInput, Text } from '@wings-software/uicore' import type { SSHKeyValidationMetadata as ValidationMetadata } from 'services/cd-ng' import { useStrings } from 'framework/strings' import { useTelemetry } from '@common/hooks/useTelemetry' import { Category, SecretActions } from '@common/constants/TrackingConstants' import VerifySecret, { Status } from './VerifySecret' interface VerifyConnectionProps { identifier: string closeModal?: () => void } const VerifyConnection: React.FC<VerifyConnectionProps> = ({ identifier, closeModal }) => { const [validationMetadata, setValidationMetadata] = useState<ValidationMetadata>() const [finishStatus, setFinishStatus] = useState<Status | undefined>() const { getString } = useStrings() const { trackEvent } = useTelemetry() return ( <> <Container width={300}> <Formik<ValidationMetadata> onSubmit={formData => { setValidationMetadata({ type: 'SSHKey', host: formData.host }) }} formName="sshVerifyConnectionForm" initialValues={{ type: 'SSHKey', host: '' }} validationSchema={Yup.object().shape({ host: Yup.string().trim().required() })} > {() => { return ( <FormikForm> <FormInput.Text name="host" label={getString('secrets.createSSHCredWizard.labelHostname')} disabled={!!validationMetadata} /> <Text font={{ size: 'xsmall', weight: 'bold' }}> {getString('secrets.createSSHCredWizard.hostnameInfo').toUpperCase()} </Text> {validationMetadata ? null : ( <Button type="submit" text={getString('secrets.createSSHCredWizard.btnVerifyConnection')} style={{ fontSize: 'smaller' }} margin={{ top: 'medium' }} /> )} </FormikForm> ) }} </Formik> </Container> {validationMetadata ? ( <Container margin={{ top: 'xxlarge' }}> <VerifySecret identifier={identifier as string} validationMetadata={validationMetadata} onFinish={status => { setFinishStatus(status) }} /> {finishStatus && ( <> <Button text={getString('secrets.createSSHCredWizard.verifyRetest')} minimal intent="primary" margin={{ top: 'medium' }} onClick={() => { setValidationMetadata(undefined) }} /> <Container margin={{ top: 'large' }}> <Button text={getString('finish').toUpperCase()} onClick={() => { trackEvent(SecretActions.SaveCreateSecret, { category: Category.SECRET, finishStatus, validationMetadata }) closeModal?.() }} /> </Container> </> )} </Container> ) : null} </> ) } export default VerifyConnection |