From 9d2a4f217ed525036860da11fe943a2667f5672f Mon Sep 17 00:00:00 2001 From: MHSanaei Date: Wed, 27 May 2026 13:43:21 +0200 Subject: [PATCH] feat(inbound-form): salamander auto-seed for Hysteria + modernize random buttons Picking Hysteria from the protocol select used to leave finalmask.udp empty, so the listener went out without obfs unless the admin added the salamander wrapper by hand. Hook into onValuesChange so switching to Hysteria seeds finalmask.udp with {type: 'salamander', settings: {password: }} alongside the hysteriaSettings / tlsSettings reset already happening there. Also modernise the SyncOutlined-in-label "random" affordances on Shadowsocks password, WireGuard secret key (server + per-peer), and Reality target / SNI / shortIds into proper icon buttons inside a Space.Compact next to the field. The old pattern dropped a tiny clickable icon into the form-item label, which was easy to miss and inconsistent with the other action buttons in the modal. --- frontend/src/components/FinalMaskForm.tsx | 15 +- .../src/pages/inbounds/InboundFormModal.tsx | 146 +++++++++--------- 2 files changed, 86 insertions(+), 75 deletions(-) diff --git a/frontend/src/components/FinalMaskForm.tsx b/frontend/src/components/FinalMaskForm.tsx index 682eee75..d8973f64 100644 --- a/frontend/src/components/FinalMaskForm.tsx +++ b/frontend/src/components/FinalMaskForm.tsx @@ -424,8 +424,19 @@ function UdpMaskItem({ const type = getFieldValue([...absolutePath, 'type']) as string | undefined; if (type === 'mkcp-aes128gcm' || type === 'salamander') { return ( - - + + + + + +