diff --git a/frontend/src/pages/inbounds/InboundFormModal.tsx b/frontend/src/pages/inbounds/InboundFormModal.tsx index 689ba50b..5227f134 100644 --- a/frontend/src/pages/inbounds/InboundFormModal.tsx +++ b/frontend/src/pages/inbounds/InboundFormModal.tsx @@ -1446,13 +1446,13 @@ export default function InboundFormModal({ // the Select shows blank instead of the "Default (path)" option. const newStreamSlice = (n: string): Record => { switch (n) { - case 'tcp': return TcpStreamSettingsSchema.parse({ header: { type: 'none' } }); - case 'kcp': return KcpStreamSettingsSchema.parse({}); - case 'ws': return WsStreamSettingsSchema.parse({}); - case 'grpc': return GrpcStreamSettingsSchema.parse({}); + case 'tcp': return TcpStreamSettingsSchema.parse({ header: { type: 'none' } }); + case 'kcp': return KcpStreamSettingsSchema.parse({}); + case 'ws': return WsStreamSettingsSchema.parse({}); + case 'grpc': return GrpcStreamSettingsSchema.parse({}); case 'httpupgrade': return HttpUpgradeStreamSettingsSchema.parse({}); - case 'xhttp': return XHttpStreamSettingsSchema.parse({}); - default: return {}; + case 'xhttp': return XHttpStreamSettingsSchema.parse({}); + default: return {}; } }; const onNetworkChange = (next: string) => { @@ -1474,7 +1474,7 @@ export default function InboundFormModal({ style={{ width: '75%' }} onChange={onNetworkChange} options={[ - { value: 'tcp', label: 'TCP (RAW)' }, + { value: 'tcp', label: 'RAW' }, { value: 'kcp', label: 'mKCP' }, { value: 'ws', label: 'WebSocket' }, { value: 'grpc', label: 'gRPC' }, @@ -1521,10 +1521,10 @@ export default function InboundFormModal({ ['streamSettings', 'hysteriaSettings', 'masquerade'], checked ? { - type: '', dir: '', url: '', - rewriteHost: false, insecure: false, - content: '', headers: {}, statusCode: 0, - } + type: '', dir: '', url: '', + rewriteHost: false, insecure: false, + content: '', headers: {}, statusCode: 0, + } : undefined, ) } @@ -1644,20 +1644,20 @@ export default function InboundFormModal({ ['streamSettings', 'tcpSettings', 'header'], v ? { - type: 'http', - request: { - version: '1.1', - method: 'GET', - path: ['/'], - headers: {}, - }, - response: { - version: '1.1', - status: '200', - reason: 'OK', - headers: {}, - }, - } + type: 'http', + request: { + version: '1.1', + method: 'GET', + path: ['/'], + headers: {}, + }, + response: { + version: '1.1', + status: '200', + reason: 'OK', + headers: {}, + }, + } : { type: 'none' }, ); }} @@ -2181,233 +2181,233 @@ export default function InboundFormModal({ {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, - ); - }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - ))} - - )} - + + + + + + + + + + ({ 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) => ( + + + + + + + + + + + + + + + + ))} + + )} + )} @@ -2473,240 +2473,240 @@ export default function InboundFormModal({ return ( <> - - - - + + ({ value: v, label: v }))} + /> + + + ({ value: v, label: v }))} + options={[ + { value: '', label: 'None' }, + ...Object.values(UTLS_FINGERPRINT).map((fp) => ({ value: fp, label: fp })), + ]} /> - - - - ({ value: a, label: a }))} - /> - - - - - - - - - - + + - - - - - - ) : ( - <> - typeof v === 'string' - ? v.split('\n') - : v} - getValueProps={(v) => ({ - value: Array.isArray(v) ? v.join('\n') : v, - })} - > -