From 4be88f177f72aa84e2a48a20a6203e7b40960331 Mon Sep 17 00:00:00 2001 From: Suzumiya Date: Fri, 11 Sep 2026 20:07:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=8A=A8=E7=94=BB=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E6=96=B0=E5=A2=9E=E5=8F=AF=E9=80=89=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=85=A5=E5=8F=A3=E5=BC=80=E5=85=B3=EF=BC=9AAGC=20=E5=9B=BA?= =?UTF-8?q?=E5=AE=9A=E6=A1=A3=E4=BD=8D=E4=B8=8D=E5=86=8D=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E5=81=87=E6=8E=A7=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增可选 prop showParameters(默认 true):为 false 时不渲染「比例 / 时长 / 清晰度」 入口按钮与对应浮层菜单,默认值等于网页端美术画布今天的渲染,行为逐字不变。 - 关闭理由写进注释:宿主若不能把这三个值送进请求,渲染出来就是点了不生效的假控件。 - 单独成一个提交,便于共享面板被其它改动覆盖时单独摘取或回退。 --- ...ImageCanvasCharacterAnimationPanelView.tsx | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/src/components/image-editor/ImageCanvasCharacterAnimationPanelView.tsx b/src/components/image-editor/ImageCanvasCharacterAnimationPanelView.tsx index 567c128f2..a9bd8d13d 100644 --- a/src/components/image-editor/ImageCanvasCharacterAnimationPanelView.tsx +++ b/src/components/image-editor/ImageCanvasCharacterAnimationPanelView.tsx @@ -42,6 +42,13 @@ type ImageCanvasCharacterAnimationPanelViewProps = { >; onUpdateDuration: (frameCountValue: string) => void; onSubmit: () => void; + /** + * 比例 / 时长 / 清晰度入口是否渲染,默认 `true`,与美术画布一致。 + * + * 传 `false` 的宿主必须自己说清这三个值由谁决定:它们不在该宿主的提交载荷里时, + * 渲染出来就是点了不生效的假控件(改了 1080p 实际仍按固定档出图)。 + */ + showParameters?: boolean; }; function resetFailedPanelStatus< @@ -126,6 +133,7 @@ export function ImageCanvasCharacterAnimationPanelView({ setCharacterAnimationPanel, onUpdateDuration, onSubmit, + showParameters = true, }: ImageCanvasCharacterAnimationPanelViewProps) { const [isParameterMenuOpen, setIsParameterMenuOpen] = useState(false); const parameterButtonRef = useRef(null); @@ -220,19 +228,21 @@ export function ImageCanvasCharacterAnimationPanelView({ ))}
-
- } - onClick={() => setIsParameterMenuOpen((open) => !open)} - > - {ratioLabel} · {panel.durationSeconds}秒 · {panel.resolution} - -
+ {showParameters ? ( +
+ } + onClick={() => setIsParameterMenuOpen((open) => !open)} + > + {ratioLabel} · {panel.durationSeconds}秒 · {panel.resolution} + +
+ ) : null} ) : null}
- {isParameterMenuOpen + {showParameters && isParameterMenuOpen ? renderPanelPortal(