in aws-core-ui/src/App/Components/ButtonControlPanel.tsx [40:90]
export default function ButtonControlPanel({
onClose,
genericErrorHandler,
mode,
}: {
onClose: () => void;
genericErrorHandler: (error: unknown) => void;
mode: Mode;
}) {
const [testDialogActive, setTestDialogActive] = React.useState(false);
const [testingConnection, setTestingConnection] = React.useState(false);
const [connectionSuccessful, setConnectionSuccessful] = React.useState(false);
const [testResultMessage, setTestResultMessage] = React.useState('');
const ctx = useApplicationContext();
const { clearAlerts } = useErrorService();
const { getValues } = useFormContext<FormFields>();
const isReadOnly = useReadOnlyContext();
const testConnection = React.useCallback(async () => {
const formData = getValues();
clearAlerts();
setConnectionSuccessful(false);
setTestDialogActive(false);
setTestingConnection(true);
try {
const result = await testAwsConnection(
toRequestData(ctx.config, formData)
);
setConnectionSuccessful(result.success);
setTestResultMessage(result.message);
setTestDialogActive(true);
} catch (e) {
genericErrorHandler(e);
} finally {
setTestingConnection(false);
}
}, [clearAlerts, ctx.config, genericErrorHandler, getValues]);
return (
<Panel className={styles.awsConnectionButtonPanel}>
<ButtonSet>
<Button disabled={isReadOnly} primary type="submit">
{mode === Mode.CONVERT
? 'Convert'
: ctx.isEditMode
? 'Save'
: 'Create'}
</Button>
<Button onClick={() => onClose()}>{'Cancel'}</Button>