import React, { useEffect, useState } from 'react' import { Button, ButtonVariation, Container, Dialog, FlexExpander, FontVariation, Layout, Text, useToaster } from '@harness/uicore' import { useStrings } from 'framework/strings' import { CopyButton } from 'components/CopyButton/CopyButton' import { CodeIcon } from 'utils/GitUtils' import { useAppContext } from 'AppContext' import { generateAlphaNumericHash } from 'utils/Utils' import css from './CloneCredentialDialog.module.scss' import { useHistory } from 'react-router-dom' interface CloneCredentialDialogProps { setFlag: (val: boolean) => void flag: boolean } const CloneCredentialDialog = (props: CloneCredentialDialogProps) => { const { setFlag, flag } = props const history = useHistory() const { getString } = useStrings() const { hooks, currentUser,currentUserProfileURL } = useAppContext() const [token, setToken] = useState('') const { showError } = useToaster() const hash = generateAlphaNumericHash(6) const tokenData = hooks?.useGenerateToken(hash, currentUser.uid, flag) useEffect(() => { if (tokenData) { if (tokenData && tokenData?.status !== 400) { setToken(tokenData?.data) } else if (tokenData?.status === 400 && flag) { setToken('N/A') showError(tokenData?.data?.message || tokenData?.message) } } }, [flag, tokenData]) return ( { setFlag(false) }} title={ {getString('getMyCloneTitle')} } style={{ width: 490, maxHeight: '95vh', overflow: 'auto' }}> {getString('userName')} {currentUser.display_name} {getString('passwordApi')} {token} {getString('cloneText')} ) } export default CloneCredentialDialog