fix: move folder creation into project move flow

This commit is contained in:
2026-07-13 17:05:45 +08:00
parent 2f0e0f2cd7
commit 2211beb42c
4 changed files with 144 additions and 17 deletions
+16 -5
View File
@@ -88,7 +88,6 @@ export function buildProjectManagementCard(params: {
readonly sdkSessionReady: boolean;
} | null | undefined;
readonly canManageProject?: boolean | undefined;
readonly canCreateFolder?: boolean | undefined;
}): Record<string, unknown> {
const elements: unknown[] = [{
tag: "markdown",
@@ -149,7 +148,6 @@ export function buildProjectManagementCard(params: {
renameProjectForm(params),
);
}
if (params.canCreateFolder === true) elements.push(createFolderForm(params));
return {
config: { wide_screen_mode: true },
header: {
@@ -202,6 +200,7 @@ export function buildMoveProjectCard(params: {
readonly parentFolderId: string | null;
readonly breadcrumb: string;
readonly childFolders: readonly { readonly id: string; readonly name: string }[];
readonly canCreateFolder: boolean;
}): Record<string, unknown> {
const navigation: unknown[] = [];
if (params.folderId !== null) {
@@ -232,6 +231,13 @@ export function buildMoveProjectCard(params: {
project_id: params.projectId,
...(params.folderId !== null ? { folder_id: params.folderId } : {}),
}, "primary")] });
if (params.canCreateFolder) {
elements.push(createFolderAndMoveForm({
organizationId: params.organizationId,
projectId: params.projectId,
parentFolderId: params.folderId,
}));
}
return {
config: { wide_screen_mode: true },
header: { title: { tag: "plain_text", content: "移动项目" }, template: "blue" },
@@ -433,7 +439,11 @@ function renameProjectForm(params: {
};
}
function createFolderForm(params: { readonly organizationId: string; readonly projectId: string }): unknown {
function createFolderAndMoveForm(params: {
readonly organizationId: string;
readonly projectId: string;
readonly parentFolderId: string | null;
}): unknown {
return {
tag: "form",
name: "folder_create_form",
@@ -443,12 +453,12 @@ function createFolderForm(params: { readonly organizationId: string; readonly pr
name: "folder_name",
required: true,
max_length: 100,
placeholder: { tag: "plain_text", content: "在当前目录下新建 Folder" },
placeholder: { tag: "plain_text", content: "在当前目标目录下新建 Folder" },
},
{
tag: "button",
name: "folder_create_submit",
text: { tag: "plain_text", content: "新建目录" },
text: { tag: "plain_text", content: "新建并移动" },
type: "default",
complex_interaction: true,
action_type: "form_submit",
@@ -456,6 +466,7 @@ function createFolderForm(params: { readonly organizationId: string; readonly pr
action: "create_folder",
organization_id: params.organizationId,
project_id: params.projectId,
...(params.parentFolderId !== null ? { folder_id: params.parentFolderId } : {}),
} },
},
],