From ad4c738e747cdbb208db74f9dbfda10cb5ccaac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=88=B1=E7=AC=91=E7=9A=84=E6=AF=9B=E6=AF=9B=E8=99=AB?= <315515767@qq.com> Date: Thu, 6 Aug 2026 21:50:54 +0800 Subject: [PATCH] =?UTF-8?q?fix(canvas):=20=E6=B4=BB=E5=8A=A8=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E9=9D=A2=E6=9D=BF=20-=20=E6=81=A2=E5=A4=8D=E9=A1=B6?= =?UTF-8?q?=E6=A0=8F=E4=B8=8B=E6=96=B9=E5=81=8F=E7=A7=BB=E5=B9=B6=E9=81=BF?= =?UTF-8?q?=E5=85=8D=E9=81=AE=E6=8C=A1=E9=A1=B6=E9=83=A8=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=20(#162)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(canvas): 活动任务面板 - 恢复顶栏下方偏移并避免遮挡顶部工具 Added topInset prop to CanvasActiveTaskPanel for positioning. * fix(canvas): 活动任务面板 - 调用侧接入 topInset 让位契约 --- web/src/components/canvas/canvas-active-task-panel.tsx | 6 ++++-- web/src/pages/canvas/project.tsx | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/web/src/components/canvas/canvas-active-task-panel.tsx b/web/src/components/canvas/canvas-active-task-panel.tsx index a7e30489b..e85b5f74e 100644 --- a/web/src/components/canvas/canvas-active-task-panel.tsx +++ b/web/src/components/canvas/canvas-active-task-panel.tsx @@ -10,7 +10,8 @@ import type { GenerationTask } from "@/services/api/task-center"; import { useThemeStore } from "@/stores/use-theme-store"; import { useUserStore } from "@/stores/use-user-store"; -export function CanvasActiveTaskPanel({ tasks, align = "right" }: { tasks: GenerationTask[]; align?: "left" | "right" }) { +// 顶栏是绝对定位浮层,面板必须按调用方传入的 topInset 避让;专注模式隐藏顶栏时传小间距。 +export function CanvasActiveTaskPanel({ tasks, align = "right", topInset = "var(--canvas-topbar-offset)" }: { tasks: GenerationTask[]; align?: "left" | "right"; topInset?: string }) { const theme = canvasThemes[useThemeStore((state) => state.theme)]; const creditsEnabled = useUserStore((state) => state.features.creditsEnabled); const reducedMotion = useReducedMotion(); @@ -41,7 +42,8 @@ export function CanvasActiveTaskPanel({ tasks, align = "right" }: { tasks: Gener animate={{ opacity: 1, y: 0, scale: 1 }} exit={{ opacity: 0, y: -8, scale: 0.98 }} transition={motionTransition} - className={`pointer-events-none absolute top-3 z-[var(--z-panel-floating)] w-[var(--canvas-panel-width)] ${align === "left" ? "left-3" : "right-3"}`} + className={`pointer-events-none absolute z-[var(--z-panel-floating)] w-[var(--canvas-panel-width)] ${align === "left" ? "left-3" : "right-3"}`} + style={{ top: topInset }} > - + {focusMode ? (