import { useTranslation } from 'react-i18next'; import { Button, Form, Input, InputNumber, Select, Space, Switch } from 'antd'; import { Address_Port_Strategy, DOMAIN_STRATEGY_OPTION, TCP_CONGESTION_OPTION, } from '@/schemas/primitives'; import { HappyEyeballsSchema } from '@/schemas/protocols/stream/sockopt'; export default function SockoptForm({ toggleSockopt, }: { toggleSockopt: (on: boolean) => void; }) { const { t } = useTranslation(); return ( { const a = (prev.streamSettings as { sockopt?: object } | undefined)?.sockopt; const b = (curr.streamSettings as { sockopt?: object } | undefined)?.sockopt; return !!a !== !!b; }} > {({ getFieldValue }) => { const sock = getFieldValue(['streamSettings', 'sockopt']); const on = !!sock && typeof sock === 'object' && Object.keys(sock).length > 0; return ( <> {on && ( <> ({ value: c, label: c }))} /> ({ value: v, label: v }))} /> {({ getFieldValue, setFieldValue }) => { const he = getFieldValue(['streamSettings', 'sockopt', 'happyEyeballs']); const hasHe = he != null; return ( <> { setFieldValue( ['streamSettings', 'sockopt', 'happyEyeballs'], v ? HappyEyeballsSchema.parse({}) : undefined, ); }} /> {hasHe && ( <> )} ); }} {(fields, { add, remove }) => ( <> {fields.map((field) => ( ))} )} )} ); }} ); }