fix(nodes): "Invalid input" when saving a node with inbound sync mode "all"

NodeFormSchema required inboundTags, but the inboundTags Form.Item is only
mounted when inboundSyncMode is "selected" - antd onFinish omits unmounted
fields, so saving with the default "all" mode failed schema validation with
Zod generic "Invalid input" (regression from #5178; same class as the
earlier pinnedCertSha256 fix).

Also tolerate null inboundTags (Go nil slice) for nodes saved before #5178,
both in the form schema and NodeRecordSchema, and normalize edit-mode values.
This commit is contained in:
MHSanaei
2026-06-12 02:29:46 +02:00
parent 60da6bed15
commit 5c29851be1
4 changed files with 10 additions and 9 deletions
@@ -85,6 +85,8 @@ export default function NodeFormModal({
...(node as unknown as Partial<NodeFormValues>),
id: node.id,
scheme: (node.scheme as 'http' | 'https') || base.scheme,
inboundSyncMode: (node.inboundSyncMode as 'all' | 'selected') || base.inboundSyncMode,
inboundTags: node.inboundTags ?? [],
}
: base;
if (next.scheme === 'http') next.tlsVerifyMode = 'skip';