import { useTranslation } from 'react-i18next'; import { Button, Form, Input, InputNumber, Select, Space, Switch } from 'antd'; import { MinusOutlined, PlusOutlined } from '@ant-design/icons'; import { InputAddon } from '@/components/ui'; import { ALPN_OPTION, UTLS_FINGERPRINT } from '@/schemas/primitives'; export default function ExternalProxyForm({ toggleExternalProxy, }: { toggleExternalProxy: (on: boolean) => void; }) { const { t } = useTranslation(); return ( { const a = (prev.streamSettings as { externalProxy?: unknown[] } | undefined)?.externalProxy; const b = (curr.streamSettings as { externalProxy?: unknown[] } | undefined)?.externalProxy; return (Array.isArray(a) ? a.length : 0) !== (Array.isArray(b) ? b.length : 0); }} > {({ getFieldValue }) => { const arr = getFieldValue(['streamSettings', 'externalProxy']); const on = Array.isArray(arr) && arr.length > 0; return ( <> {on && ( {(fields, { add, remove }) => ( <> {fields.map((field) => (
remove(field.name)}> prev.streamSettings?.externalProxy?.[field.name]?.forceTls !== curr.streamSettings?.externalProxy?.[field.name]?.forceTls } > {({ getFieldValue }) => { const ft = getFieldValue([ 'streamSettings', 'externalProxy', field.name, 'forceTls', ]); if (ft !== 'tls') return null; return ( ({ value: a, label: a, }))} /> ); }}
))}
)}
)} ); }}
); }