import { useEffect, useMemo, useState } from "react"; import type { DockerHostConfig } from "@fusion/core"; import "./DockerTlsConfig.css"; type DockerTlsValue = Pick; interface DockerTlsConfigProps { value?: DockerTlsValue; onChange: (tls: DockerTlsValue) => void; } export function DockerTlsConfig({ value, onChange }: DockerTlsConfigProps) { const [enabled, setEnabled] = useState(Boolean(value?.tlsCaPath || value?.tlsCertPath || value?.tlsKeyPath || value?.tlsVerify)); useEffect(() => { if (!enabled) { onChange({ tlsVerify: undefined, tlsCaPath: undefined, tlsCertPath: undefined, tlsKeyPath: undefined }); } }, [enabled, onChange]); const tls = useMemo(() => ({ tlsVerify: value?.tlsVerify ?? true, tlsCaPath: value?.tlsCaPath ?? "", tlsCertPath: value?.tlsCertPath ?? "", tlsKeyPath: value?.tlsKeyPath ?? "" }), [value]); return (
{enabled && (
onChange({ ...tls, tlsCaPath: event.target.value })} placeholder="/etc/docker/ca.pem" />
onChange({ ...tls, tlsCertPath: event.target.value })} placeholder="/etc/docker/cert.pem" />
onChange({ ...tls, tlsKeyPath: event.target.value })} placeholder="/etc/docker/key.pem" />
)}
); }