From b16c9546b89f1fb61786761c8f3f5ab8caeeea28 Mon Sep 17 00:00:00 2001 From: CPTProgrammer <46586216+CPTProgrammer@users.noreply.github.com> Date: Sat, 18 Jul 2026 22:09:50 +0800 Subject: [PATCH] Change Curseforge relation projectID type from string to number --- docs/curseforge/upload.md | 4 ++-- src/components/ConfigModal.tsx | 9 ++++----- src/types/curseforge/upload.ts | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/curseforge/upload.md b/docs/curseforge/upload.md index 7e6bb18..8d55ad1 100644 --- a/docs/curseforge/upload.md +++ b/docs/curseforge/upload.md @@ -97,7 +97,7 @@ Content-Type: multipart/form-data "relations": { "projects": [{ "slug": "mantle", // 关联项目的 slug - "projectID": "74924", // 可选,用于精确匹配项目 + "projectID": 74924, // 可选,用于精确匹配项目 "type": "requiredDependency" // 关联类型,可选值见下方 }] } @@ -152,7 +152,7 @@ Content-Type: multipart/form-data "relations": { "projects": [{ "slug": "mantle", - "projectID": "74924", + "projectID": 74924, "type": "requiredDependency" }] } diff --git a/src/components/ConfigModal.tsx b/src/components/ConfigModal.tsx index c53ed36..30d3619 100644 --- a/src/components/ConfigModal.tsx +++ b/src/components/ConfigModal.tsx @@ -293,9 +293,9 @@ const LIST_DEFS: ListValidationDef[] = [ target: "projectID", deps: ["projectID"], async validate(getVal, row, setVal) { - const id = getVal("projectID") as string | undefined; - if (!id) return null; - const r = await lookupCurseforgeProject(Number(id)); + const id = getVal("projectID") as number | undefined; + if (id == null) return null; + const r = await lookupCurseforgeProject(id); if (r.ok) { setVal("slug", r.slug); return { status: "success", help: `项目:${r.name}` }; @@ -967,7 +967,6 @@ function ConfigModalForm({ name={[name, "projectID"]} rules={[{ required: true, message: "必填" }]} style={{ marginBottom: 0 }} - normalize={(v) => v != null ? String(v) : undefined} > - add({ projectID: "", slug: "", type: "requiredDependency" }) + add({ slug: "", type: "requiredDependency" }) } icon={} block diff --git a/src/types/curseforge/upload.ts b/src/types/curseforge/upload.ts index 0a9879c..0150395 100644 --- a/src/types/curseforge/upload.ts +++ b/src/types/curseforge/upload.ts @@ -34,7 +34,7 @@ export const RelationProjectSchema = z.object({ /** 关联项目的 slug */ slug: z.string(), /** 关联项目的 ID(精确匹配),可选 */ - projectID: z.string().optional(), + projectID: z.number().int().positive().optional(), /** 关联类型 */ type: UploadRelationTypeSchema, });