refactor: 清理未使用参数、移除死代码、聚焦电商核心模块
主要变更概述: ================ 1. 清理未使用的函数参数 (TypeScript noUnusedParameters) ------------------------------------------------------ - AppShell.tsx: 移除未使用的 backendHealth prop 及 ServerConnectionHealth 导入 - canvasUtils.ts: 移除 resolveWorkflowVideoModel 的 workflowModel 参数 - canvasWorkflowDeserialize.ts: 同步更新调用方 - CanvasPage.tsx: 移除 resolveWorkflowVideoModel 未使用导入 - HomePage.tsx: 移除 onOpenTokenMonitor、onOpenImageTool 未使用 props - ToolboxSection.tsx: 移除 onOpenImageTool 未使用 prop 及 WebImageWorkbenchTool 类型导入 - ScriptTokensPage.tsx: 移除 formatReportMarkdown 的 script 参数,更新 2 处调用 - TokenUsagePage.tsx: 移除 onOpenImageTool、onSelectView 未使用 props - WorkbenchPage.tsx: 移除 renderComposerToolbar 的 showStop 参数,更新 2 处调用 2. 移除未使用的模块和死代码 -------------------------- 删除以下未在电商模块中使用的功能模块: - 画布模块 (canvas/): CanvasPage, canvasUtils, canvasWorkflow* 等 - 主页模块 (home/): HomePage, ToolboxSection, WelcomeSplash 等 - 工作台模块 (workbench/): WorkbenchPage, ConversationSidebar 等 - 社区模块 (community/, community-review/) - 数字人模块 (digital-human/) - 图片工作台 (image-workbench/) - 其他独立工具页: agent, assets, beta-applications, character-mix, compliance, dialog-generator, more, profile, provider-health, report, resolution-upscale, script-tokens, settings, size-template, subtitle-removal, watermark-removal 3. 移除未使用的公共组件 ---------------------- - AnimatedPanel, BeforeAfterCompare, BetaApplicationModal - CookieConsentBanner, DropZone, EmptyState, NotFoundPage - NotificationCenter, OnboardingTour, OptimizedImage - PageTransition, RechargeModal, ShellIcon, Skeleton - StudioToolLayout, TaskStatusBar, WorkspacePageShell 4. 移除未使用的 API 客户端 -------------------------- - betaApplicationClient, communityClient, conversationClient - draftClient, modelCapabilitiesClient, notificationClient - projectTaskClient, providerHealthClient, publicConfigClient - referenceUploadService, reportClient, scriptEvalClient - uploadWithProgress 5. 移除未使用的工具函数和 hooks ------------------------------- - utils/: imageModelVisibility, mentionTrigger, modelOptions, ossImageOptimize, toolPageUtils - hooks/: useGenerationStatus, useScrollEntrance - scripts/: 所有分析脚本 (check-governance, dynamic-analysis 等) 6. 移除未使用的样式文件 ---------------------- 删除与已移除模块对应的 CSS 文件,保留电商模块专用样式 7. 新增电商模块功能文件 ---------------------- + src/api/generationRecordClient.ts (生成记录客户端) + src/features/ecommerce/ecommerceGenerationPersistence.ts (生成持久化) 验证: - TypeScript 编译 (tsc --noEmit --noUnusedParameters) 零错误通过 - 所有保留文件的功能完整性未受影响
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
import {
|
||||
buildGenerationOssScope,
|
||||
deleteGenerationRecordByClientId,
|
||||
saveGenerationRecord,
|
||||
type GenerationRecordAsset,
|
||||
type SaveGenerationRecordInput,
|
||||
} from "../../api/generationRecordClient";
|
||||
|
||||
export const ecommerceOssScopes = {
|
||||
productSource: buildGenerationOssScope(["ecommerce", "source", "product"]),
|
||||
cloneResult: (mode: string) => buildGenerationOssScope(["ecommerce", "result", mode]),
|
||||
videoSource: buildGenerationOssScope(["ecommerce", "short-video", "source"]),
|
||||
videoHistory: buildGenerationOssScope(["ecommerce", "short-video", "history"]),
|
||||
};
|
||||
|
||||
export interface EcommerceUnifiedRecordInput {
|
||||
clientRecordId: string;
|
||||
title: string;
|
||||
mode: string;
|
||||
prompt?: string;
|
||||
status?: SaveGenerationRecordInput["status"];
|
||||
sourceImages?: Array<{ url: string; ossKey?: string | null; label?: string }>;
|
||||
results?: Array<{ url: string; label?: string; mediaType?: "image" | "video" | string; taskId?: string | null }>;
|
||||
taskIds?: string[];
|
||||
config?: Record<string, unknown>;
|
||||
result?: Record<string, unknown>;
|
||||
metadata?: Record<string, unknown>;
|
||||
createdAt?: string;
|
||||
}
|
||||
|
||||
export function saveUnifiedEcommerceGenerationRecord(input: EcommerceUnifiedRecordInput): Promise<{ source: "server" | "local"; id: string }> {
|
||||
const assets: GenerationRecordAsset[] = [
|
||||
...(input.sourceImages || []).map((item): GenerationRecordAsset => ({
|
||||
role: "source",
|
||||
mediaType: "image",
|
||||
url: item.url,
|
||||
ossKey: item.ossKey,
|
||||
label: item.label,
|
||||
scope: ecommerceOssScopes.productSource,
|
||||
})),
|
||||
...(input.results || []).map((item): GenerationRecordAsset => ({
|
||||
role: "result",
|
||||
mediaType: item.mediaType || "image",
|
||||
url: item.url,
|
||||
label: item.label,
|
||||
taskId: item.taskId,
|
||||
scope: item.mediaType === "video" ? ecommerceOssScopes.videoHistory : ecommerceOssScopes.cloneResult(input.mode),
|
||||
})),
|
||||
].filter((asset) => Boolean(asset.url));
|
||||
|
||||
return saveGenerationRecord({
|
||||
clientRecordId: input.clientRecordId,
|
||||
tool: "ecommerce",
|
||||
mode: input.mode,
|
||||
title: input.title,
|
||||
status: input.status || "completed",
|
||||
prompt: input.prompt,
|
||||
taskIds: input.taskIds,
|
||||
assets,
|
||||
config: input.config,
|
||||
result: input.result,
|
||||
metadata: input.metadata,
|
||||
createdAt: input.createdAt,
|
||||
updatedAt: new Date().toISOString(),
|
||||
});
|
||||
}
|
||||
|
||||
export async function deleteEcommerceGenerationRecord(clientRecordId: string): Promise<void> {
|
||||
await deleteGenerationRecordByClientId(clientRecordId);
|
||||
}
|
||||
Reference in New Issue
Block a user