From 6d964937dbaa24cfbcd29917120daeee9ea6a7cc Mon Sep 17 00:00:00 2001 From: kdletters Date: Wed, 17 Jun 2026 21:49:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=94=BB=E5=B8=83=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=9D=A2=E6=9D=BF=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补齐普通生图参考图来源菜单和画布选择流程 接入UI设计图与视频生成面板的提交链路 让生成引用上传目标支持多种生成面板 统一图片信息弹窗断言并补充相关测试 修复图标按钮浮层锚点ref与视频生成类型契约 --- src/components/common/PlatformIconButton.tsx | 33 ++- ...CanvasBasicGenerationComposerView.test.tsx | 2 +- ...ImageCanvasBasicGenerationComposerView.tsx | 96 ++++++-- ...CanvasEditorGenerationIntegration.test.tsx | 16 +- .../ImageCanvasEditorShellView.test.tsx | 2 +- .../image-editor/ImageCanvasEditorTypes.ts | 5 +- .../ImageCanvasEditorView.test.tsx | 6 +- .../image-editor/ImageCanvasEditorView.tsx | 20 ++ .../ImageCanvasGenerationComposerView.tsx | 224 +++++++++++++++++- .../ImageCanvasGenerationDialogModel.ts | 64 +++++ .../ImageCanvasGenerationSubmissionModel.ts | 83 ++++++- ...CanvasIconSpritesheetComposerView.test.tsx | 7 +- ...mageCanvasSpecGenerationPanelView.test.tsx | 4 +- .../ImageCanvasSpecGenerationPanelView.tsx | 150 ++++++++++-- .../image-editor/ImageCanvasUploadModel.ts | 25 +- ...ImageCanvasGenerationSubmissionWorkflow.ts | 59 +++++ .../useImageCanvasGenerationSurface.test.tsx | 7 +- .../useImageCanvasGenerationSurface.tsx | 31 +++ .../useImageCanvasGenerationWorkflow.test.tsx | 2 +- .../useImageCanvasGenerationWorkflow.ts | 94 +++++++- .../useImageCanvasUploadWorkflow.ts | 69 ++++++ 21 files changed, 914 insertions(+), 85 deletions(-) diff --git a/src/components/common/PlatformIconButton.tsx b/src/components/common/PlatformIconButton.tsx index 2f567136..4cf90c7f 100644 --- a/src/components/common/PlatformIconButton.tsx +++ b/src/components/common/PlatformIconButton.tsx @@ -1,9 +1,11 @@ +import { forwardRef } from 'react'; import type { ButtonHTMLAttributes, HTMLAttributes, KeyboardEvent, LabelHTMLAttributes, ReactNode, + Ref, } from 'react'; type PlatformIconButtonBaseProps = { @@ -52,16 +54,22 @@ type PlatformIconButtonProps = * 平台通用图标动作按钮。 * 统一承接纯图标动作、图标上传 label 和带短标签的浮动图标动作。 */ -export function PlatformIconButton({ - label, - icon, - children, - variant = 'platformIcon', - title, - className, - asChild, - ...actionProps -}: PlatformIconButtonProps) { +export const PlatformIconButton = forwardRef< + HTMLButtonElement | HTMLLabelElement | HTMLSpanElement, + PlatformIconButtonProps +>(function PlatformIconButton( + { + label, + icon, + children, + variant = 'platformIcon', + title, + className, + asChild, + ...actionProps + }, + ref, +) { const variantClassName = { platformIcon: 'platform-icon-button', surfaceFloating: @@ -78,6 +86,7 @@ export function PlatformIconButton({ return (