import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Button, Form, Input, InputNumber, Select, Space, Typography } from 'antd'; import { VLESS_AUTH_LABEL_KEYS, type VlessAuthKind } from '@/lib/xray/vless-encryption'; interface VlessFieldsProps { saving: boolean; selectedVlessAuth: string; vlessAuthKind: VlessAuthKind | null; network: string; security: string; getNewVlessEnc: (kind: VlessAuthKind) => void; clearVlessEnc: () => void; } export default function VlessFields({ saving, selectedVlessAuth, vlessAuthKind, network, security, getNewVlessEnc, clearVlessEnc, }: VlessFieldsProps) { const { t } = useTranslation(); const [authKind, setAuthKind] = useState(vlessAuthKind ?? 'x25519'); useEffect(() => { setAuthKind(vlessAuthKind ?? 'x25519'); }, [vlessAuthKind]); const authOptions = (Object.entries(VLESS_AUTH_LABEL_KEYS) as [VlessAuthKind, string][]).map( ([value, labelKey]) => ({ value, label: t(labelKey) }), ); return ( <>