/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ import { EuiFieldNumber, EuiFieldText, EuiFlexGroup, EuiFlexItem, EuiFormRow, EuiLink, EuiSpacer, EuiSuperSelect, EuiSuperSelectOption, } from '@elastic/eui'; import React from 'react'; import { ALERTING_DOCUMENTATION_LINK, ENCRYPTION_TYPE, } from '../../../../utils/constants'; import { validateEmail, validateHost, validatePort, validateSenderName, } from '../../utils/validationHelper'; interface CreateSenderFormProps { senderName: string; setSenderName: (name: string) => void; email: string; setEmail: (email: string) => void; host: string; setHost: (host: string) => void; port: string; setPort: (port: string) => void; encryption: keyof typeof ENCRYPTION_TYPE; setEncryption: (encryption: keyof typeof ENCRYPTION_TYPE) => void; inputErrors: { [key: string]: string[] }; setInputErrors: (errors: { [key: string]: string[] }) => void; } export function CreateSenderForm(props: CreateSenderFormProps) { const encryptionOptions: Array> = Object.entries(ENCRYPTION_TYPE).map(([key, value]) => ({ value: key as keyof typeof ENCRYPTION_TYPE, inputDisplay: value, })); return ( <> 0} > props.setSenderName(e.target.value)} isInvalid={props.inputErrors.senderName.length > 0} onBlur={() => { props.setInputErrors({ ...props.inputErrors, senderName: validateSenderName(props.senderName), }); }} /> 0} > props.setEmail(e.target.value)} isInvalid={props.inputErrors.email.length > 0} onBlur={() => { props.setInputErrors({ ...props.inputErrors, email: validateEmail(props.email), }); }} /> 0} > props.setHost(e.target.value)} isInvalid={props.inputErrors.host.length > 0} onBlur={() => { props.setInputErrors({ ...props.inputErrors, host: validateHost(props.host), }); }} /> 0} > props.setPort(e.target.value)} isInvalid={props.inputErrors.port.length > 0} onBlur={() => { props.setInputErrors({ ...props.inputErrors, port: validatePort(props.port), }); }} /> SSL or TLS is recommended for security. To use either one, you must enter each sender account's credentials to the OpenSearch keystore using the CLI.{' '} Learn more } > ); }