import React from 'react'; import { KeyValue } from '@grafana/data'; import { css, cx } from '@emotion/css'; import { Tooltip } from '../Tooltip/Tooltip'; import { Icon } from '../Icon/Icon'; import { CertificationKey } from './CertificationKey'; import { HttpSettingsBaseProps } from './types'; import { FormField } from '../FormField/FormField'; export const TLSAuthSettings: React.FC = ({ dataSourceConfig, onChange }) => { const hasTLSCACert = dataSourceConfig.secureJsonFields && dataSourceConfig.secureJsonFields.tlsCACert; const hasTLSClientCert = dataSourceConfig.secureJsonFields && dataSourceConfig.secureJsonFields.tlsClientCert; const hasTLSClientKey = dataSourceConfig.secureJsonFields && dataSourceConfig.secureJsonFields.tlsClientKey; const hasServerName = dataSourceConfig.jsonData && dataSourceConfig.jsonData.serverName; const onResetClickFactory = (field: string) => (event: React.MouseEvent) => { event.preventDefault(); const newSecureJsonFields: KeyValue = { ...dataSourceConfig.secureJsonFields }; newSecureJsonFields[field] = false; onChange({ ...dataSourceConfig, secureJsonFields: newSecureJsonFields, }); }; const onCertificateChangeFactory = (field: string) => (event: React.SyntheticEvent) => { const newSecureJsonData = { ...dataSourceConfig.secureJsonData }; newSecureJsonData[field] = event.currentTarget.value; onChange({ ...dataSourceConfig, secureJsonData: newSecureJsonData, }); }; const onServerNameLabelChange = (event: React.SyntheticEvent) => { const newJsonData = { ...dataSourceConfig.jsonData, serverName: event.currentTarget.value, }; onChange({ ...dataSourceConfig, jsonData: newJsonData, }); }; return (
TLS/SSL Auth Details
{dataSourceConfig.jsonData.tlsAuthWithCACert && ( )} {dataSourceConfig.jsonData.tlsAuth && ( <>
)}
); };