in frontend/src/old-pages/Configure/HeadNode.tsx [303:368]
function DcvSettings() {
const {t} = useTranslation()
const dcvPath = [...headNodePath, 'Dcv', 'Enabled']
let dcvEnabled = useState(dcvPath) || false
let port = useState([...headNodePath, 'Dcv', 'Port']) || 8443
let allowedIps =
useState([...headNodePath, 'Dcv', 'AllowedIps']) || '0.0.0.0/0'
const editing = useState(['app', 'wizard', 'editing'])
const toggleDcv = (event: any) => {
const value = !dcvEnabled
if (value) {
enableSsm(value)
if (allowedIps === null)
setState([...headNodePath, 'Dcv', 'AllowedIps'], '0.0.0.0/0')
if (port === null) setState([...headNodePath, 'Dcv', 'Port'], 8443)
setState(dcvPath, value)
} else {
clearState([...headNodePath, 'Dcv'])
}
}
const allowedIPsOnChange = React.useCallback(({detail}) => {
setState([...headNodePath, 'Dcv', 'AllowedIps'], detail.value)
}, [])
const allowedPortOnChange = React.useCallback(
({detail}) =>
setState([...headNodePath, 'Dcv', 'Port'], parseInt(detail.value)),
[],
)
return (
<>
<CheckboxWithHelpPanel
disabled={editing}
checked={dcvEnabled}
onChange={toggleDcv}
helpPanel={
<TitleDescriptionHelpPanel
title={t('wizard.headNode.Dcv.label')}
description={t('wizard.headNode.Dcv.help')}
/>
}
>
{t('wizard.headNode.Dcv.add')}
</CheckboxWithHelpPanel>
<SpaceBetween direction="vertical" size="xs">
{dcvEnabled && (
<FormField label="Allowed IPs">
<Input value={allowedIps} onChange={allowedIPsOnChange} />
</FormField>
)}
{dcvEnabled && (
<FormField label="Port">
<Input
inputMode="decimal"
value={port}
onChange={allowedPortOnChange}
/>
</FormField>
)}
</SpaceBetween>
</>
)
}